Dwm

Last updated
dwm
Original author(s) Anselm R. Garbe [1]
Developer(s) suckless.org
Initial releaseJuly 14, 2006;17 years ago (2006-07-14) [2]
Stable release
6.5 [3]   OOjs UI icon edit-ltr-progressive.svg / 19 March 2024
Repository
Written in C
Operating system Unix-like
Size 26 KB (source code) [4]
Type Window manager
License MIT [5]
Website dwm.suckless.org
dwm's xinerama support: tiling on two screens simultaneously Dwm dual monitor.jpeg
dwm's xinerama support: tiling on two screens simultaneously

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 [6] and awesome. [7] [8] It is externally similar to wmii, but internally much simpler. dwm is written purely in C for performance [9] and lacks any configuration interface besides editing the source code. [10] 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. [8]

Contents

Features

dwm supports multiple workspaces and, unlike ratpoison, allows moving and resizing windows with the mouse. [11] Older versions of dwm displayed their stdin in a status bar, along the edge of the screen. Recent versions instead display the root window's name, which can be set by independent processes. This is often used to show information that would appear in the notification area of other desktop environments—a clock, system load info, laptop battery and network status, music player information and the like. This status line is often complemented with dmenu, a textual application launcher from the same developers as dwm. dwm uses a focus-follows-mouse model and lacks any window decoration other than a border to show focus. Since dwm's configurability amounts to patching the source code, many other options are possible. [12]

dmenu

dmenu in action

dmenu is a keyboard-driven menu utility developed as part of the dwm project. When invoked, usually by a user-configured key combination, dmenu displays a horizontal menu of its stdin stream at the top edge of the screen. This is usually used to pipe in a list of executable names from the user's $PATH, but dmenu can be used for any purpose where a menu is required. The user can start typing a program name, and dmenu will narrow the list to show only substring matches for what the user typed. The user can also use the arrow keys to navigate the menu. When a choice is made, dmenu sends the selected text to stdout, which is usually piped into a shell to launch the program. Command-line options can alter the font and colors of the menu, make the search case-insensitive, as well as switch the menu to a vertical orientation or place it at the bottom of the screen. By default, only X Font Server fonts are supported although a patch exists to enable TrueType fonts using Xft.

dmenu is similar in function to application launchers such as Katapult or GNOME Do for Linux or LaunchBar or Quicksilver for Mac OS X in that it allows quick launching of programs from a graphical environment using the keyboard.

In addition to dwm, [13] dmenu is often used with other window managers like xmonad, [14] or Openbox, [13] and other software like the uzbl web browser. [15] i3 uses dmenu as the default program launcher.

Forks and patches

dwm has been an influential project; many other window managers are based on dwm's source code or inspired by it. An extensive list of forks and patches can be found at the official site. Below is a list of a few notable examples:

See also

Related Research Articles

<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">Graphics Device Interface</span> Microsoft Windows API

The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. It was superseded by DirectDraw API and later Direct2D API. Windows apps use Windows API to interact with GDI, for such tasks as drawing lines and curves, rendering fonts, and handling palettes. The Windows USER subsystem uses GDI to render such UI elements as window frames and menus. Other systems have components that are similar to GDI; for example: Mac OS has QuickDraw, and Linux and Unix have X Window System core protocol.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

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.

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

<span class="mw-page-title-main">Sawfish (window manager)</span>

Sawfish is a window manager for the X Window System. It aims to manage windows in the most flexible and attractive manner possible. It is able to match a window by multiple criteria such as application, size or role, and based on this, can change the window's position, appearance, or behavior. This allows for highly customized window handling such as web browser windows opening full-screen without borders on a secondary monitor, a default terminal emulator window displaying full-screen at the desktop level, and all dialog box windows under a certain size opening on the lower right corner of the main monitor while larger ones are centered.

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.

ratpoison Tiling window manager

ratpoison is a tiling window manager for the X Window System primarily developed by Shawn Betts. The user interface and much of their functionality are inspired by the GNU Screen terminal multiplexer. While ratpoison is written in C, Betts' StumpWM re-implements a similar window manager in Common Lisp.

