Tiling window manager: Difference between revisions
Arnav Bhate (talk | contribs) m Target page renamed |
+link. 1 active voice ("Only a few tiling managers..."). a wording at Wayland. +commas. sorted. |
||
(10 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Window manager with non-overlapping frames}} |
{{Short description|Window manager with non-overlapping frames}} |
||
{{About||X's default window manager, which is not a tiling window manager|twm}} |
{{About||X's default window manager, which is not a tiling window manager|twm}} |
||
[[File:Dwm-screenshot.png|thumb|right|The [[dwm]] window manager with the screen divided into four tiles.]] |
|||
In computing, a '''tiling window manager''' is a [[window manager]] with the organization of the screen often dependant on mathematical formulas to organise the windows into a non-overlapping frame. This is opposed to the more common approach used by [[stacking window manager]]s, which allow the user to drag windows around, instead of windows snapping into a position. This allows for a different style of organization, although it departs from the traditional desktop metaphor. |
|||
{{Multiple issues| |
|||
{{Lead too short|date=February 2024}} |
|||
{{External links|date=February 2024}} |
|||
}} |
|||
[[Image:Dwm-screenshot.png|thumb|right|The [[dwm]] window manager with the screen divided into four tiles.]] |
|||
In computing, a '''tiling window manager''' is a [[window manager]] with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by [[stacking window manager]]s) of coordinate-based stacking of overlapping objects ([[window (computing)|window]]s) that tries to fully emulate the [[desktop metaphor]]. |
|||
==History== |
==History== |
||
===Xerox PARC=== |
===Xerox PARC=== |
||
The first [[Xerox Star]] system (released in 1981) tiled application windows, but allowed |
The first [[Xerox Star]] system (released in 1981) tiled application windows, but allowed [[dialog box]]es and property windows to overlap.<ref>{{cite web |title=Xerox Star |url=http://toastytech.com/guis/star.html |access-date=2007-04-14 |url-status=live |archive-url=https://web.archive.org/web/20110718030555/http://toastytech.com/guis/star.html |archive-date=2011-07-18}}</ref> Later, Xerox PARC also developed [[CEDAR]]<ref>{{cite web |title=''Ten Years of Window Systems — A Retrospective View'' |url=http://www.chilton-computing.org.uk/inf/literature/books/wm/p004.htm |access-date=2010-12-21 |url-status=live |archive-url=https://web.archive.org/web/20100316102701/http://www.chilton-computing.org.uk/inf/literature/books/wm/p004.htm |archive-date=2010-03-16}}</ref> (released in 1982), the first windowing system using a tiled window manager. |
||
===Various vendors=== |
===Various vendors=== |
||
Next in 1983 came [[Andrew Project|Andrew]] WM, a complete tiled windowing system later replaced by [[X11]]. [[Microsoft]]'s [[Windows 1.0]] (released in 1985) also used tiling (see sections below). |
Next in 1983 came [[Andrew Project|Andrew]] WM, a complete tiled windowing system later replaced by [[X11]]. [[Microsoft]]'s [[Windows 1.0]] (released in 1985) also used tiling (see sections below). In 1986 came [[Digital Research]]'s [[Graphics Environment Manager|GEM]] 2.0, a windowing system for the [[CP/M]] which used tiling by default.<ref>{{cite web |title=Tiling Window Managers |website=mnemonikk.org |url=http://mnemonikk.org/talks/tiling-wm.en.html#sec-3}}</ref> One of the early (created in 1988) tiling WMs was [[Siemens]]' [[RTL (tiling window manager)|RTL]], up to today a textbook example because of its algorithms of automated window scaling, placement, and arrangement, and (de)iconification. RTL ran on [[X11|X11R2]] and R3, mainly on the "native" Siemens systems, e.g., [[SINIX]]. Its features are described by its promotional video.<ref>{{cite web |title=video |url=https://open-video.org/details.php?videoid=8038 |access-date=2010-12-22 |url-status=live |archive-url=https://web.archive.org/web/20101222012829/http://www.open-video.org/details.php?videoid=8038 |archive-date=2010-12-22}}</ref><ref>{{cite web |title=The First Tiling Window Manager - Siemens RTL Tiled Window Manager (released in 1988) |website=[[YouTube]] |url=https://www.youtube.com/watch?v=IOxIUeroIVQ |url-status=live |archive-url=https://ghostarchive.org/varchive/youtube/20211221/IOxIUeroIVQ |archive-date=2021-12-21}}{{cbignore}}</ref> The Andrew Project (AP or tAP) was a desktop client system (like early GNOME) for X with a tiling and overlapping window manager. |
||
[[OS X El Capitan|MacOS X 10.11 El Capitan]] released in September 2015 introduces new window management features such as creating a full-screen split view limited to two app windows side-by-side in full screen by holding down the full-screen button in the upper-left corner of a window.<ref>{{ |
[[OS X El Capitan|MacOS X 10.11 El Capitan]] released in September 2015 introduces new window management features such as creating a full-screen split view limited to two app windows side-by-side in full screen by holding down the full-screen button in the upper-left corner of a window.<ref>{{cite web |title=Apple Announces OS X El Capitan with Refined Experience & Improved Performance |website=Apple Newsroom |url=https://www.apple.com/newsroom/2015/06/08Apple-Announces-OS-X-El-Capitan-with-Refined-Experience-Improved-Performance/}}</ref> |
||
==Tiling window managers== |
==Tiling window managers== |
||
Line 25: | Line 20: | ||
[[File:Three vertical stripes.svg|thumb|{{nowrap|''Tile Vertically''}} or {{nowrap|''Show Windows Side by Side''}}]] |
[[File:Three vertical stripes.svg|thumb|{{nowrap|''Tile Vertically''}} or {{nowrap|''Show Windows Side by Side''}}]] |
||
[[File:Three horizontal stripes.svg|thumb|{{nowrap|''Tile Horizontally''}} or {{nowrap|''Show Windows Stacked''}}]] |
[[File:Three horizontal stripes.svg|thumb|{{nowrap|''Tile Horizontally''}} or {{nowrap|''Show Windows Stacked''}}]] |
||
The built-in [[Microsoft Windows]] window manager has, since [[Windows 2.0]], followed the traditional [[Stacking window manager|stacking]] approach by default. It can also act as a rudimentary tiling window manager. |
|||
The first version ([[Windows 1.0]]) featured a tiling window manager, partly because of litigation by [[Apple Inc.|Apple]] [[Apple Computer, Inc. v. Microsoft Corporation|claiming ownership]] of the overlapping window [[desktop metaphor]]. But due to complaints, the next version ([[Windows 2.0]]) followed the desktop metaphor. All later versions of the [[operating system]] stuck to this approach as the default behaviour. |
|||
The built-in [[Microsoft Windows]] window manager has, since [[Windows 2.0]], followed the traditional [[stacking window manager|stacking]] approach by default. It can also act as a rudimentary tiling window manager. |
|||
To tile windows, the user selects them in the [[taskbar]] and uses the context menu choice ''Tile Vertically'' or ''Tile Horizontally''. Choosing ''Tile Vertically'' will cause the windows to tile horizontally but take on a vertical shape, while choosing ''Tile Horizontally'' will cause the windows to tile vertically but take on a horizontal shape. These options were later changed in [[Windows Vista]] to ''Show Windows Side by Side'' and ''Show Windows Stacked'', respectively. |
To tile windows, the user selects them in the [[taskbar]] and uses the context menu choice ''Tile Vertically'' or ''Tile Horizontally''. Choosing ''Tile Vertically'' will cause the windows to tile horizontally but take on a vertical shape, while choosing ''Tile Horizontally'' will cause the windows to tile vertically but take on a horizontal shape. These options were later changed in [[Windows Vista]] to ''Show Windows Side by Side'' and ''Show Windows Stacked'', respectively. |
||
[[Windows 7]] added "Aero Snap" which adds the ability to drag windows to either side of the screen to create a simple side-by-side tiled layout, or to the top of the screen to [[maximize]]. [[Windows 8]] introduced [[Windows Store apps]]; unlike desktop applications, they did not operate in a window, and could only run in full screen, or "snapped" as a sidebar alongside another app, or the desktop environment.<ref>{{ |
[[Windows 7]] added "Aero Snap" which adds the ability to drag windows to either side of the screen to create a simple side-by-side tiled layout, or to the top of the screen to [[maximize]]. [[Windows 8]] introduced [[Windows Store apps]]; unlike desktop applications, they did not operate in a window, and could only run in full screen, or "snapped" as a sidebar alongside another app, or the desktop environment.<ref>{{cite web |title=Build: More Details On Building Windows 8 Metro Apps |language=en |website=PCMAG |url=https://www.pcmag.com/archive/build-more-details-on-building-windows-8-metro-apps-287736 |access-date=2021-06-25}}</ref> |
||
Along with allowing Windows Store apps to run in a traditional window, [[Windows 10]] enhanced the snapping features introduced in Windows 7 by allowing windows to be tiled into screen quadrants by dragging them to the corner, and adding "Snap Assist" — which prompts the user to select the application they want to occupy the other half of the screen when they snap a window to one half of the screen, and allows the user to automatically resize both windows at once by dragging a handle in the center of the screen.<ref>{{ |
Along with allowing Windows Store apps to run in a traditional window, [[Windows 10]] enhanced the snapping features introduced in Windows 7 by allowing windows to be tiled into screen quadrants by dragging them to the corner, and adding "Snap Assist" — which prompts the user to select the application they want to occupy the other half of the screen when they snap a window to one half of the screen, and allows the user to automatically resize both windows at once by dragging a handle in the center of the screen.<ref>{{cite web |last=Leonhard |first=Woody |title=Review: New Windows 10 version still can't beat Windows 7 |date=2015-11-12 |language=en |website=InfoWorld |url=https://www.infoworld.com/article/3004038/review-new-windows-10-version-1511-still-cant-beat-windows-7.html |access-date=2021-06-25}}</ref> |
||
Windows 10 also supports FancyZones, a more complete tiling window manager facility allowing customized tiling zones and greater user control, configured through [[Microsoft PowerToys]]. |
Windows 10 also supports FancyZones, a more complete tiling window manager facility allowing customized tiling zones and greater user control, configured through [[Microsoft PowerToys]]. |
||
[[Windows 11]] added more built-in tiling options, activated by hovering the mouse pointer over the maximize button. |
|||
====History==== |
|||
The first version ([[Windows 1.0]]) featured a tiling window manager, partly because of litigation by [[Apple Inc.|Apple]] [[Apple Computer, Inc. v. Microsoft Corporation|claiming ownership]] of the overlapping window [[desktop metaphor]]. But due to complaints, the next version ([[Windows 2.0]]) followed the desktop metaphor. All later versions of the [[operating system]] stuck to this approach as the default behaviour. |
|||
====3rd-party replacements==== |
|||
==== List of tiling window managers for Windows ==== |
|||
* AquaSnap - made by Nurgo Software. Freeware, with an optional "Professional" license. |
* AquaSnap - made by Nurgo Software. Freeware, with an optional "Professional" license. |
||
* |
* Amethyst for windows - [[dynamic window manager|dynamic tiling window manager]] along the lines of amethyst for MacOS. |
||
* bug.n – open source, configurable tiling window manager built as an [[AutoHotKey]] script and licensed under the [[GNU GPL]].<ref>{{cite web |
* bug.n – open source, configurable tiling window manager built as an [[AutoHotKey]] script and licensed under the [[GNU GPL]].<ref>{{cite web |title=bug.n – Tiling Window Manager for Windows |website=[[GitHub]] |url=https://github.com/fuhsjr00/bug.n |access-date=2019-03-02}}</ref> |
||
* MaxTo — customizable grid, global hotkeys. Works with elevated applications, 32-bit and 64-bit applications, and multiple monitors.<ref>{{ |
* MaxTo — customizable grid, global hotkeys. Works with elevated applications, 32-bit and 64-bit applications, and multiple monitors.<ref>{{cite web |title=MaxTo - The window manager you didn't know you missed] |url=https://maxto.net/ |access-date=2018-11-21 |url-status=live |archive-url=https://web.archive.org/web/20181113115926/https://maxto.net/ |archive-date=2018-11-13}}</ref> |
||
* |
* WS Grid+ – move and/or resize window's using a grid selection system combining benefits of floating, stacking, and tiling. It provides keyboard/mouse shortcuts to instantly move and resize a window. |
||
* Stack – customizable grid (XAML), global hotkeys and/or middle mouse button. Supports [[HiDPI]] and multiple monitors.<ref>{{ |
* Stack – customizable grid (XAML), global hotkeys and/or middle mouse button. Supports [[HiDPI]] and multiple monitors.<ref>{{cite web |title=Stack WM: Windows Store |website=[[Microsoft]] |url=https://www.microsoft.com/en-us/store/p/stack-wm/9p4rj8rl7qgs |access-date=2017-12-09 |url-status=live |archive-url=https://web.archive.org/web/20171210071630/https://www.microsoft.com/en-us/store/p/stack-wm/9p4rj8rl7qgs |archive-date=2017-12-10}}</ref><ref>{{cite web |title=Stack on Lost Tech LLC website |url=https://losttech.software/stack.html |access-date=2017-12-09 |url-status=live |archive-url=https://web.archive.org/web/20180111111428/https://losttech.software/stack.html |archive-date=2018-01-11}}</ref> |
||
* Plumb — lightweight tiling manager with support for multiple versions of Windows. Supports HiDPI monitors, keyboard hotkeys, and customization of hotkeys (XAML).<ref>{{cite web |title=Palatial Software Website |date=2019-01-10 |url=http://palatialsoftware.com/ |access-date=2019-01-10}}</ref> |
|||
}}</ref> |
|||
* workspacer — an [[MIT License|MIT-licensed]] tiling window manager for Windows 10 that aims to be fast and compatible. Written and configurable using [[C Sharp (programming language)|C#]].<ref>{{cite web |last=Button |first=Rick |title=workspacer |language=en-us |website=workspacer.org |url=https://www.workspacer.org/ |access-date=2020-07-02}}</ref> |
|||
* Plumb — lightweight tiling manager with support for multiple versions of Windows. Supports HiDPI monitors, keyboard hotkeys and customization of hotkeys (XAML).<ref>{{Cite web|url=http://palatialsoftware.com/|title=Palatial Software Website|date=2019-01-10|access-date=2019-01-10}}</ref> |
|||
* |
* dwm-win32 — port of dwm's general functionality to win32. Is [[MIT License|MIT-licensed]] and is configured by editing a config header in the same style as dwm.<ref>{{cite web |last=Tanner |first=Marc André |title=dwm-win32 - X11 dwm(1) for Windows |language=en |website=brain-dump.org |url=https://www.brain-dump.org/projects/dwm-win32/ |access-date=2020-07-02}}</ref> |
||
* GlazeWM — a tiling window manager for Windows inspired by i3 and Polybar. |
|||
* dwm-win32 — port of dwm's general functionality to win32. Is [[MIT License|MIT licensed]] and is configured by editing a config header in the same style as dwm.<ref>{{Cite web|last=Tanner|first=Marc André|title=dwm-win32 - X11 dwm(1) for Windows|url=https://www.brain-dump.org/projects/dwm-win32/|access-date=2020-07-02|website=www.brain-dump.org|language=en}}</ref> |
|||
* Komorebi — a window manager for Microsoft Windows SO written in [[Rust (programming language)|Rust]]. Like bspwm it does not handle key-binding on its own, so users have to use [[AutoHotkey|AHK]] or [[WHKD]] to manage the shortcuts. Komorebi also has a GUI User Friendly version called Komorebi UI. |
|||
* [https://github.com/lars-berger/GlazeWM GlazeWM] — a tiling window manager for Windows inspired by i3 and Polybar. |
|||
* Whim -- [[dynamic window manager]] that is built using WinUI 3 and the .NET framework. |
|||
* [https://github.com/LGUG2Z/komorebi Komorebi] — a rust written window manager for microsoft windows SO. Like bspwm it does not handle key-binding on its own, users require use [[AutoHotkey|AHK]] or [[WHKD]] to manage the shortcuts, komorebi also have a GUI User Friendly version called [https://github.com/eythaann/Komorebi-UI Komorebi UI]. |
|||
* [https://github.com/dalyIsaac/Whim Whim] -- a tiling window that is built using WinUI 3 and the .NET framework. |
|||
===X Window System=== |
===X Window System=== |
||
In the [[X Window System]], the window manager is a separate program. X itself enforces no specific window management approach and remains usable even without any window manager. Current X protocol version X11 explicitly mentions the possibility of tiling window managers. The Siemens RTL Tiled Window Manager (released in 1988) was the first to implement automatic placement/sizing strategies. Another tiling window manager from this period was the [[Cambridge Window Manager]] developed by [[IBM]]'s Academic Information System group. |
In the [[X Window System]], the window manager is a separate program. X itself enforces no specific window management approach and remains usable even without any window manager. Current X protocol version X11 explicitly mentions the possibility of tiling window managers. The Siemens RTL Tiled Window Manager (released in 1988) was the first to implement automatic placement/sizing strategies. Another tiling window manager from this period was the [[Cambridge Window Manager]] developed by [[IBM]]'s Academic Information System group. |
||
Line 60: | Line 55: | ||
====List of tiling window managers for X{{Anchor|X-tile-anchor}}==== |
====List of tiling window managers for X{{Anchor|X-tile-anchor}}==== |
||
* [[Awesome (window manager)|awesome]] – a dwm derivative with window tiling, floating and tagging, written in C and configurable and extensible in [[Lua (programming language)|Lua]]. It was the first WM to be ported from [[Xlib]] to [[XCB]], and supports [[D-Bus]], [[pango]], [[XRandR]], [[Xinerama]]. |
* [[Awesome (window manager)|awesome]] – a dwm derivative with window tiling, floating, and tagging, written in C and configurable and extensible in [[Lua (programming language)|Lua]]. It was the first WM to be ported from [[Xlib]] to [[XCB]], and supports [[D-Bus]], [[pango]], [[XRandR]], and [[Xinerama]]. |
||
* bspwm – a small tiling window manager that, similarly to yabai, represents windows as the leaves of a full binary tree. It does not handle key-binds on its own, requiring another program (e.g. sxhkd) to translate input to X events. |
* bspwm – a small tiling window manager that, similarly to yabai, represents windows as the leaves of a full binary tree. It does not handle key-binds on its own, requiring another program (e.g. sxhkd) to translate input to X events. |
||
* [[Compiz]] – a [[compositing window manager]] available for usage without leaving familiar interfaces such as the ones from [[GNOME]], [[KDE Plasma]] or [[MATE (software)|Mate]]. One of its plugins (called Grid) allows the user to configure several keybindings to move windows to any corner, with five different lengths. There are also options to configure default placement for specific windows. The plugins can be configured through the Compiz Config Settings Manager / CCSM. |
* [[Compiz]] – a [[compositing window manager]] available for usage without leaving familiar interfaces such as the ones from [[GNOME]], [[KDE Plasma]] or [[MATE (software)|Mate]]. One of its plugins (called Grid) allows the user to configure several keybindings to move windows to any corner, with five different lengths. There are also options to configure default placement for specific windows. The plugins can be configured through the Compiz Config Settings Manager / CCSM. |
||
* [[dwm]] – allows for switching tiling layouts by clicking a textual [[ascii art]] 'icon' in the status bar. The default is a main area + stacking area arrangement, represented by a '''[]=''' character glyph. Other standard layouts are a single-window "monocle" mode represented by an '''M''' and a non-tiling floating layout that permits windows to be moved and resized, represented by a [[fish]]-like '''><>'''. Third party [[patch (Unix)|patches]] exist to add a [[golden section]]-based [[Fibonacci]] layout, horizontal and vertical row-based tiling or a grid layout. The keyboard-driven menu utility "[[dmenu]]", developed for use with dwm,<ref name="alm201001">{{cite web |
* [[dwm]] – allows for switching tiling layouts by clicking a textual [[ascii art]] 'icon' in the status bar. The default is a main area + stacking area arrangement, represented by a '''[]=''' character glyph. Other standard layouts are a single-window "monocle" mode represented by an '''M''' and a non-tiling floating layout that permits windows to be moved and resized, represented by a [[fish]]-like '''><>'''. Third party [[patch (Unix)|patches]] exist to add a [[golden section]]-based [[Fibonacci]] layout, horizontal and vertical row-based tiling, or a grid layout. The keyboard-driven menu utility "[[dmenu]]", developed for use with dwm,<ref name="alm201001">{{cite web |title=Software Review: 2009 LnF Awards |author=Arch Linux Magazine Team |date=January 2010 |work=Arch Linux Magazine |url=http://www.archlinux.org/enwiki/static/magazine/2010/ALM-2010-Jan.html |access-date=8 March 2010 |url-status=live |archive-url=https://web.archive.org/web/20100216154649/http://www.archlinux.org/enwiki/static/magazine/2010/ALM-2010-Jan.html |archive-date=2010-02-16}}</ref> is used with other tiling WMs such as [[xmonad]],<ref>{{cite web |title=100 open source gems - part 2 |date=21 May 2009 |work=[[TuxRadar]] |publisher=[[Future Publishing]] |url=http://www.tuxradar.com/content/100-open-source-gems-part-2 |access-date=3 March 2010 |url-status=live |archive-url=https://web.archive.org/web/20100106002804/http://www.tuxradar.com/content/100-open-source-gems-part-2 |archive-date=2010-01-06}}</ref><!-- xmonad uses dmenu by default in Debian. IIRC, wmii also does; for one, the Debian package "wmii" depends on "dwm-tools". But I have no secondary source for that. --> and sometimes also with other "light-weight" software like [[Openbox]]<ref name="alm201001"/> and [[uzbl]].<ref>{{cite web |title=Uzbl: a browser following the UNIX philosophy |last=Vervloesem |first=Koen |date=15 July 2009 |work=[[LWN.net]] |publisher=Eklektix, Inc. |url=https://lwn.net/Articles/341245/ |access-date=3 March 2010 |url-status=live |archive-url=https://web.archive.org/web/20091130020552/http://lwn.net/Articles/341245/ |archive-date=2009-11-30}}</ref> |
||
* EXWM — EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for Emacs built on top of XELB. It features fully keyboard-driven operations, hybrid layout modes (tiling & stacking), dynamic workspace support, ICCCM/EWMH compliance, RandR (multi-monitor) support, and a built-in system tray. |
|||
|url = http://www.tuxradar.com/content/100-open-source-gems-part-2 |
|||
* herbstluftwm – a manual tiling window manager (similar to [[i3 (window manager)|i3]] or [[Sway (window manager)|Sway]]) that uses the concept of monitor independent tags as workspaces. Exactly one tag can be viewed on a monitor, with each tag containing its own layout. Like i3 and Sway, herbstluftwm is configured at runtime via [[inter-process communication|IPC]] calls from herbstclient.<ref>{{cite web |title=herbstluftwm |website=herbstluftwm.org |url=https://herbstluftwm.org/ |access-date=2019-08-12}}</ref> |
|||
|title = 100 open source gems - part 2 |
|||
|date = 21 May 2009 |
|||
|work = [[TuxRadar]] |
|||
|publisher = [[Future Publishing]] |
|||
|access-date = 3 March 2010 |
|||
|archive-url = https://web.archive.org/web/20100106002804/http://www.tuxradar.com/content/100-open-source-gems-part-2 |
|||
|archive-date = 2010-01-06 |
|||
|url-status = live |
|||
}}</ref><!-- xmonad uses dmenu by default in Debian. IIRC, wmii also does; for one, the Debian package "wmii" depends on "dwm-tools". But I have no secondary source for that. --> and sometimes also with other "light-weight" software like [[Openbox]]<ref name="alm201001" /> and [[uzbl]].<ref>{{cite web|url=https://lwn.net/Articles/341245/|title=Uzbl: a browser following the UNIX philosophy|last=Vervloesem|first=Koen|date=15 July 2009|work=[[LWN.net]]|publisher=Eklektix, Inc.|access-date=3 March 2010|archive-url=https://web.archive.org/web/20091130020552/http://lwn.net/Articles/341245/|archive-date=2009-11-30|url-status=live}}</ref> |
|||
* herbstluftwm – a manual tiling window manager (similar to [[I3 (window manager)|i3]] or [[Sway (window manager)|Sway]]) that uses the concept of monitor independent tags as workspaces. Exactly one tag can be viewed on a monitor, with each tag containing its own layout. Like i3 and Sway, herbstluftwm is configured at runtime via [[Inter-process communication|IPC]] calls from herbstclient.<ref>{{Cite web|url=https://herbstluftwm.org/|title=herbstluftwm|website=herbstluftwm.org|access-date=2019-08-12}}</ref> |
|||
* [[i3 (window manager)|i3]] – a built-from-scratch window manager, based on wmii. It has vi-like keybindings, and treats extra monitors as extra workspaces, meaning that windows can be moved between monitors easily. Allows vertical and horizontal splits, tabbed and stacked layouts, and parent containers. It can be controlled entirely from the keyboard, but a mouse can also be used. |
* [[i3 (window manager)|i3]] – a built-from-scratch window manager, based on wmii. It has vi-like keybindings, and treats extra monitors as extra workspaces, meaning that windows can be moved between monitors easily. Allows vertical and horizontal splits, tabbed and stacked layouts, and parent containers. It can be controlled entirely from the keyboard, but a mouse can also be used. |
||
* [[Ion (window manager)|Ion]] – combines tiling with a tabbing interface: the display is manually split in non-overlapping regions (frames). Each frame can contain one or more windows. Only one of these windows is visible and fills the entire frame. |
* [[Ion (window manager)|Ion]] – combines tiling with a tabbing interface: the display is manually split in non-overlapping regions (frames). Each frame can contain one or more windows. Only one of these windows is visible and fills the entire frame. |
||
* [[Larswm]] – implements a form of dynamic tiling: the display is vertically split in two regions (tracks). The left track is filled with a single window. The right track contains all other windows stacked on top of each other. |
* [[Larswm]] – implements a form of dynamic tiling: the display is vertically split in two regions (tracks). The left track is filled with a single window. The right track contains all other windows stacked on top of each other. |
||
* [[LeftWM]] – a tiling window manager based on theming and supporting large monitors such as ultrawides.<ref>{{ |
* [[LeftWM]] – a tiling window manager based on theming and supporting large monitors such as ultrawides.<ref>{{citation |title=GitHub - leftwm/leftwm: LeftWM: A tiling window manager for Adventurers. |date=2019-04-04 |publisher=leftwm |url=https://github.com/leftwm/leftwm |access-date=2019-04-05}}</ref> |
||
* Notion '''-''' a tiling window manager |
|||
* [[Qtile]] – a tiling window manager written, configurable and extensible in [[Python (programming language)|Python]].<ref name="FMAG">{{cite web |
|||
* [[Qtile]] – a tiling window manager written, configurable, and extensible in [[Python (programming language)|Python]].<ref name="FMAG">{{cite web |title=5 cool tiling window managers |last1=Verna |first1=Clément |date=27 September 2018 |id=Qtile |website=Fedora Magazine |url=https://fedoramagazine.org/5-cool-tiling-window-managers/ |access-date=20 November 2018}}</ref> |
|||
|title=5 cool tiling window managers |
|||
|website=Fedora Magazine |
|||
|first1=Clément|last1=Verna |
|||
|date=27 September 2018 |
|||
|id=Qtile |
|||
|url=https://fedoramagazine.org/5-cool-tiling-window-managers/ |
|||
|access-date=20 November 2018}}</ref> |
|||
* [[Ratpoison]] — A keyboard-driven [[GNU Screen]] for X. |
* [[Ratpoison]] — A keyboard-driven [[GNU Screen]] for X. |
||
* [[spectrwm]] — a dynamic tiling and reparenting window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for more important content. It strives to be small, compact and fast. Formerly called "scrotwm" (a pun based on the word "scrotum").<ref name="scrotwm-rename">{{ |
* [[spectrwm]] — a dynamic tiling and reparenting window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for more important content. It strives to be small, compact, and fast. Formerly called "scrotwm" (a pun based on the word "scrotum").<ref name="scrotwm-rename">{{cite web |title=rename scrotwm to spectrwm |date=2012-02-15 |website=github.com |url=https://github.com/conformal/spectrwm/commit/e83f3b790887174fe8b8fd6b3c98172b59ff9305 |access-date=2019-05-25}}</ref>{{primary source inline|date=August 2021}} |
||
* |
* StumpWM – a keyboard driven offshoot of ratpoison supporting multiple displays (e.g. xrandr) that can be customized on the fly in Common Lisp. It uses Emacs-compatible keybindings by default. |
||
* wmii (window manager improved 2) supports tiling and [[ |
* wmii (window manager improved 2) supports tiling and [[stacking window manager|stacking]] window management with extended [[computer keyboard|keyboard]], [[computer mouse|mouse]], and filesystem based remote control,<ref name="home-wmii"/> replacing the workspace paradigm with a new tagging approach.<ref name="PCLOSMAG"/> The default configuration uses keystrokes derived from those of the [[vi (text editor)|vi]] text editor. The window manager offers extensive configuration through a virtual filesystem using the [[9P (protocol)|9P]] filesystem protocol similar to that offered by [[Plan 9 from Bell Labs]].<ref name="home-wmii"/> Every window, tag, and column is represented in the virtual filesystem, and windows are controlled by manipulating their file objects (in fact, the configuration file is just a script interfacing the virtual files). This RPC system allows many different configuration styles, including those provided in the base distribution in [[plan9port]] and [[Bourne shell]]. The latest release 3.9 also includes configurations in [[Python (programming language)|Python]] and [[Ruby (programming language)|Ruby]].<ref name="news-wmii"/> The latest release supports [[Xinerama]], shipping with its own keyboard-based menu program called wimenu, featuring history and programmable completion.<ref name="news-wmii"/><ref name="PK=wmi"/><ref name="LM64-wmii"/><ref name="LF103-wmii"/> |
||
* [[xmonad]] – an extensible WM written in [[Haskell (programming language)|Haskell]], which was both influenced by and has since influenced dwm. |
* [[xmonad]] – an extensible WM written in [[Haskell (programming language)|Haskell]], which was both influenced by and has since influenced dwm. |
||
Line 96: | Line 76: | ||
|title=Tiling X Window Systems |
|title=Tiling X Window Systems |
||
|state=expanded |
|state=expanded |
||
|width=180 |
|width=180 |height=180 |
||
|height=180 |
|||
|align=left |
|align=left |
||
|footer=<!-- Example 1 --> |
|footer=<!-- Example 1 --> |
||
|File:Dwm-shot.png |
|File:Dwm-shot.png |The [[dwm]] tiling window manager |
||
|File:Scrotwm.png |spectrwm with master area on the left |
|||
|The [[dwm]] tiling window manager |
|||
|File:Bluetile screenshot2.png |[[Bluetile]] is designed to integrate with the [[GNOME desktop]] |
|||
|File:Scrotwm.png |
|||
|File:Wmfs-2011-03-11.png |[[Window Manager From Scratch|WMFS]] with [[urxvt]], [[Music Player Daemon|ncmpcpp]], [[Vim (text editor)|Vim]], and tty-clock open |
|||
|spectrwm with master area on the left |
|||
|File:Bluetile screenshot2.png |
|||
|[[Bluetile]] is designed to integrate with the [[GNOME desktop]] |
|||
|File:Wmfs-2011-03-11.png |
|||
|[[Window Manager From Scratch|WMFS]] with [[urxvt]], [[Music Player Daemon|ncmpcpp]], [[Vim (text editor)|Vim]], and tty-clock open |
|||
}} |
}} |
||
{{ |
{{Clear}} |
||
===Wayland=== |
===Wayland=== |
||
[[Wayland ( |
[[Wayland (protocol)|Wayland]] is a new windowing system that aims to replace the [[X Window System]]. Only a few tiling managers support Wayland natively. |
||
====List of tiling window managers for Wayland==== |
====List of tiling window managers for Wayland==== |
||
*[https://hyprland.org/ Hyprland] — Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. |
|||
* Hyprland — Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling, and rounded corners. |
|||
*[[Sway (window manager)|Sway]] — Sway is "a drop-in replacement for the [[I3 (window manager)|i3 window manager]], but for [[Wayland (display server protocol)|Wayland]] instead of [[X Window System|X11]]. It works with your existing i3 configuration and supports most of i3's features, and a few extras".<ref>{{Cite web |url=http://swaywm.org/ |title=SwayWM |access-date=2017-10-13 |archive-url=https://web.archive.org/web/20171010074315/http://swaywm.org/ |archive-date=2017-10-10 |url-status=live }}</ref> |
|||
* japokwm — Dynamic Wayland tiling compositor based around creating layouts, based on wlroots. |
|||
*[https://github.com/riverwm/river River] - River is a dynamic tiling Wayland compositor with flexible runtime configuration, it is maintained and under regular updates. |
|||
* newm — Wayland compositor written with laptops and touchpads in mind ''(currently unmaintained)''. |
|||
*[https://github.com/project-repo/cagebreak CageBreak] is a tiling compositor for wayland, based on cage and inspired by [[Ratpoison]], which is easily controlled through the keyboard and a unix domain socket. |
|||
* niri — A scrollable-tiling Wayland compositor. |
|||
*[https://codeberg.org/dwl/dwl dwl] - dwl is a wayland compositor, that was intended to fill the same space in the Wayland world that [[dwm]] does in [[X Window System|X11]]. Like dwm, it is written in [[C (programming language)|C]], has a small codebase and lacks any configuration interface besides editing the source code. |
|||
* Velox — Simple window manager based on swc, inspired by [[dwm]] and [[xmonad]]. |
|||
* Vivarium — A dynamic tiling Wayland compositor using wlroots, with desktop semantics inspired by [[xmonad]]. |
|||
* [[Sway (window manager)|Sway]] — Sway is "a drop-in replacement for the [[i3 (window manager)|i3 window manager]], but for [[Wayland (display server protocol)|Wayland]] instead of [[X Window System|X11]]. It works with your existing i3 configuration and supports most of i3's features, and a few extras".<ref>{{cite web |title=SwayWM |url=https://swaywm.org/ |access-date=2017-10-13 |url-status=live |archive-url=https://web.archive.org/web/20171010074315/http://swaywm.org/ |archive-date=2017-10-10}}</ref> |
|||
* River - River is a dynamic tiling Wayland compositor with flexible runtime configuration, it is maintained and under regular updates. |
|||
* CageBreak is a tiling compositor for wayland, based on cage and inspired by [[Ratpoison]], which is easily controlled through the keyboard and a unix domain socket. |
|||
* dwl - dwl is a wayland compositor, that was intended to fill the same space in the Wayland world that [[dwm]] does in [[X Window System|X11]]. Like dwm, it is written in [[C (programming language)|C]], has a small codebase and lacks any configuration interface besides editing the source code. |
|||
===Others=== |
===Others=== |
||
*The [[Oberon (operating system)|Oberon]] operating and programming system, from [[ETH Zurich]] includes a tiling window manager. |
*The [[Oberon (operating system)|Oberon]] operating and programming system, from [[ETH Zurich]] includes a tiling window manager. |
||
*The [[Acme (text editor)|Acme]] programmer's editor / windowing system / shell program in Plan 9 is a tiling window manager. |
*The [[Acme (text editor)|Acme]] programmer's editor / windowing system / shell program in Plan 9 is a tiling window manager. |
||
*The [[Samsung Galaxy S3]], [[Samsung Galaxy S4|S4]], [[Samsung Galaxy Note II|Note II]] and [[Samsung Galaxy Note 3|Note 3]] smartphones, running a custom variant of [[Android (operating system)|Android]] 4, have a multi-window feature that allows the user to tile two apps on the device's screen. This feature was integrated into stock Android as of version 7.0 "Nougat". |
*The [[Samsung Galaxy S3]], [[Samsung Galaxy S4|S4]], [[Samsung Galaxy Note II|Note II]], and [[Samsung Galaxy Note 3|Note 3]] smartphones, running a custom variant of [[Android (operating system)|Android]] 4, have a multi-window feature that allows the user to tile two apps on the device's screen. This feature was integrated into stock Android as of version 7.0 "Nougat". |
||
*The Pop Shell extension, from [[Pop! |
*The Pop Shell extension, from [[Pop! OS]] can add tiling windows manager functionalities to GNOME. |
||
*The Amethyst window manager by ianyh, which provides window tiling for [[macOS]] and was inspired by xmonad.<ref>{{ |
*The Amethyst window manager by ianyh, which provides window tiling for [[macOS]] and was inspired by xmonad.<ref>{{cite web |title=Amethyst {{!}} ianyh |website=ianyh.com |url=https://ianyh.com/amethyst/ |access-date=2021-04-23}}</ref> |
||
==Tiling applications== |
==Tiling applications== |
||
[[File:Emacs-screenshot.png|thumbnail|right|GNU Emacs showing an example of tiling within an application window]] |
[[File:Emacs-screenshot.png|thumbnail|right|GNU Emacs showing an example of tiling within an application window]] |
||
Although tiling is not the default mode of window managers on any widely used platform, most applications already display multiple functions internally in a similar manner. |
Although tiling is not the default mode of window managers on any widely used platform, most applications already display multiple functions internally in a similar manner. Examples include email clients, [[integrated development environment|IDE]]s, web browsers, and contextual help in Microsoft Office. The main windows of these applications are divided into "[[paned window (computing)|panes]]" for the various displays. The panes are usually separated by a draggable divider to allow resizing. Paned windows are a common way to implement a [[master–detail interface]]. |
||
Developed since the 1970s, the [[Emacs]] text editor contains one of the earliest implementations of tiling. In addition, HTML [[framing (World Wide Web)|frames]] can be seen as a [[markup language]]-based implementation of tiling. The tiling window manager extends this usefulness beyond multiple functions within an application, to multiple applications within a desktop. The [[tabbed document interface]] can be a useful adjunct to tiling, as it avoids having multiple window tiles on screen for the same function. |
Developed since the 1970s, the [[Emacs]] text editor contains one of the earliest implementations of tiling. In addition, HTML [[framing (World Wide Web)|frames]] can be seen as a [[markup language]]-based implementation of tiling. The tiling window manager extends this usefulness beyond multiple functions within an application, to multiple applications within a desktop. The [[tabbed document interface]] can be a useful adjunct to tiling, as it avoids having multiple window tiles on screen for the same function. |
||
==See also== |
==See also== |
||
*[[Integrated development environment]] style interface |
|||
*[[Split screen (computer graphics)]] |
*[[Split screen (computer graphics)]] |
||
*[[Integrated development environment]] style interface |
|||
==References== |
==References== |
||
{{Reflist|refs= |
|||
{{reflist|refs= |
|||
<!-- wmii References start --> |
<!-- wmii References start --> |
||
<ref name="home-wmii">{{cite web|url=http://wmii.suckless.org/| |
<ref name="home-wmii">{{cite web |title=wmii - Window Manager Improved 2 |website=Wmii.suckless.org |url=http://wmii.suckless.org/ |access-date=2013-07-13 |url-status=dead |archive-url=https://web.archive.org/web/20111231012144/http://wmii.suckless.org/ |archive-date=2011-12-31}}</ref> |
||
<ref name="PK=wmi">{{cite magazine |title=Light and speedy. WMI and the reincarnation of the keyboard |magazine=Linux Magazine |issue=54 |url=http://www.linux-magazine.com/w3/issue/54/DeskTOPia_WMI.pdf |url-status=dead |archive-url=https://web.archive.org/web/20120224070258/http://www.linux-magazine.com/w3/issue/54/DeskTOPia_WMI.pdf |archive-date=24 February 2012}}</ref> |
|||
<ref name=" |
<ref name="LM64-wmii">{{cite magazine |magazine=[[Linux Magazine]] |issue=64 |title=No wimps. A look at the Wmii Window Manager |last=Golde |first=Nico |date=March 2006 |url=http://www.linux-magazine.com/content/download/62972/486664/version/1/file/Desktopia_Wmii.pdf |access-date=2018-10-01 |url-status=live |archive-url=https://web.archive.org/web/20151028024449/http://www.linux-magazine.com/content/download/62972/486664/version/1/file/Desktopia_Wmii.pdf |archive-date=2015-10-28}}</ref> |
||
<ref name="LF103-wmii">{{cite magazine |magazine=[[Linux Format]] |issue=103 |last=Saunders |first=Mike |title=Lightweight window managers |date=March 2008 |id=wmii}}</ref> |
|||
<ref name=" |
<ref name="news-wmii">{{cite web |title=suckless.org git repositories |df=ymd-all |website=Hg.suckless.org |url=http://hg.suckless.org/wmii/file/3.9/NEWS |access-date=2013-07-13 |url-status=dead |archive-url=https://web.archive.org/web/20110728070355/http://hg.suckless.org/wmii/file/3.9/NEWS |archive-date=2011-07-28}}</ref> |
||
<ref name="PCLOSMAG">{{cite web |title=Windows Migration: Desktop Environments & Window Managers |id=Tiling and Dynamic Tiling Window Managers - wmii |last=Komis |first=Antonis |date=April 2013 |website=PCLinuxOS |url=https://pclosmag.com/html/Issues/201304/page03.html |url-status=live |archive-url=https://web.archive.org/web/20161024225530/https://pclosmag.com/html/Issues/201304/page03.html |archive-date=24 October 2016}}</ref> |
|||
<!-- Removed refs: |
|||
<ref name="LF103-wmii">{{cite magazine|magazine=[[Linux Format]]|issue=103|first=Mike|last=Saunders|date=March 2008|title=Lightweight window managers|id=wmii}}</ref> |
|||
<ref name="initial-wmii>{{cite web |title=Initial release date |website=github.com |url=https://github.com/sunaku/wmii/blob/caaad63c0d40c92b4256cd9d0fc92a2a716e7068/CHANGES#L91}}</ref> |
|||
<ref name=" |
<ref name="size-wmii">{{cite web |title=(Untitled commpressed tarball) |url=http://dl.suckless.org/wmii/wmii+ixp-3.9.2.tbz |access-date=2012-03-14 |url-status=dead |archive-url=https://web.archive.org/web/20120502103219/http://dl.suckless.org/wmii/wmii+ixp-3.9.2.tbz |archive-date=2012-05-02}}</ref> |
||
<ref name="PCLOSMAG">{{cite web|title=Windows Migration: Desktop Environments & Window Managers |
|||
|url=https://pclosmag.com/html/Issues/201304/page03.html|id=Tiling and Dynamic Tiling Window Managers - wmii|first=Antonis|last=Komis|website=PCLinuxOS|date=April 2013|url-status=live|archive-url=https://web.archive.org/web/20161024225530/https://pclosmag.com/html/Issues/201304/page03.html|archive-date=24 October 2016|df=dmy-all}}</ref> |
|||
<!-- Removed refs |
|||
<ref name="initial-wmii>{{cite web|url=https://github.com/sunaku/wmii/blob/caaad63c0d40c92b4256cd9d0fc92a2a716e7068/CHANGES#L91|title=Initial release date|website=github.com}}</ref> |
|||
<ref name="size-wmii">{{Cite web |url=http://dl.suckless.org/wmii/wmii+ixp-3.9.2.tbz |title=(Untitled commpressed tarball)|access-date=2012-03-14 |archive-url=https://web.archive.org/web/20120502103219/http://dl.suckless.org/wmii/wmii+ixp-3.9.2.tbz |archive-date=2012-05-02 |url-status=dead }}</ref> |
|||
--> |
--> |
||
<!-- wmii References finish --> |
<!-- wmii References finish --> |
||
}} |
}} |
||
== |
==External links== |
||
* [https://wiki.archlinux.org/ |
* [https://wiki.archlinux.org/title/Comparison_of_tiling_window_managers Comparison of Tiling Window Managers] — [[Arch Linux]] Wiki |
||
{{XWinSys}} |
{{XWinSys}} |
||
{{Commons category|wmii}} |
|||
[[Category:User interface techniques]] |
[[Category:User interface techniques]] |
Latest revision as of 02:45, 4 January 2025
In computing, a tiling window manager is a window manager with the organization of the screen often dependant on mathematical formulas to organise the windows into a non-overlapping frame. This is opposed to the more common approach used by stacking window managers, which allow the user to drag windows around, instead of windows snapping into a position. This allows for a different style of organization, although it departs from the traditional desktop metaphor.
History
[edit]Xerox PARC
[edit]The first Xerox Star system (released in 1981) tiled application windows, but allowed dialog boxes and property windows to overlap.[1] Later, Xerox PARC also developed CEDAR[2] (released in 1982), the first windowing system using a tiled window manager.
Various vendors
[edit]Next in 1983 came Andrew WM, a complete tiled windowing system later replaced by X11. Microsoft's Windows 1.0 (released in 1985) also used tiling (see sections below). In 1986 came Digital Research's GEM 2.0, a windowing system for the CP/M which used tiling by default.[3] One of the early (created in 1988) tiling WMs was Siemens' RTL, up to today a textbook example because of its algorithms of automated window scaling, placement, and arrangement, and (de)iconification. RTL ran on X11R2 and R3, mainly on the "native" Siemens systems, e.g., SINIX. Its features are described by its promotional video.[4][5] The Andrew Project (AP or tAP) was a desktop client system (like early GNOME) for X with a tiling and overlapping window manager.
MacOS X 10.11 El Capitan released in September 2015 introduces new window management features such as creating a full-screen split view limited to two app windows side-by-side in full screen by holding down the full-screen button in the upper-left corner of a window.[6]
Tiling window managers
[edit]Microsoft Windows
[edit]The first version (Windows 1.0) featured a tiling window manager, partly because of litigation by Apple claiming ownership of the overlapping window desktop metaphor. But due to complaints, the next version (Windows 2.0) followed the desktop metaphor. All later versions of the operating system stuck to this approach as the default behaviour.
The built-in Microsoft Windows window manager has, since Windows 2.0, followed the traditional stacking approach by default. It can also act as a rudimentary tiling window manager.
To tile windows, the user selects them in the taskbar and uses the context menu choice Tile Vertically or Tile Horizontally. Choosing Tile Vertically will cause the windows to tile horizontally but take on a vertical shape, while choosing Tile Horizontally will cause the windows to tile vertically but take on a horizontal shape. These options were later changed in Windows Vista to Show Windows Side by Side and Show Windows Stacked, respectively.
Windows 7 added "Aero Snap" which adds the ability to drag windows to either side of the screen to create a simple side-by-side tiled layout, or to the top of the screen to maximize. Windows 8 introduced Windows Store apps; unlike desktop applications, they did not operate in a window, and could only run in full screen, or "snapped" as a sidebar alongside another app, or the desktop environment.[7]
Along with allowing Windows Store apps to run in a traditional window, Windows 10 enhanced the snapping features introduced in Windows 7 by allowing windows to be tiled into screen quadrants by dragging them to the corner, and adding "Snap Assist" — which prompts the user to select the application they want to occupy the other half of the screen when they snap a window to one half of the screen, and allows the user to automatically resize both windows at once by dragging a handle in the center of the screen.[8]
Windows 10 also supports FancyZones, a more complete tiling window manager facility allowing customized tiling zones and greater user control, configured through Microsoft PowerToys.
Windows 11 added more built-in tiling options, activated by hovering the mouse pointer over the maximize button.
3rd-party replacements
[edit]- AquaSnap - made by Nurgo Software. Freeware, with an optional "Professional" license.
- Amethyst for windows - dynamic tiling window manager along the lines of amethyst for MacOS.
- bug.n – open source, configurable tiling window manager built as an AutoHotKey script and licensed under the GNU GPL.[9]
- MaxTo — customizable grid, global hotkeys. Works with elevated applications, 32-bit and 64-bit applications, and multiple monitors.[10]
- WS Grid+ – move and/or resize window's using a grid selection system combining benefits of floating, stacking, and tiling. It provides keyboard/mouse shortcuts to instantly move and resize a window.
- Stack – customizable grid (XAML), global hotkeys and/or middle mouse button. Supports HiDPI and multiple monitors.[11][12]
- Plumb — lightweight tiling manager with support for multiple versions of Windows. Supports HiDPI monitors, keyboard hotkeys, and customization of hotkeys (XAML).[13]
- workspacer — an MIT-licensed tiling window manager for Windows 10 that aims to be fast and compatible. Written and configurable using C#.[14]
- dwm-win32 — port of dwm's general functionality to win32. Is MIT-licensed and is configured by editing a config header in the same style as dwm.[15]
- GlazeWM — a tiling window manager for Windows inspired by i3 and Polybar.
- Komorebi — a window manager for Microsoft Windows SO written in Rust. Like bspwm it does not handle key-binding on its own, so users have to use AHK or WHKD to manage the shortcuts. Komorebi also has a GUI User Friendly version called Komorebi UI.
- Whim -- dynamic window manager that is built using WinUI 3 and the .NET framework.
X Window System
[edit]In the X Window System, the window manager is a separate program. X itself enforces no specific window management approach and remains usable even without any window manager. Current X protocol version X11 explicitly mentions the possibility of tiling window managers. The Siemens RTL Tiled Window Manager (released in 1988) was the first to implement automatic placement/sizing strategies. Another tiling window manager from this period was the Cambridge Window Manager developed by IBM's Academic Information System group.
In 2000, both larswm and Ion released a first version.
List of tiling window managers for X
[edit]- awesome – a dwm derivative with window tiling, floating, and tagging, written in C and configurable and extensible in Lua. It was the first WM to be ported from Xlib to XCB, and supports D-Bus, pango, XRandR, and Xinerama.
- bspwm – a small tiling window manager that, similarly to yabai, represents windows as the leaves of a full binary tree. It does not handle key-binds on its own, requiring another program (e.g. sxhkd) to translate input to X events.
- Compiz – a compositing window manager available for usage without leaving familiar interfaces such as the ones from GNOME, KDE Plasma or Mate. One of its plugins (called Grid) allows the user to configure several keybindings to move windows to any corner, with five different lengths. There are also options to configure default placement for specific windows. The plugins can be configured through the Compiz Config Settings Manager / CCSM.
- dwm – allows for switching tiling layouts by clicking a textual ascii art 'icon' in the status bar. The default is a main area + stacking area arrangement, represented by a []= character glyph. Other standard layouts are a single-window "monocle" mode represented by an M and a non-tiling floating layout that permits windows to be moved and resized, represented by a fish-like ><>. Third party patches exist to add a golden section-based Fibonacci layout, horizontal and vertical row-based tiling, or a grid layout. The keyboard-driven menu utility "dmenu", developed for use with dwm,[16] is used with other tiling WMs such as xmonad,[17] and sometimes also with other "light-weight" software like Openbox[16] and uzbl.[18]
- EXWM — EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for Emacs built on top of XELB. It features fully keyboard-driven operations, hybrid layout modes (tiling & stacking), dynamic workspace support, ICCCM/EWMH compliance, RandR (multi-monitor) support, and a built-in system tray.
- herbstluftwm – a manual tiling window manager (similar to i3 or Sway) that uses the concept of monitor independent tags as workspaces. Exactly one tag can be viewed on a monitor, with each tag containing its own layout. Like i3 and Sway, herbstluftwm is configured at runtime via IPC calls from herbstclient.[19]
- i3 – a built-from-scratch window manager, based on wmii. It has vi-like keybindings, and treats extra monitors as extra workspaces, meaning that windows can be moved between monitors easily. Allows vertical and horizontal splits, tabbed and stacked layouts, and parent containers. It can be controlled entirely from the keyboard, but a mouse can also be used.
- Ion – combines tiling with a tabbing interface: the display is manually split in non-overlapping regions (frames). Each frame can contain one or more windows. Only one of these windows is visible and fills the entire frame.
- Larswm – implements a form of dynamic tiling: the display is vertically split in two regions (tracks). The left track is filled with a single window. The right track contains all other windows stacked on top of each other.
- LeftWM – a tiling window manager based on theming and supporting large monitors such as ultrawides.[20]
- Notion - a tiling window manager
- Qtile – a tiling window manager written, configurable, and extensible in Python.[21]
- Ratpoison — A keyboard-driven GNU Screen for X.
- spectrwm — a dynamic tiling and reparenting window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for more important content. It strives to be small, compact, and fast. Formerly called "scrotwm" (a pun based on the word "scrotum").[22][non-primary source needed]
- StumpWM – a keyboard driven offshoot of ratpoison supporting multiple displays (e.g. xrandr) that can be customized on the fly in Common Lisp. It uses Emacs-compatible keybindings by default.
- wmii (window manager improved 2) supports tiling and stacking window management with extended keyboard, mouse, and filesystem based remote control,[23] replacing the workspace paradigm with a new tagging approach.[24] The default configuration uses keystrokes derived from those of the vi text editor. The window manager offers extensive configuration through a virtual filesystem using the 9P filesystem protocol similar to that offered by Plan 9 from Bell Labs.[23] Every window, tag, and column is represented in the virtual filesystem, and windows are controlled by manipulating their file objects (in fact, the configuration file is just a script interfacing the virtual files). This RPC system allows many different configuration styles, including those provided in the base distribution in plan9port and Bourne shell. The latest release 3.9 also includes configurations in Python and Ruby.[25] The latest release supports Xinerama, shipping with its own keyboard-based menu program called wimenu, featuring history and programmable completion.[25][26][27][28]
- xmonad – an extensible WM written in Haskell, which was both influenced by and has since influenced dwm.
Wayland
[edit]Wayland is a new windowing system that aims to replace the X Window System. Only a few tiling managers support Wayland natively.
List of tiling window managers for Wayland
[edit]- Hyprland — Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling, and rounded corners.
- japokwm — Dynamic Wayland tiling compositor based around creating layouts, based on wlroots.
- newm — Wayland compositor written with laptops and touchpads in mind (currently unmaintained).
- niri — A scrollable-tiling Wayland compositor.
- Velox — Simple window manager based on swc, inspired by dwm and xmonad.
- Vivarium — A dynamic tiling Wayland compositor using wlroots, with desktop semantics inspired by xmonad.
- Sway — Sway is "a drop-in replacement for the i3 window manager, but for Wayland instead of X11. It works with your existing i3 configuration and supports most of i3's features, and a few extras".[29]
- River - River is a dynamic tiling Wayland compositor with flexible runtime configuration, it is maintained and under regular updates.
- CageBreak is a tiling compositor for wayland, based on cage and inspired by Ratpoison, which is easily controlled through the keyboard and a unix domain socket.
- dwl - dwl is a wayland compositor, that was intended to fill the same space in the Wayland world that dwm does in X11. Like dwm, it is written in C, has a small codebase and lacks any configuration interface besides editing the source code.
Others
[edit]- The Oberon operating and programming system, from ETH Zurich includes a tiling window manager.
- The Acme programmer's editor / windowing system / shell program in Plan 9 is a tiling window manager.
- The Samsung Galaxy S3, S4, Note II, and Note 3 smartphones, running a custom variant of Android 4, have a multi-window feature that allows the user to tile two apps on the device's screen. This feature was integrated into stock Android as of version 7.0 "Nougat".
- The Pop Shell extension, from Pop! OS can add tiling windows manager functionalities to GNOME.
- The Amethyst window manager by ianyh, which provides window tiling for macOS and was inspired by xmonad.[30]
Tiling applications
[edit]Although tiling is not the default mode of window managers on any widely used platform, most applications already display multiple functions internally in a similar manner. Examples include email clients, IDEs, web browsers, and contextual help in Microsoft Office. The main windows of these applications are divided into "panes" for the various displays. The panes are usually separated by a draggable divider to allow resizing. Paned windows are a common way to implement a master–detail interface.
Developed since the 1970s, the Emacs text editor contains one of the earliest implementations of tiling. In addition, HTML frames can be seen as a markup language-based implementation of tiling. The tiling window manager extends this usefulness beyond multiple functions within an application, to multiple applications within a desktop. The tabbed document interface can be a useful adjunct to tiling, as it avoids having multiple window tiles on screen for the same function.
See also
[edit]- Integrated development environment style interface
- Split screen (computer graphics)
References
[edit]- ^ "Xerox Star". Archived from the original on 2011-07-18. Retrieved 2007-04-14.
- ^ "Ten Years of Window Systems — A Retrospective View". Archived from the original on 2010-03-16. Retrieved 2010-12-21.
- ^ "Tiling Window Managers". mnemonikk.org.
- ^ "video". Archived from the original on 2010-12-22. Retrieved 2010-12-22.
- ^ "The First Tiling Window Manager - Siemens RTL Tiled Window Manager (released in 1988)". YouTube. Archived from the original on 2021-12-21.
- ^ "Apple Announces OS X El Capitan with Refined Experience & Improved Performance". Apple Newsroom.
- ^ "Build: More Details On Building Windows 8 Metro Apps". PCMAG. Retrieved 2021-06-25.
- ^ Leonhard, Woody (2015-11-12). "Review: New Windows 10 version still can't beat Windows 7". InfoWorld. Retrieved 2021-06-25.
- ^ "bug.n – Tiling Window Manager for Windows". GitHub. Retrieved 2019-03-02.
- ^ "MaxTo - The window manager you didn't know you missed]". Archived from the original on 2018-11-13. Retrieved 2018-11-21.
- ^ "Stack WM: Windows Store". Microsoft. Archived from the original on 2017-12-10. Retrieved 2017-12-09.
- ^ "Stack on Lost Tech LLC website". Archived from the original on 2018-01-11. Retrieved 2017-12-09.
- ^ "Palatial Software Website". 2019-01-10. Retrieved 2019-01-10.
- ^ Button, Rick. "workspacer". workspacer.org. Retrieved 2020-07-02.
- ^ Tanner, Marc André. "dwm-win32 - X11 dwm(1) for Windows". brain-dump.org. Retrieved 2020-07-02.
- ^ a b Arch Linux Magazine Team (January 2010). "Software Review: 2009 LnF Awards". Arch Linux Magazine. Archived from the original on 2010-02-16. Retrieved 8 March 2010.
- ^ "100 open source gems - part 2". TuxRadar. Future Publishing. 21 May 2009. Archived from the original on 2010-01-06. Retrieved 3 March 2010.
- ^ Vervloesem, Koen (15 July 2009). "Uzbl: a browser following the UNIX philosophy". LWN.net. Eklektix, Inc. Archived from the original on 2009-11-30. Retrieved 3 March 2010.
- ^ "herbstluftwm". herbstluftwm.org. Retrieved 2019-08-12.
- ^ GitHub - leftwm/leftwm: LeftWM: A tiling window manager for Adventurers., leftwm, 2019-04-04, retrieved 2019-04-05
- ^ Verna, Clément (27 September 2018). "5 cool tiling window managers". Fedora Magazine. Qtile. Retrieved 20 November 2018.
- ^ "rename scrotwm to spectrwm". github.com. 2012-02-15. Retrieved 2019-05-25.
- ^ a b "wmii - Window Manager Improved 2". Wmii.suckless.org. Archived from the original on 2011-12-31. Retrieved 2013-07-13.
- ^ Komis, Antonis (April 2013). "Windows Migration: Desktop Environments & Window Managers". PCLinuxOS. Tiling and Dynamic Tiling Window Managers - wmii. Archived from the original on 24 October 2016.
- ^ a b "suckless.org git repositories". Hg.suckless.org. Archived from the original on 2011-07-28. Retrieved 2013-07-13.
- ^ "Light and speedy. WMI and the reincarnation of the keyboard" (PDF). Linux Magazine. No. 54. Archived from the original (PDF) on 24 February 2012.
- ^ Golde, Nico (March 2006). "No wimps. A look at the Wmii Window Manager" (PDF). Linux Magazine. No. 64. Archived (PDF) from the original on 2015-10-28. Retrieved 2018-10-01.
- ^ Saunders, Mike (March 2008). "Lightweight window managers". Linux Format. No. 103. wmii.
- ^ "SwayWM". Archived from the original on 2017-10-10. Retrieved 2017-10-13.
- ^ "Amethyst | ianyh". ianyh.com. Retrieved 2021-04-23.