Comparison of tiling window managers (Русский)
Эта статья предусматривает объективное сравнение наиболее популярных тайловых оконных менеджеров (в отличие от плавающих оконных менеджеров).
Contents
Таблица сравнения
Для краткого обзора в таблице перечислены наиболее популярные тайловые оконные менеджеры, с примечательными особенностями.
Оконный менеджер (WM) | Написан на | Настраивается с помощью | Стиль управления | Поддержка системного трея | Перезагрузка на лету | Информационный бар | Композитность | Слои по умолчанию | Pixel usage | Внешнее управление | Библиотека | Многомониторный (n) режим | ICCCM/EWMH Совместимый | Состояние |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
alopex | C | C (recompile) | Гибридный | Нет | Нет | Встроенный; Вызов сценария / программы в качестве первого аргумента | внешний | max, h-stack, v-stack, h-tab | Variable borders; titles in-statusbar | Xlib | шесть меток, два вида, доступные по умолчанию | Активный | ||
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 | Динамический | Нет | Да | ourico AUR | внешний | 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 [archived page] | C | Lua | Ручной | trayion | Да | configurable | ? | h-tab, max | Заброшенный | |||||
monsterwm | C | C (recompile) | Динамический | Нет | Optional, but windows are lost | No, outputs information to stdout, which can easily be parsed and displayed by an внешнийmonitor or panel ( dzen2 , conky , etc) | внешний | h-stack, v-stack, grid, max | supports _NET_Активный_WINDOW , so внешнийcontrol can be supplied by xdotool and similar tools | Xlib primary and XCB fork [ссылка недействительна: раздел не найден] | n workspaces per monitor | Активный | ||
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).
Назначение клавиш
Тайловые оконные менеджеры ориентированы, как правило, на использование исключительно с клавиатурой или с клавиатурой и мышкой. Для быстроты и простоты использования оконного менеджера, используются горячие клавиши (мышкой результат будет достигнут медленней). Разумные назначения горячих клавиш делают работу быстрой и эффективной. Некоторые сочетания клавиш по умолчанию хороши, но их можно изменить под свои нужды.
Источник
Тайловый оконный менеджер i3
Я хотел бы продолжить начатую вчера JagaJaga тему тайловых оконных менеджеров рассказом об еще одном их представителе — i3wm. В отличие от awesome его настройки записываются в обычном текстовом файле.
Особенности i3wm для пользователя: корректная поддержка нескольких мониторов (смотрите скрин в конце), простой текстовый конфиг-файл, нет необходимости пересобирать wm после изменения настроек, три режима расположения окон, меню запуска приложений dmenu, создает рабочие столы по мере необходимости и удаляет пустые, из коробки имеет отличную информационную панель, показывающую уровень Wi-Fi сети, заряд батареи и много еще чего.
Демонстрация от автора i3
Установка
i3wm представлен в репозиториях Debian, Arch, Gentoo, Ubunto, FreeBSD, NetBSD, OpenBSD, OpenSUSE, Mageia, Fedora и Exerbo. Я буду рассказывать на примере Ubuntu 12.04.
Нужный пакет называется i3, поэтому:
Теперь на экране ввода пользователя и пароля можно выбрать «i3» в качестве оконного менеджера.
Настройка
При первом запуске вам предложат выбрать клавишу-модификатор. Я выбрал win для совместимости с большинством приложений.
Добавим переключение на русскую раскладку по Alt+Shift, автозагрузку dropbox, переключение между рабочими столами по mod+Control+Left/Right, блокировку экрана по mod+Control+l и спящий режим с блокировкой экрана при выходе из него по mod+Control+s.
Переключение раскладки клавиатуры настроено с помощью setxkbmap. Для этого служит
Чтобы не вводить её каждый раз после перезагрузки, создадим в корневой папке пользователя файл .xsessionrc, сделаем исполняемым и приведем к виду:
Для автозагрузки Dropbox .xsessionrc будет выглядеть так:
Теперь при следующем заходе в i3wm будут доступны русская и английская клавиатура.
Настройка i3 обычно производится с помощью пользовательского конфига. Создадим папку
/.i3 и скопируем в нее шаблон конфигурации:
Теперь вы можете на основе документации выбрать настройки для себя. Я добавил следующие строки:
Использование
Некоторые стандартные горячие клавиши, которые работают по умолчанию:
mod+Enter открывает терминал
mod+d запускает dmenu (меню сверху экрана, которое по мере ввода с клавиатуры названия приложения предлагает варианты для запуска)
mod+Shift+Q закрывает активное окно
mod+v включает режим вертикального тайлинга (экран будет делиться горизонтально)
mod+h включает режим горизонтального тайлинга (экран будет делиться вертикально)
mod+w включает режим вкладок (каждое окно на рабочем столе занимает весь экран, сверху видны вкладки)
mod+s включает стековый режим (заголовки окон один под другим, каждое окно занимает весь экран)
mod+e возвращает стандартный режим
mod+Shift+Space переключает окно в режим плавающего и обратно
mod+Left/Right/Up/Down перемещает фокус в пределах рабочего стола
mod+Shift+Left/Right/Up/Down перемещает текущее окно в пределах рабочего стола
mod+1 и т.д. переключает на рабочий стол с указанным номером
mod+Shift+C читает настройки из файла конфигурации
mod+Shift+E выходит из i3wm на экран ввода имени пользователя и пароля
Полные возможности по настройке и использованию i3wm описаны в документации.
Cheatsheet с горячими клавишами, удобные картинки-подсказки с сайта автора:
Бонус
Если у вас два монитора, или встроенный экран нетбука и внешний монитор, как у меня, то i3wm отлично будет работать на них. Самое главное, что для этого не требуется никаких дополнительных настроек.
Cписок доступных мониторов:
Настроим их работу в паре:
где LVD1 — встроенный в нетбук монитор, его разрешение 1366×768 и он прижат к левому верхнему углу, VGA1 — внешний монитор, его разрешение 1280×1024 и он смещен на 1366 пикселей вправо относительно левого верхнего угла.
Есть результат! Слева встроенный экран нетбука, справа внешний монитор:
Хабражитель burjui поделился ссылкой на видео про i3 с GoogleTechTalks.
Источник