Sway — тайлинговый оконный менеджер для Wayland, созданный как совместимая замена i3. Окна раскладываются сеткой, управляются с клавиатуры и описываются текстовым конфигом. Разберём установку, базовую настройку, рабочие схемы и типичные проблемы на Wayland.

Почему Sway, а не i3

Wayland безопаснее X11: приложения не могут читать экран друг друга, а композитинг встроен в менеджер. Для тех, кто привык к i3, Sway даёт почти тот же синтаксис конфигурации и жесты.

# установить
sudo apt install sway
# или в Fedora
sudo dnf install sway
# проверить, какие сессии доступны на экране входа
ls /usr/share/wayland-sessions/

Запускайте Sway из консоли или выбирайте сессию на экране входа. Для теста достаточно live-носителя или отдельного пользователя.

Первый запуск и конфигурация

При первом входе Sway предложит создать конфигурацию по умолчанию. Она рабочая, но минимальная: содержит базовые привязки и запуск терминала.

mkdir -p ~/.config/sway
cp /etc/sway/config ~/.config/sway/config
# запустить с отладочным выводом
sway 2>&1 | head -40 &
# отредактировать конфиг
$EDITOR ~/.config/sway/config

После правки конфигурации перезагрузите её без выхода: в Sway это reload, назначенный по умолчанию.

# внутри sway: Win+Shift+c — reload
# или из терминала
swaymsg reload
# проверить, что ошибок нет
journalctl --user -b | grep -i sway | tail -20

Базовые привязки клавиш

В конфигурации используются модификаторы $mod (по умолчанию Super) и модификатор ввода $term. Основные сценарии: запуск терминала, переключение окон, закрытие, выход.

# фрагмент конфигурации
# set $mod Mod4
# bindsym $mod+Return exec alacritty
# bindsym $mod+d exec wofi --show drun
# bindsym $mod+Shift+q kill
# bindsym $mod+Shift+c reload
# bindsym $mod+Shift+e exec swaynag -t warning -m 'Выйти?'

Для запуска приложений удобен wofi или fuzzel: они работают на Wayland без X-зависимостей.

Рабочие пространства и раскладка

Рабочие пространства работают как в i3: окна распределяются по номерам, переключение — с клавиатуры. Раскладка бывает горизонтальной, вертикальной и вкладками.

# перемещение окна на рабочий стол
swaymsg move container to workspace 2
# список рабочих пространств
swaymsg -t get_workspaces
# текущее состояние окон
swaymsg -t get_tree | head -40

Вывод get_tree полезен при написании скриптов: он показывает дерево окон и их идентификаторы.

Ввод, мониторы и разрешения

# список выходов
swaymsg -t get_outputs
# разрешение и масштаб
swaymsg output eDP-1 scale 1.25
# в конфиге
# output eDP-1 resolution 1920x1080 scale 1.25
# клавиатура: раскладка и задержка
swaymsg input type:keyboard xkb_layout us,ru
swaymsg input type:keyboard xkb_options grp:alt_shift_toggle

На HiDPI масштаб задавайте дробно: scale 1.5 уменьшает элементы и улучшает читаемость мелкого текста.

Темы, шрифты и оформление

Sway не рисует панели сам — для них есть waybar. Окна оформляются через swaybg и границы в конфиге.

# фон
exec swaybg -i ~/Pictures/wall.png -m fill
# границы окон
# default_border pixel 2
# default_floating_border normal 2
# проверить шрифты
fc-list | head -10

Типичные проблемы

  • Приложение не запускается — возможно, оно требует X11: используйте cage или XWayland.
  • Не работает захват экрана — нужны порталы xdg-desktop-portal-wlr.
  • Не запускается после входа — проверьте ~/.config/sway/config на ошибки синтаксиса.
  • Мышь «улетает» за край — настройка pointer_constraint и поведение в играх.
# порталы для захвата экрана
sudo apt install xdg-desktop-portal-wlr
systemctl --user status xdg-desktop-portal --no-pager | head
# журнал
journalctl --user -b | grep -iE "portal|sway" | tail -30

Автозапуск и рабочий процесс

# в конфиге
# exec waybar
# exec mako
# exec swaybg -i ~/Pictures/wall.png -m fill
# запуск команды на определённом рабочем столе
# workspace 2; exec alacritty

Сохраняйте конфигурацию в dotfiles: она полностью текстовая, а значит, воспроизводима на другой машине за минуту.

Совместимость с X-приложениями

Часть программ до сих пор написана под X11. Sway запускает их через XWayland, но есть нюансы: масштабирование, захват мыши и курсор.

# проверить, запущен ли XWayland
ps aux | grep -i xwayland | grep -v grep | head
# запуск X-приложения
DISPLAY=:0 xeyes 2>/dev/null &
# если приложение глючит — попробуйте nvidia/cage
which cage xwayland 2>/dev/null

Для приложений, которым нужен доступ к корневому окну (скриншоты, автоматизация), ищите Wayland-совместимые альтернативы: на Wayland такой доступ по умолчанию запрещён.

Скриншоты, буфер обмена и запись

В Wayland захват экрана выполняется через portal, а не напрямую. Установите grim и slurp для выделения области.

# установить инструменты
sudo apt install grim slurp wl-clipboard swappy
# весь экран
grim ~/Pictures/shot-$(date +%H%M%S).png
# область
grim -g "$(slurp)" ~/Pictures/area.png
# буфер обмена
wl-copy < ~/Pictures/area.png
# в конфиге — горячая клавиша
# bindsym Print exec grim -g "$(slurp)" ~/Pictures/shot.png

Для записи экрана подойдёт wf-recorder. Проверьте, что доступ к экрану выдаёт portal, иначе запись завершится пустым файлом.

Переезд конфигурации с i3

Синтаксис почти совпадает, но часть команд различается: в Sway нет X-утилит вроде xrandr и xset. Замените их на swaymsg и аналоги.

# что нужно заменить
# xrandr -> swaymsg -t get_outputs
# xset xsetkb -> swaymsg input type:keyboard ...
# i3-msg -> swaymsg
# проверить расхождения
grep -nE "xrandr|xset|feh|dunst" ~/.config/sway/config ~/.config/i3/config 2>/dev/null | head -20

Также проверьте автозапуск: панели и уведомления должны поддерживать Wayland, иначе они не запустятся.

Итог

Sway переносит рабочий процесс i3 на Wayland: текстовый конфиг, рабочие пространства, управление с клавиатуры и отсутствие X-привилегий. Начните с конфигурации по умолчанию, добавьте waybar и wofi, настройте масштаб и раскладку. Для захвата экрана установите portal, а конфигурацию держите в репозитории.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте