Package adwm-0.7.17
was released under GPLv3 license
2024-03-27.
This was originally a fork of Echinus which in turn was a fork of dwm(1)
,
and borrows concepts from velox(1)
, awesome(1)
, spectrwm(1)
and
wmii(1)
. What it includes is a full rewrite with significant updates and
additions resulting in full EWMH (NetwM), WMH (WinWM), MWMH (CDE/Motif),
ICCCM 2.0 compliance and support.
The source for adwm
is hosted on GitHub.
This is the adwm-0.7.17
package, released 2024-03-27.
This release, and the latest version, can be obtained from GitHub,
using a command such as:
$> git clone https://github.com/bbidulock/adwm.git
Please see the RELEASE and NEWS files for release notes and history of user visible changes for the current version, and the ChangeLog file for a more detailed history of implementation changes. The TODO file lists features not yet implemented and other outstanding items.
The file COMPLIANCE lists the current state of EWMH/ICCCM compliance.
Please see the INSTALL file for installation instructions.
When working from git(1)
, please use this file. An abbreviated
installation procedure that works for most applications appears below.
echinus(1)
and dwm(1)
were published under the MIT/X Consortium License
that can be found in the file LICENSE. As over 90% of the source file
lines have been supplied or replaced and the remaining 10% is not subject
to copyright,
this release is published under GPLv3. Please see the license in the
file COPYING.
The quickest and easiest way to get adwm
up and
running is to run the following commands:
$> git clone https://github.com/bbidulock/adwm.git
$> cd adwm
$> ./autogen.sh
$> ./configure
$> make
$> make DESTDIR="$pkgdir" install
This will configure, compile and install adwm
the
quickest. For those who like to spend the extra 15 seconds reading
./configure --help
, some compile time options can be turned on and off
before the build.
For general information on GNU's ./configure
, see the file
INSTALL.
Install the following X Libraries to build and load adwm
:
libxft
libxrandr
libxinerama
libxpm
startup-notification
libxcomposite
libxdamage
libpng
To support default key and mouse bindings, build and install the following packages:
- xdg-launch: for application launching default key bindings
- xde-ctools: for
xde-run
,xde-winmenu
,xde-winlist
andxde-wkspmenu
default bindings - xde-menu: for
xde-menu
root menu default bindings - xde-session: for
xde-logout
andxde-xlock
default bindings
To support default key bindings, the following applications must be installed:
uxterm
: to be able to launch a terminal at allroxterm
: for terminal application launchingfirefox
: for browser application launchingpcmanfm
: for file manager application launchinggvim
: for editor application launchingscrot
: to support screenshot key bindingsxbrightness
andxbacklight
oracpibacklight
: to support brightness keysamixer
: to support audio control keysxrandr
: to support screen rotation key bindings
For a more full-featured desktop environment, build and install the following packages:
- xde-styles: for a small, consistent set of styles for ADWM and other light-weight window managers
- xde-panel: for a panel that works well with ADWM
- xde-applets: for various WindowMaker dock applications and systray applets
- xde-theme: for various desktop themes and theme packs
- xde-sounds: for base sound themes
Of course for a minimal desktop, lemon-bar and dmenu will suffice (xde-menu supports a version of dmenu that supports freedesktop.org desktop files).
Read the manual page after installation:
$> man adwm
Following are some of the features provided by adwm(1)
not provided by
similar window managers:
General:
- full NetWM/EWMH, WinWM/WMH (gnome), OSF/Motif and ICCCM 2.0 compliance;
- full support for ICCCM 2.0 client and global modality;
- full RANDR and Xinerama compliance with full support for multi-head setups;
- full support for Window Maker dock applications in floating and tiling modes;
- window manager based auto-hide for panels and docks (struts);
- three focus models: click-to-focus, sloppy and all-sloppy;
- soon to come: full X11R6 session management;
- very wide array of available key-binding actions;
- key-binding defaults consistent with a wide array of light-weight and popular window managers (see NOTES).
Views, Workspaces and Desktops:
- view/tag based workspaces and desktops;
- scroll wheel support for switching desktops;
- key bindings for switching desktops observes EMWH desktop layout.
Floating/stacking mode:
- smart cascading placement algorithm;
- window decorations: title bar, resize grips, wide array of configurable buttons;
- themed buttons include hovered, toggled, pressed, focused and unfocused pixmaps;
- multiple mouse actions per title bar button based on mouse button pressed;
- separate click and click-drag actions for title bar, borders and grips;
- windows can snap to other windows and workspace/monitor boundaries;
- key bindings for moving and resizing windows without using the mouse.
- drop shadowed XFT text in title bars, with separate color selection for active and inactive windows;
- dragging of windows between monitor;
metacity(1)
-like drag-to-left, -right or -top functions to optimize single-desktop operation.
Tiling modes:
- per-monitor tiling layouts for multi-head setups;
- multiple tiling modes including master/stacking, monocle and grid (but, no dwindle or centered-master modes, yet);
- adjustable window borders and inter-window margins;
- one pixel open space around dynamic desktop area for clicking on the root window in tiled modes;
- ability to drag-and-swap windows in tiling layouts (ala
awesome(1)
,wmii(1)
andspectrwm(1)
);
Report issues on GitHub here.
Following are some sample screenshots:
Figure 1: Tiled layout (master right)
Figure 2: Tiled layout (bar exposed)
Figure 3: Tiled layout (master left)
Figure 4: Tiled layout (windows decorated)
Figure 6: Floating layout (root menu)