I3 (window manager)

Last updated
i3
Original author(s) Michael Stapelberg
Initial releaseMarch 15, 2009;15 years ago (2009-03-15) [1]
Stable release
4.23 [2]   OOjs UI icon edit-ltr-progressive.svg / 29 October 2023
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]

Contents

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]

Design goals

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.

Features

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]

Floating pop-up windows

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]

See also

Related Research Articles

<span class="mw-page-title-main">Multiple-document interface</span> Type of software application interface

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.

<span class="mw-page-title-main">Vim (text editor)</span> Improved version of the Vi keyboard-oriented text editor

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.

<span class="mw-page-title-main">X window manager</span> Type of window manager

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.

<span class="mw-page-title-main">Fluxbox</span> Open source window manager for the X11 system

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 Window manager for the X Window System

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.

<span class="mw-page-title-main">Ion (window manager)</span> Tiling and tabbing window manager

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.

<span class="mw-page-title-main">Window manager</span> Type of system software

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.

<span class="mw-page-title-main">CTWM</span> Unix window manager

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.

<span class="mw-page-title-main">Comparison of command shells</span>

A command shell is a command-line interface to interact with and manipulate a computer's operating system.

<span class="mw-page-title-main">GNOME Terminal</span> Terminal emulator from GNOME

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.

<span class="mw-page-title-main">Tiling window manager</span> Window manager with non-overlapping frames

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 Dynamic window manager for X Window System

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

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.

<span class="mw-page-title-main">Super key (keyboard button)</span> Computer key

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.

<span class="mw-page-title-main">WindowLab</span> Window manager for Unix-like systems

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 (window manager) Window manager for X Window System

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 (file manager) Text-based file manager

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.

<span class="mw-page-title-main">Sway (window manager)</span> Tiling Wayland compositor

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.

References

  1. GitHub releases
  2. "Release 4.23". 29 October 2023. Retrieved 18 November 2023.
  3. i3 download page
  4. 1 2 i3 home page
  5. i3 - An Improved Tiling Window Manager
  6. Stapelberg, Michael. "i3: IPC interface (interprocess communication)".
  7. 1 2 3 Congleton, Nick (May 23, 2017). "Install and Use i3 Window Manager on Ubuntu". maketecheasier. Uqnic Network Pte. Retrieved May 1, 2019.
  8. 1 2 J.A. Watson (January 7, 2016). "How to customise your Linux desktop: i3 Window Manager". ZDNet . ZDNet. Retrieved May 1, 2019.
  9. "Getting started with the i3 tiling window manager". 24 February 2016.
  10. "Using i3 with multiple monitors". 24 June 2019.
  11. Stapelberg, Michael. "Forcing windows as always floating".
  12. Stapelberg, Michael. ""floating" workspace".

Footnotes

  1. In Unix filesystems, "~" refers to the user's home directory.