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 strays from the traditional desktop metaphor.
The first Xerox Star system (released in 1981) tiled application windows, but allowed dialogs 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.
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]
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.
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.
Wayland is a new windowing system with the aim of replacing the X Window System. There are only a few tiling managers that support Wayland natively.
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.
In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell. The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.
An X window manager is a window manager that runs on top of the X Window System, a windowing system mainly used on Unix-like systems.
In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.
freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.
twm is a window manager for the X Window System. Started in 1987 by Tom LaStrange, it has been the standard window manager for the X Window System since version X11R4. The name originally stood for Tom's Window Manager, but the software was renamed Tab Window Manager by the X Consortium when they adopted it in 1989. twm is a stacking window manager that provides title bars, shaped windows and icon management. It is highly configurable and extensible.
In Unix computing, Ion is a tiling and tabbing window manager for the X Window System. It is designed such that it is possible to manage windows using only a keyboard, without needing a mouse. It is the successor of PWM and is written by the same author, Tuomo Valkonen. Since the first release of Ion in the summer 2000, similar alternative window management ideas have begun to show in other new window managers: Larswm, ratpoison, StumpWM, wmii, xmonad and dwm.
X.Org Server is the free and open-source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation.
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction with the underlying graphical system that provides required functionality—support for graphics hardware, pointing devices, and a keyboard—and are often written and created using a widget toolkit.
In computing, the Inter-Client Communication Conventions Manual is a standard protocol for the X Window System. It specifies conventions for clients of a common X server about selections and cut buffers, communication with the window manager and session manager, manipulation of shared resources, and color characterization.
In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.
Desktop Window Manager is the compositing window manager in Microsoft Windows since Windows Vista that enables the use of hardware acceleration to render the graphical user interface of Windows.
A compositing manager, or compositor, is software that provides applications with an off-screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory.
dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally much simpler. dwm is written purely in C for performance and lacks any configuration interface besides editing the source code. One of the project's guidelines is that the source code is intended never to exceed 2000 SLOC, and options meant to be user-configurable are all contained in a single header file.
xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.
This article compares variety of different X window managers. For an introduction to the topic, see X Window System.
In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, but one can also change the number of windows in this area. Its purpose is to reserve more space for the more important window(s). The secondary area shows the other windows.
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.
awesome is a dynamic window manager for the X Window System developed in the C and Lua programming languages. Lua is also used for configuring and extending the window manager. Its development began as a fork of dwm, though has differed considerably since. It aims to be extremely small and fast, yet extensively customizable. It makes it possible for the user to manage windows with the use of keyboard.
i3 is a tiling window manager designed for X11, inspired by wmii and written in C. It supports tiling, stacking, and tabbing layouts, which are handled manually. Its configuration is achieved via a plain text file and extending i3 is possible using its Unix domain socket and JSON based IPC interface from many programming languages.
Sway is a tiling window manager and Wayland compositor, inspired by i3, and written in C. Sway is designed as a drop-in replacement for i3 using the more modern Wayland display server protocol and wlroots compositor library. Sway works with existing i3 configuration files and supports most of i3's features while providing several new features of its own.
{{cite magazine}}
: Cite magazine requires |magazine=
(help)