I3 (window manager)

Last updated
i3
Original author(s) Michael Stapelberg
Initial releaseMarch 15, 2009;13 years ago (2009-03-15) [1]
Stable release
4.22 [2]   OOjs UI icon edit-ltr-progressive.svg / 2 January 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 it handles dynamically. 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) plus 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, similar to 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>

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.

<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">Enlightenment (software)</span> Compositing window manager

Enlightenment, also known simply as E, is a compositing window manager for the X Window System. Since version 20, Enlightenment is also a Wayland compositor. Enlightenment developers have referred to it as "the original eye-candy window manager."

<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">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">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 an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor.

<span class="mw-page-title-main">Windows Aero</span> Design language by Microsoft

Windows Aero is a design language introduced in the Windows Vista operating system. The changes made in the Aero interface affected many elements of the Windows interface, including the incorporation of a new look, along with changes in interface guidelines reflecting appearance, layout, and the phrasing and tone of instructions and other text in applications.

Compared with previous versions of Microsoft Windows, features new to Windows Vista are very numerous, covering most aspects of the operating system, including additional management features, new aspects of security and safety, new I/O technologies, new networking features, and new technical features. Windows Vista also removed some others.

A compositing window manager, or compositor, is a window manager that provides applications with an off-screen buffer for each window. The window 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 security in addition to simplicity, and lacks any configuration interface besides editing the source code. One of the project's guidelines is that the source code is intended to never 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.

Extended Window Manager Hints, a.k.a. NetWM, is an X Window System standard for the communication between window managers and applications. It builds on the functionality of the Inter-Client Communication Conventions Manual (ICCCM).

<span class="mw-page-title-main">Awesome (window manager)</span> Window manager for X Window System

AwesomeWM 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. 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.

The transition from Windows 7 to Windows 8 introduced a number of new features across various aspects of the operating system. These include a greater focus on optimizing the operating system for touchscreen-based devices and cloud computing.

<span class="mw-page-title-main">Android Jelly Bean</span> Tenth version of the Android operating system

Android Jelly Bean, or Android 4.1 is the codename given to the tenth version of the Android mobile operating system developed by Google, spanning three major point releases. Among the devices that run Android 4.1 to 4.3 are the Nexus 7 (2012), Nexus 4, Nexus 10 and Nexus 7 (2013).

<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. Michael Stapelberg (2 January 2023). "i3 v4.22 released" . Retrieved 2 January 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.com. ZDNet. Retrieved May 1, 2019.
  9. "Getting started with the i3 tiling window manager". 24 February 2016.
  10. "Using i3 with multiple monitors".
  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.