Sway (оконный менеджер)
Sway — менеджер окон с плиточным размещением и композитор для Wayland, вдохновлённый i3 и написанный на языке программирования C. Sway задуман как полноценная замена i3 с поддержкой современного протокола отображения Wayland и библиотеки композиторов wlroots. Sway способен работать с существующими файлами конфигурации i3 и поддерживает большинство возможностей i3, одновременно предлагая ряд собственных новшеств.
Управление окнами по умолчанию в Sway схоже с редактором vi: фокусировка осуществляется с помощью комбинации Super и одной из стрелок или клавиш h, j, k, l. Перемещение окон выполняется тем же сочетанием, но с добавлением Shift[1].
Как и i3, Sway можно расширять и управлять им через Unix-сокет и IPC-интерфейс на основе JSON практически из любого языка программирования.
Первый стабильный выпуск Sway состоялся 11 марта 2019 года после 3,6 лет разработки[2].
Общие сведения
| Sway | |
|---|---|
| Тип | менеджер окон |
| Автор | Drew DeVault (SirCmpwn) |
| Написана на | C |
| Операционная система | Unix-подобные |
| Первый выпуск | 24 марта 2016 |
| Последняя версия | 1.11 (8 июня 2025) |
| Репозиторий | github.com/swaywm/sway.g… |
| Лицензия | MIT License |
| Сайт | swaywm.org |
Возможности
Sway воспроизводит множество особенностей i3:
- Настройка производится через текстовый файл.
- Плиточное размещение окон осуществляется вручную, а не динамически.
- Окна можно делить горизонтально или вертикально.
- Окна можно располагать в виде вкладок (горизонтальный список, как в браузерах) либо в виде стека (вертикальный список).
- Окна могут быть «плавающими», подобно накладывающим оконным менеджерам.
- Плиточные и плавающие окна можно изменять по размеру или перемещать с помощью мыши и клавиатуры[3].
- Sway полностью управляется с клавиатуры[4].
Уникальные возможности Sway:
- Поддержка нескольких не модифицирующих клавиш при назначении горячих клавиш[5].
- Окна на одном рабочем пространстве могут быть разделены на контейнеры: часть окон — во вкладках, остальные — в обычной плитке, плавающих областях или стеке.
- Поддержка собственных средств настройки ввода, вывода и обоев без внешних программ.
- Собственная экосистема утилит: swaybg, swaybar, swayidle.
- Поддержка жестов для указательных устройств.