<span class="mw-page-title-main">FVWM</span> Virtual window manager for X Window System

The F Virtual Window Manager (FVWM) is a virtual window manager for the X Window System. Originally a twm derivative, FVWM is now a window manager for Unix-like systems.

<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">Xming</span>

Xming is an X11 display server for Microsoft Windows operating systems, including Windows XP and later.

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

xmonad Dynamic window manager for X Window System

xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.

An application launcher is a computer program that helps a user to locate and start other computer programs. An application launcher provides shortcuts to computer programs, and stores the shortcuts in one place so they are easier to find.

<span class="mw-page-title-main">Unicode input</span> Input characters using their Unicode code points

Unicode input is the insertion of a specific Unicode character on a computer by a user; it is a common way to input characters not directly supported by a physical keyboard. Unicode characters can be produced either by selecting them from a display or by typing a certain sequence of keys on a physical keyboard. In addition, a character produced by one of these methods in one web page or document can be copied into another. In contrast to ASCII's 96 element character set, Unicode encodes hundreds of thousands of graphemes (characters) from almost all of the world's written languages and many other signs and symbols besides.

Game Editor is a 2D game authoring package. It supports multi-platform development to iPhone, iPad, Mac OS X, Windows, Android, Linux, Windows Mobile-based Smartphones, GP2X, Pocket PCs, and Handheld PCs. Compatibility with these platforms is mentioned on Game Discovery, a popular site for game developers, among other software like The 3D Gamemaker, DarkBASIC, and GameMaker.

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.

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.

i3 (window manager) Unix window manager software

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.

suckless.org is a free software community of programmers working on projects with a focus on minimalism, simplicity, clarity, and frugality. The group developed the dwm and wmii window managers, surf, tabbed, and other programs that are said to adhere strictly to the Unix philosophy of "doing one thing and doing it well". The development team follows the "Worse is better" principle and adheres to the KISS principle.

References

  1. Garbe, Anselm R. "Anselm R Garbe". garbe.us. Archived from the original on 2009-11-25. Retrieved 2011-05-15.
  2. 0.1 Release tag
  3. . 19 March 2024 https://git.suckless.org/dwm/commit/061e9fe9a7db396c0c4f3d996c3908fb43a6d50c.html.{{cite web}}: Missing or empty |title= (help)
  4. "dwm dynamic window manager". dwm.suckless.org. Retrieved January 23, 2022.
  5. "MIT/X Consortium License". suckless.org. Retrieved 2015-05-04.
  6. Kolmodin, Lennart (April 2, 2007). "xmonad". Bits and Bytes. Retrieved 2011-05-15.
  7. Danjou, Julien (20 Sep 2007). "Announcing 'awesome'". dwm (Mailing list). Archived from the original on 3 April 2010. Retrieved 2011-05-15.
  8. 1 2 Auza, Jun (August 2, 2008). "20 Most Nimble and Simple X Window Managers for Linux". TechSource.
  9. "dwm home page". dwm is customized through editing its source code, which makes it extremely fast and secure - it does not process any input data which isn't known at compile time
  10. Byfield, Bruce (2007-05-31). "Keyboard-driven environments open a new window on the desktop". Linux.com . SourceForge, Inc. Archived from the original on 2022-03-27. Retrieved 2010-03-01.
  11. "A Review And Tutorial Of The DWM Window Manager". Linux Goodies. Archived from the original on 2010-06-03. Retrieved 2012-01-30.
  12. "patches".
  13. 1 2 Arch Linux Magazine Team (January 2010). "Software Review: 2009 LnF Awards". Arch Linux Magazine. Archived from the original on 16 February 2010. Retrieved 4 March 2010.
  14. "100 open source gems - part 2". TuxRadar . Future Publishing. 21 May 2009. Archived from the original on 25 May 2009. Retrieved 3 March 2010.
  15. Vervloesem, Koen (15 July 2009). "Uzbl: a browser following the UNIX philosophy". LWN.net . Eklektix, Inc. Retrieved 3 March 2010.

Further reading