Original author(s) | Michael Stapelberg |
---|---|
Initial release | March 15, 2009 [1] |
Stable release | |
Repository | |
Written in | C |
Operating system | Unix-like |
Size | 1.3 MiB [3] |
Type | Window manager |
License | BSD-3-Clause [4] |
Website | i3wm.org |
i3 is a tiling window manager designed for X11, inspired by wmii and written in C. [5] 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. [6]
Like wmii, i3 uses a control system very similar to that of vi and Vim. By default, window focus is controlled by what the documentation refers to as the 'Mod1' key (Alt key/Windows key) in addition to the right-hand home row keys (Mod1+J,K,L,Semicolon), while window movement is controlled by the addition of the Shift key (Mod1+Shift+J,K,L,Semicolon). [7]
i3's primary design goals are to possess well-written, documented code that encourages user contribution; [4] to use XCB instead of Xlib; to implement multi-monitor features correctly, so that each workspace is assigned to a virtual screen, and monitor additions and removals are non-destructive of windows; to implement different modes, in a manner similar to that of the text editors vi and vim; to use a tree as the abstraction (and underlying data structure) for window management; and to implement UTF-8 character encoding.
i3's configuration is done via a plain text file (usually found in ~/.config/i3/config), [Note 1] which can be customized without any sophisticated programming knowledge. [7] Contrary to other popular tiling window managers, such as dwm, awesome, and xmonad, window management is left to the user in i3. Windows are held inside containers, which can be split vertically or horizontally. They can also optionally be resized. There are also options for stacking the windows, as well as tabbing them (similar to the interface that web browsers use). i3 uses dmenu as the default program launcher, but it can be replaced. [7] [8] i3 also has an associated program called i3bar that displays information about the system at the bottom of the screen. [9]
i3 also supports the use of multiple monitors. [10]
Even though i3 is a tiling window manager, specific windows, such as password pop-ups, are not displayed as new tiles by default; [11] they are always stacked in front of tiled windows, unless in full screen mode. These floating windows can be moved and resized freely, just as they can in stacking window managers and popular desktop environments like GNOME or KDE Plasma. [8]
The authors of i3 intend floating windows to be used for pop-up windows only. [12]
A multiple-document interface (MDI) is a graphical user interface in which multiple windows reside under a single parent window. Such systems often allow child windows to embed other windows inside them as well, creating complex nested hierarchies. This contrasts with single-document interfaces (SDI) where all windows are independent of each other.
Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.
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.
Fluxbox is a stacking window manager for the X Window System, which started as a fork of Blackbox 0.61.1 in 2001, with the same aim to be lightweight. Its user interface has only a taskbar, a pop-up menu accessible by right-clicking on the desktop, and minimal support for graphical icons. All basic configurations are controlled by text files, including the construction of menus and the mapping of key-bindings. Fluxbox has high compliance to the Extended Window Manager Hints specification.
In computing, a window is a graphical control element. It consists of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration. It usually has a rectangular shape that can overlap with the area of other windows. It displays the output of and may allow input to one or more processes.
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.
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 Unix computing, CTWM is a stacking window manager for the X Window System in the twm family of window managers. CTWM was created in 1992 by Claude Lecommandeur of EPFL from the source code for twm, which he extended to allow for virtual desktops, an innovative feature at the time for a window manager; his inspiration was vuewm, an early Unix desktop environment. Later additions and modifications have since changed the original twm codebase significantly, providing for a highly customizable user interface. The project is currently (2024) maintained by Matthew Fuller. CTWM has been the default graphical user interface for NetBSD since 2020, replacing twm.
A command shell is a command-line interface to interact with and manipulate a computer's operating system.
GNOME Terminal is a terminal emulator for the GNOME desktop environment written by Havoc Pennington and others. Terminal emulators allow users to access a UNIX shell while remaining on their graphical desktop.
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.
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.
olwm was the default stacking window manager for OpenWindows, the original X11 desktop environment included with SunOS and Solaris. Its unique characteristic is its implementation of the OPEN LOOK look and feel.
Super key (❖) is an alternative name for what is commonly labelled as the Windows key or Command key on modern keyboards, typically bound and handled as such by Linux and BSD operating systems and software today.
WindowLab is an X window manager for Unix-like systems. It is based on aewm and retains that window manager's lightweight aesthetic. In many aspects, WindowLab has looked to the Amiga's user interface for inspiration without cloning it completely. Its top-level menu bar is accessed by a right click as on the Amiga and it follows Fitts's law of usability in that once the mouse enters the menu area it is constrained there in both the horizontal and vertical directions. Unlike on the Amiga, the menu bar is not controlled by applications; it is a global launcher menu which is populated by a dot file in the user's home directory containing a list of menu titles and commands.
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.
ranger is a free and open-source file manager with text-based user interface for Unix-like systems. It is developed by Roman Zimbelmann and licensed under the terms of the GNU General Public License. The program can accomplish file management tasks with a few keystrokes, and mouse input is optional. In conjunction with extensions including the rifle file opener and scope.sh, ranger can be scripted to open files with pre-defined programs, and to display a preview of the selected file by calling external programs.
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.