Difference between revisions of "Comparison of tiling window managers"

From ArchWiki
Jump to: navigation, search
(Comparison table: i3 has 1pixel as an option)
(Comparison table: missing e)
Line 10: Line 10:
 
! scope="col" | Written in
 
! scope="col" | Written in
 
! scope="col" | Configured with
 
! scope="col" | Configured with
! scope="col" | Management styl
+
! scope="col" | Management style
 
! scope="col" | System tray support
 
! scope="col" | System tray support
 
! scope="col" | On-the-fly reload
 
! scope="col" | On-the-fly reload

Revision as of 02:56, 5 February 2012

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

Comparison table

The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview. More in-depth descriptions follow this table.

Comparison of tiling window managers
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
Awesome C Lua Dynamic Built-in Yes Built-in, images and text Yes, with an external manager such as xcompmgr variable borders, optional h-tab titles dbus (if enabled) XCB n-tags (workspaces). Per default 9 are enabled. Example
catwm C C (recompile) Dynamic None No None No v-stack, max 1-pix borders Xlib
dswm Lisp Lisp Manual None Yes Yes No
dwm C C (recompile) Dynamic None Optional Built-in, reads from root window name Yes, with an external manager such as xcompmgr v-stack, max Xlib n regions, 9 workspaces fixed to each region
echinus C Text Dynamic None Yes ourico Yes, with an external manager such as xcompmgr v-stack, b-stack, max Variable borders & optional titles Xlib
euclid-wm C Text Hybrid None Yes External (dzen) rows, columns 1-pix borders Xlib
herbstluftwm C Text Manual None Yes rows, columns 1-pix borders commands via herbstclient Xlib and Glib n regions, 9 workspaces visible in any region
i3 C Text Manual i3bar Yes from i3status or conky Yes, with an external manager such as xcompmgr tree, v-split, h-split, stacked, tabbed, max 2-pix borders with titles or 1-pix with no titles commands via ipc (or i3-msg, which uses ipc) XCB n regions
Ion3 C Lua Manual trayion Yes configurable  ? h-tab, max
Musca C Text, own command set, C(recompile) Manual None No, but allows running of musca commands on the fly None No h-split, v-split, max commands, hooks Xlib
Notion C Lua, compatible with Ion3 configs Manual trayion, stalonetray Yes configurable  ? h-tab, max Configurable borders and titlebars/tabs "Takes into account changes to the screen topology without needing to restart Notion"
Ratpoison C Text Manual None Yes Yes Yes, with an external manager such as xcompmgr max
Scrotwm C Text Dynamic None Yes Built-in, reads from user script No nv-stack, nh-stack, max 1-pix borders, no titles Xlib n regions, 10 workspaces visible in any region
Stumpwm Lisp Lisp Manual None Yes Yes No
subtle C Ruby Manual Built-in Yes Built-in (Ruby), external can be used as well Yes, with an external manager such as xcompmgr 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
WMFS C Text Dynamic Built-in Yes Built-in, set with command, color text, images May with external manager such as {d,x}compmgr 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
wmii C Anything Manual witray Yes Built-in Yes, with an external manager such as xcompmgr columns, max, v-tab titles 9P filesystem one big region
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
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
Tip: External control can also be achieved by programs like Template:Package Official which simulate keystrokes.

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).
  • 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).
  • 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).
  • 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 horizontally 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) 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.