Windows like window manager

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 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 Состояние
Читайте также:  Superfetch and windows search

Стиль управления

Динамическое управление выделяет лёгкость и скорость автоматического управления оконных слоёв. Ручное управление выделяет ручную регулировку расположения и размера окна. Более точный контроль, и большую трату времени на перемещение и изменение размеров окна.

Ряд общих типов компоновки доступен в нескольких тайловых 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).

Назначение клавиш

Тайловые оконные менеджеры ориентированы, как правило, на использование исключительно с клавиатурой или с клавиатурой и мышкой. Для быстроты и простоты использования оконного менеджера, используются горячие клавиши (мышкой результат будет достигнут медленней). Разумные назначения горячих клавиш делают работу быстрой и эффективной. Некоторые сочетания клавиш по умолчанию хороши, но их можно изменить под свои нужды.

Читайте также:  Не ставиться фон рабочего стола windows 10

Comparison of tiling window managers

This article provides an unbiased comparison of the most popular tiling window managers (as opposed to floating window managers).

Contents

Comparison table

The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview.

Window Manager Written in Configured with Management style System tray support On-the-fly reload Information bars Compositing Default layouts Pixel usage External control Library Multiple (n) monitor behavior ICCCM/EWMH compliant Maintenance
alopex C C (recompile) Hybrid None No Built-in; call script/program as first argument External max, h-stack, v-stack, h-tab Variable borders, titles in-statusbar Xlib six tags, two views available by default Abandoned
Awesome C Lua Dynamic Built-in Yes Built-in, images and text External max, nh-stack (and invert), nv-stack (and invert), free Variable borders, optional h-tab titles dbus (if enabled) XCB n-tags (workspaces). Per default 9 are enabled. Example Yes Active
bspwm C Anything Hybrid None Yes Can write internal state to a FIFO External v-split, h-split Variable borders via bspc XCB Monitors hold Desktops Yes Active
dwm C C (recompile) Dynamic Optional Patch Optional Built-in, reads from root window name External v-stack, max via dwmfifo Xlib n regions, 9 workspaces fixed to each region Active
echinus C Text Dynamic None Yes ourico AUR External v-stack, b-stack, max Variable borders, optional titles Xlib Yes Abandoned
euclid-wm C Text Hybrid None Yes External (dzen) rows, columns 1-pix borders Xlib Dormant
FrankenWM C C (recompile) Dynamic None No No, outputs information to stdout, which can easily be parsed and displayed by an external monitor or panel (dzen2, conky, etc) External v-stack (and invert), h-stack (and invert), dual-v/h-stack, grid, fibonacci (vh-stack), rows, columns, max, free Variable borders XCB Active
herbstluftwm C++ Text Manual None Yes rows, columns 1-pix borders commands via herbstclient Xlib n regions, 9 workspaces visible in any region Active
i3 C Text Dynamic i3bar Yes (Layout is preserved) text piped to i3bar ( i3status / conky and others can be used) External 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 Yes Active
LeftWM Rust toml (user settings) / Anything (themes) Dynamic None Yes Yes, many options through theme system External 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 tide. Many workspaces for monitor or many monitors for workspace Yes Active
Notion C, Lua Lua, compatible with Ion3 configs Manual trayion, stalonetray Yes 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 Active
qtile Python Python Dynamic Yes Yes Yes External tree, v-split, h-split, stacked, tabbed, max No borders, although customizable Hooks, Server mode XCB Active
Ratpoison C Text Manual None Yes Yes External max No Active
Snapwm C Reloadable Text Dynamic None Yes Built-in, reads from root window name External nVertical, Fullscreen, nHorizontal, Grid, Center Stacking Variable borders, no titles Xlib Number of desktops distributed evenly between monitors Active
Spectrwm C Text Dynamic None Yes Built-in, reads from user script No nv-stack, nh-stack, max 1-pix borders, no titles XCB n regions, 10 workspaces visible in any region Yes Active
Stumpwm Lisp Lisp Manual None Yes Yes No Xlib No Active
subtle C Ruby Manual Built-in Yes Built-in (Ruby), external can be used as well External Variable grid Variable borders, no titles Hooks (Ruby), subtler (CLI), subtlext (Ruby extension) Xlib One workspace (view) per monitor (screen), placement on views via tags and per runtime Yes Active
Wingo Go Text Dynamic None Yes No External 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 Yes Dormant
WMFS C Text Dynamic Built-in Yes Built-in, set with command, color text, images External nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, free, max Variable borders, titles or no titles commands Xlib Up to 36 tags(workspaces) per screen Yes Active
xmonad Haskell Haskell Dynamic None Yes No Yes, with xmonad-contrib and an external manager nv-stack, nh-stack, max Variable borders, no titles via XMonad-Hooks-ServerMode Xlib n regions, 9 workspaces visible in any region Yes / ? Active
Window Manager Written in Configured with Management style System tray support On-the-fly reload Information bars Compositing Default layouts Pixel usage External control Library Multiple (n) monitor behavior ICCCM/EWMH compliant Maintenance
Читайте также:  Mac and windows screensavers

Management style

Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.

Layouts

A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.

  • max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm, monsterwm).
  • h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm), bstack(monsterwm).
  • v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm, monsterwm).
  • nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)
  • nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)
  • mirror-h: nh-stack with stacks above and below the master area
  • mirror-v: nv-stack with stacks to the left and right of the master area
  • h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)
  • v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).
  • h-split: a keybinding splits the current window horizontally creating space for another
  • v-split: a keybinding splits the current window vertically creating space for another
  • columns: manual layout style which treats windows as belonging to vertical columns
  • rows: manual layout style which treats windows as belonging to horizontal rows
  • grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs, monsterwm) or manual (like Subtle).

Key bindings

Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.

Оцените статью