Dwm
Encyclopedia
dwm is a dynamic tiling window manager
Tiling window manager
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 popular approach of coordinate-based stacking of overlapping objects that tries to fully emulate the desktop metaphor.-Xerox PARC:Although the...

 for X11
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 exhibiting the principles of minimalism which is known for having influenced the development of other window managers, including xmonad
Xmonad
xmonad is a tiling window manager for the X Window System, written in the functional programming language Haskell.Begun in March 2007, it is similar to dwm, larswm, StumpWM and other members of the tiling window manager family, in that it arranges windows in a nonoverlapping tiled pattern and...

 and awesome
Awesome (window manager)
awesome is a dynamic window manager for the X Window System developed in the C and Lua programming languages. The latter is also used for configuring and extending the window manager. Its development began as a fork of dwm...

. It is externally similar to wmii
Wmii
wmii is a tiling window manager for X11. It supports classic and tiling window management with extended keyboard, mouse, and filesystem based remote control...

, but internally much simpler. dwm is written purely in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 and, for simplicity, lacks any configuration interface besides editing the source code. One of the project's guidelines is that the source code will never exceed 2000 lines, and options meant to be user-configurable are all contained in a single header file
Header file
Some programming languages use header files. These files allow programmers to separate certain elements of a program's source code into reusable files. Header files commonly contain forward declarations of classes, subroutines, variables, and other identifiers...

.

Features

dwm supports multiple workspaces and unlike ratpoison
Ratpoison
Ratpoison is a tiling window manager for the X Window System primarily developed by Shawn Betts. Its user interface and much of its functionality are inspired by the GNU Screen terminal multiplexer...

 allows moving and resizing windows with the mouse. Older versions of dwm optionally displayed their stdin in a status bar at the top of the screen. Recent versions use the root window
Root window
In the X Window System, every window is contained within another window, called its parent. This makes the windows form a hierarchy. The root window is the root of this hierarchy...

 name, which can be changed by an independent process. 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 developer as dwm. dwm uses a focus-follows-mouse model and lacks any window decoration other than a border to show focus.

dmenu

dmenu is a keyboard-driven menu
Menu (computing)
In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...

 utility developed as part of the dwm project. When invoked, usually by a user-configurable 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
Path (variable)
PATH is an environment variable on Unix-like operating systems, DOS, OS/2, and Microsoft Windows, specifying a set of directories where executable programs are located...

, 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
Substring
A subsequence, substring, prefix or suffix of a string is a subset of the symbols in a string, where the order of the elements is preserved...

 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.

dmenu is similar in function to utilities such as Katapult
Katapult
Katapult is a free application launcher for KDE desktop environment. It allows the user to quickly launch applications or open files by pressing Alt + space and typing the beginning of the file or application name. Katapult doubles as a quick calculator, spell checker, and document viewer. Katapult...

 or GNOME Do
GNOME Do
GNOME Do is a popular, free application launcher for Linux originally created by David Siegel, and currently maintained by Alex Launi...

 for linux or LaunchBar
LaunchBar
LaunchBar is a launch application for Mac OS X. It provides access to user's applications and files, by entering short abbreviations of the searched item's name. It uses an adaptive algorithm that 'learns' a user's preferred abbreviations for a particular application...

 or Quicksilver
Quicksilver (software)
Quicksilver is a computer utility software program for Mac OS X, originally developed by Blacktree Software and distributed freely. It is essentially a graphical shell for the Mac OS X operating system, allowing users to use the keyboard to rapidly perform tasks such as launching...

 for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 in that it allows quick launching of programs from a graphical environment using the keyboard.

In addition to dwm, dmenu is often used with other tiling window managers like xmonad
Xmonad
xmonad is a tiling window manager for the X Window System, written in the functional programming language Haskell.Begun in March 2007, it is similar to dwm, larswm, StumpWM and other members of the tiling window manager family, in that it arranges windows in a nonoverlapping tiled pattern and...

, as well as floating window managers like Openbox
Openbox
Openbox is a free window manager for the X Window System, licensed under the GNU General Public License. Originally derived from Blackbox 0.65.0 , Openbox has now been totally rewritten in the C programming language and since version 3.0 is not based upon any code from Blackbox.Openbox is designed...

, and other software like the uzbl
Uzbl
Uzbl is a free and open source minimalist web browser designed for simplicity and adherence to the Unix philosophy. Development started in early 2009 and is still considered in alpha software by the developers. The core component of uzbl is developed in C but other languages are also used, most...

 web browser.

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, a few notable examples:
  • xmonad
    Xmonad
    xmonad is a tiling window manager for the X Window System, written in the functional programming language Haskell.Begun in March 2007, it is similar to dwm, larswm, StumpWM and other members of the tiling window manager family, in that it arranges windows in a nonoverlapping tiled pattern and...

     is a dwm rewrite in Haskell
    Haskell (programming language)
    Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...

     with additional features.
  • awesome
    Awesome (window manager)
    awesome is a dynamic window manager for the X Window System developed in the C and Lua programming languages. The latter is also used for configuring and extending the window manager. Its development began as a fork of dwm...

     extends dwm with FreeType
    FreeType
    FreeType is a software library written in C that implements a font rasterization engine. It is used to render text on to bitmaps and provides support for other font-related operations.-Details:...

     support, reconfigurability, Lua scripting support, theming, and more layout types.
  • echinus extends dwm with FreeType
    FreeType
    FreeType is a software library written in C that implements a font rasterization engine. It is used to render text on to bitmaps and provides support for other font-related operations.-Details:...

     support, subset of EWMH, click-to-focus, reconfigurability, and more layout types.
  • scrotwm borrows some code from dwm, adds reconfigurability and is restartable without losing state.

Further reading

Tobias Walkowiak, Dynamische Fenster mit DWM. Ressourcen sparen mit dem etwas anderen Window Manager, freeX
Freex
Freex was a short-lived comic book series from Malibu Comics. Created By Gerard Jones and Ben Herrera, it concerned a team of teenage superheroes in the Ultraverse.Its roster over the series consisted of Anything ,...

, issue 6/07, (Oct/Nov 2007) pp. 44–47

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK