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. Example | Да | Активный |
bspwm | C | Anything | Гибридный | Нет | Да | Can write internal state to a FIFO | внешний | v-split, h-split | Variable borders | via bspc
|
XCB | Рабочие столы привязаны к мониторам | Да | Активный |
dswm | Lisp | Lisp | Ручной | Нет | Да | Да | Нет | Активный | ||||||
dwm | C | C (recompile) | Динамический | Дополнительный патч | Optional | Built-in, reads from root window name | внешний | v-stack, max | Xlib | n regions, 9 workspaces fixed to each region | Активный | |||
echinus | C | Text | Динамический | Нет | Да | ouricoAUR | внешний | v-stack, b-stack, max | Variable borders & optional titles | Xlib | Да | Неизвестно | ||
euclid-wm | C | Text | Гибридный | Нет | Да | внешний(dzen) | строки, столбцы | 1-pix borders | Xlib | Бездействующий | ||||
FrankenWM | C | C (recompile) | Динамический | Нет | Нет | No, outputs information to stdout, which can easily be parsed and displayed by an внешний monitor or panel (dzen2, conky, etc) | внешний | v-stack (and invert), h-stack (and invert), dual-v/h-stack, grid, fibonacci (vh-stack), строки, столбцы, max, free | Variable borders | XCB | Активный | |||
herbstluftwm | C | Text | Ручной | Нет | Да | строки, столбцы | 1-pix borders | commands via herbstclient | Xlib and Glib | n regions, 9 workspaces visible in any region | Активный | |||
i3 | C | Text | Динамический | i3bar | Да(Layout is preserved) | text piped to i3bar (i3status /conky and others can be used) |
внешний | 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 | Да | Активный |
Ion3 | C | Lua | Ручной | trayion | Да | configurable | ? | h-tab, max | Заброшенный | |||||
Musca | C | Text, own command set, C(recompile) | Ручной | Нет | No, but allows running of musca commands on the fly | Нет | Нет | h-split, v-split, max | commands, hooks | Xlib | Заброшенный | |||
Notion | C, Lua | Lua, compatible with Ion3 configs | Ручной | trayion, stalonetray | Да | configurable | ? | 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 | Нетborders, although customizable | Hooks, Server mode | XCB | Активный | ||
Ratpoison | C | Text | Ручной | Нет | Да | Да | внешний | max | Нет | Активный | ||||
Snapwm | C | Reloadable Text | Динамический | Нет | Да | Built-in, reads from root window name | внешний | nVertical, Fullscreen, nHorizontal, Grid, Center Stacking | variable borders, Нетtitles | Xlib | Number of desktops distributed evenly between monitors | Активный | ||
Spectrwm | C | Text | Динамический | Нет | Да | Built-in, reads from user script | Нет | nv-stack, nh-stack, max | 1-pix borders, Нетtitles | XCB | n regions, 10 workspaces visible in any region | Да | Активный | |
Stumpwm | Lisp | Lisp | Ручной | Нет | Да | Да | Нет | Нет | Активный | |||||
subtle | C | Ruby | Ручной | Built-in | Да | Built-in (Ruby), внешнийcan be used as well | внешний | Variable grid | Variable borders, Нетtitles | Hooks (Ruby), subtler (CLI), subtlext (Ruby extension) | Xlib | One workspace (view) per monitor (screen), placement on views via tags and per runtime | Да | Активный |
Wingo | Go | Text | Динамический | Нет | Да | Нет | внешний | floating, nv-stack, nh-stack, max | title bars in floating, skinny borders in tiling | via wingo-cmd or UNIX sockets in any programming language | X Go Binding | n regions, workspaces visible in any region | Да | Активный |
WMFS | C | Text | Динамический | Built-in | Да | Built-in, set with command, color text, images | внешний | nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, free, max | variable borders, titles or Нетtitles | commands | Xlib | Up to 36 tags(workspaces) per screen | Да | Активный |
xmonad | Haskell | Haskell | Динамический | Нет | Да | Нет | Да, с xmonad-contrib и внешним менеджером | nv-stack, nh-stack, max | variable borders, Нетtitles | via XMonad-Hooks-ServerMode | Xlib | n regions, 9 workspaces visible in any region | Да/ ? | Активный |
Оконный менеджер (WM) | Написан на | Настраивается с помощью | Стиль управления | Поддержка системного трея | Перезагрузка на лету | Информационный бар | Композитность | Слои по умолчанию | Pixel usage | Внешнее управление | Библиотека | Многомониторный (n) режим | ICCCM/EWMH compliant | Состояние |
Стиль управления
Динамическое управление выделяет лёгкость и скорость автоматического управления оконных слоёв. Ручное управление выделяет ручную регулировку расположения и размера окна. Более точный контроль, и большую трату времени на перемещение и изменение размеров окна.
Слои
Ряд общих типов компоновки доступен в нескольких тайловых 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).
Назначение клавиш
Тайловые оконные менеджеры ориентированы, как правило, на использование исключительно с клавиатурой или с клавиатурой и мышкой. Для быстроты и простоты использования оконного менеджера, используются горячие клавиши (мышкой результат будет достигнут медленней). Разумные назначения горячих клавиш делают работу быстрой и эффективной. Некоторые сочетания клавиш по умолчанию хороши, но их можно изменить под свои нужды.
Внешние ссылки
- Comparison of extensible window managers compares WMs "extensible" by scripting, like Xmonad and Sawfish.