Comparison of tiling window managers (Русский)
Эта статья предусматривает объективное сравнение наиболее популярных фреймовых (тайловых) оконных менеджеров (в отличие от стековых оконных менеджеров).
Таблица сравнения
Для краткого обзора в таблице перечислены наиболее популярные тайловые оконные менеджеры, с примечательными особенностями.
Оконный менеджер (WM) | Написан на | Настраивается с помощью | Стиль управления | Поддержка системного трея | Перезагрузка на лету | Информационный бар | Композитинг | Разметка по умолчанию | Pixel usage | Внешнее управление | Библиотека | Многомониторный (n) режим | ICCCM/EWMH совместимый | Состояние |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Awesome | C | Lua | Динамический | Встроенный | Да | Встроенный, изображения и текст | Внешний | max, nh-stack (and invert), nv-stack (and invert), free | Variable borders, optional h-tab titles | dbus (если включен) | XCB | n-tags (рабочие пространства). По умолчанию включено 9. Пример | Да | Активный |
bspwm | C | Чего угодно | Гибридный | Нет | Да | Может записывать внутреннее состояние в FIFO | Внешний | v-split, h-split | Variable borders | через bspc |
XCB | Рабочие столы привязаны к мониторам | Да | Активный |
dwm | C | C (перекомпиляция) | Динамический | Дополнительный патч | Опционально | Встроенный, считывает имя корневого окна | Внешний | v-stack, max | через dwmfifo | Xlib | n regions, 9 workspaces fixed to each region | Нет | Активный | |
FrankenWM | C | C (перекомпиляция) | Динамический | Нет | Нет | Нет, выводит информацию на stdout, которая может быть легко обработана и отображена на внешнем мониторе или панели (dzen2, conky и т.д.) | Внешний | v-stack (and invert), h-stack (and invert), dual-v/h-stack, grid, fibonacci (vh-stack), rows, columns, max, free | Variable borders | XCB | Нет | Активный | ||
herbstluftwm | C++ | Текстовый файл | Ручной | Нет | Да | строки, столбцы | 1-pix borders | commands via herbstclient | Xlib | n regions, 9 workspaces visible in any region | Активный | |||
i3 | C | Текстовый файл | Ручной | i3bar | Да (разметка сохраняется) | текст передаётся в i3bar (можно использовать i3status /conky и другие) |
Внешний | tree, v-split, h-split, stacked, tabbed, max, can be nested infinitely | None, 1-pix or 2-pix, optional titlebars, can hide edge borders | commands via ipc (or i3-msg, which uses ipc) | XCB | n regions | Да | Активный |
LeftWM | Rust | RON (настройки) / Что угодно (темы) | Динамический | Нет | Да | Да, много вариантов через систему управления темами | Внешний | v-stack, columns, rows | Variable based on theme | supports _NET_ACTIVE_WINDOW and sending commands to a named pipe |
Xlib | Workspaces and monitors are not tied. Many workspaces for monitor or many monitors for workspace | Да | Активный |
Notion | C, Lua | Lua, совместимо с Ion3 | Ручной | trayion, stalonetray | Да | Настраивается | ? | h-tab, max | Configurable borders and titlebars/tabs | EWMH, arbitrary Lua scripts which have access to the rich internal API | Xlib | n workspaces on each monitor. Supports on-the-fly changes in topology | Активный | |
qtile | Python | Python | Динамический | Да | Да | Да | Внешний | tree, v-split, h-split, stacked, tabbed, max | No borders, although customizable | Hooks, Server mode | XCB | Активный | ||
Ratpoison | C | Текстовый файл | Ручной | Нет | Да | Да | Внешний | max | Нет | Активный | ||||
Snapwm | C | Reloadable Text | Динамический | Нет | Да | Встроенный, считывает имя корневого окна | Внешний | nVertical, Fullscreen, nHorizontal, Grid, Center Stacking | Variable borders, no titles | Xlib | Number of desktops distributed evenly between monitors | Активный | ||
Spectrwm | C | Текстовый файл | Динамический | Нет | Да | Встроенный, считывает вывод пользовательского скрипта | Нет | nv-stack, nh-stack, max | 1-pix borders, no titles | XCB | n regions, 10 workspaces visible in any region | Нет | Активный | |
Stumpwm | Lisp | Lisp | Ручной | Нет | Да | Да | Нет | Xlib | Нет | Активный | ||||
xmonad | Haskell | Haskell | Динамический | Нет | Да | Нет | Да, с xmonad-contrib и внешним менеджером | nv-stack, nh-stack, max | Variable borders, no titles | via XMonad-Hooks-ServerMode | Xlib | n regions, 9 workspaces visible in any region | Да / ? | Активный |
Оконный менеджер (WM) | Написан на | Настраивается с помощью | Стиль управления | Поддержка системного трея | Перезагрузка на лету | Информационный бар | Композитинг | Разметка по умолчанию | Pixel usage | Внешнее управление | Библиотека | Многомониторный (n) режим | ICCCM/EWMH совместимый | Состояние |
Стиль управления
Динамическое управление выделяет лёгкость и скорость автоматического управления оконных слоёв. Ручное управление выделяет ручную регулировку расположения и размера окна. Более точный контроль, и большую трату времени на перемещение и изменение размеров окна.
Слои
Ряд общих типов компоновки доступен в нескольких тайловых WM, хотя терминология может несколько меняться.
- max: Показать одно окно во весь экран (со статусбаром, заголовком и границами или без них). Также: monocle (dwm, monsterwm).
- h-stack: Основная область в верхней половине, другие окна располагаются горизонтально в нижней половине. Основная область может быть изменяемого размера. Может быть инвертирована вверх-вниз (wmfs). Также: bottom stack (dwm), bstack (monsterwm).
- v-stack: Основная область в левой половине, другие окна располагаются вертикально в правой половине. Основная область может быть изменяемого размера. Может быть инвертирована влево-вправо(wmfs). Aka: tile (dwm, monsterwm).
- nh-stack: h-stack позволяет >=1 окно(а) в мастер-области. Также: nbstack (dwm).
- nv-stack: v-stack позволяет >=1 окно(а) в мастер-области. Также: ntile (dwm).
- mirror-h: nh-stack со стеками выше и ниже главной области.
- mirror-v: nv-stack со стеками слева и справа от главной области.
- h-tab: одно окно показано на весь экран, со всеми названиями окон, указанными по горизонтали (как вкладки браузера).
- v-tab: одно окно показано на весь экран, со всеми названиями окон, указанными по вертикали. Также: stack (wmii).
- h-split: назначенным сочетанием клавиш разбивается окно по горизонтали, создавая пространство для другого.
- v-split: назначенным сочетанием клавиш разбивается окно по вертикали, создавая пространство для другого.
- columns: ручной стиль слоёв, который воспринимает окна как столбцы по вертикали.
- rows: ручной стиль слоёв, который воспринимает окна как горизонтальные ряды.
- grid: размеры и позиции окон, основанные на регулярной сетке NxM. Может быть автоматическим (как в wmfs, monsterwm) или ручным (как в Subtle).
Назначение клавиш
Тайловые оконные менеджеры ориентированы, как правило, на использование исключительно с клавиатурой или с клавиатурой и мышью. Для быстроты и простоты использования оконного менеджера используются горячие клавиши (с помощью мыши результат будет достигнут медленнее). Разумные назначения горячих клавиш делают работу быстрой и эффективной. Некоторые сочетания клавиш по умолчанию хороши, но их можно изменить под свои нужды.
Смотрите также
- Список фреймовых Wayland-композиторов
- Comparison of extensible window managers compares window managers "extensible" by scripting, like xmonad and Sawfish.