This git repository contains my personal branch of dwm-6.4.
The changes made to stock dwm add the following abilities.
Replaced stock ‘tile’ layout with ‘flextile’. https://dwm.suckless.org/patches/flextile/
Added new layout with three columns, master in the middle. https://dwm.suckless.org/patches/three-column/
Draw per-client indicators in the tag section of the status bar. https://dwm.suckless.org/patches/clientindicators/
Prompt the user before exiting/restarting dwm. https://dwm.suckless.org/patches/quitprompt/
Assign text names to tags at runtime. https://dwm.suckless.org/patches/nametag/
Layout menu popup presents available layouts. https://dwm.suckless.org/patches/layoutmenu/
Select multiple tags for simultaneous display or window assignment. https://dwm.suckless.org/patches/combo/
Deselect ALL tags, displaying an empty desktop. https://dwm.suckless.org/patches/emptyview/
Center window names in status bar. https://dwm.suckless.org/patches/centeredwindowname/
Active client has wide, red border.
Customized rules/keybindings in config.h
.
In addition to the usual dependencies and installation tasks for dwm (see the original README at the bottom of this file), there are the following new dependencies/tasks.
xmenu from https://github.com/phillbush/xmenu. This requires freetype2
and imlib2, available in FreeBSD’s ports collection under print/freetype2
and graphics/imlib2
. This is required for the layout menu popup.
Customize (if needed) and install layoutmenu.sh
somewhere in your $PATH
.
Remember to make it executable.
Build and install SGK version of dwmstatus, then call from .xinitrc
.
Possible patches to consider in the future:
https://dwm.suckless.org/patches/cfacts/
https://dwm.suckless.org/patches/mark/
https://dwm.suckless.org/patches/monocle_count/
https://dwm.suckless.org/patches/preserveonrestart/
https://dwm.suckless.org/patches/swallow/
Below is the original dwm README file.
dwm is an extremely fast, small, and dynamic window manager for X.
In order to build dwm you need the Xlib header files.
Edit config.mk to match your local setup (dwm is installed into the /usr/local namespace by default).
Afterwards enter the following command to build and install dwm (if necessary as root):
make clean install
Add the following line to your .xinitrc to start dwm using startx:
exec dwm
In order to connect dwm to a specific display, make sure that the DISPLAY environment variable is set correctly, e.g.:
DISPLAY=foo.bar:1 exec dwm
(This will start dwm on display :1 of the host foo.bar.)
In order to display status info in the bar, you can do something like this in your .xinitrc:
while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
do
sleep 1
done &
exec dwm
The configuration of dwm is done by creating a custom config.h and (re)compiling the source code.