dotfiles/dwm
..
mkconfig
patch
config.h
config.mk
configure
drw.c
drw.h
drw.o
dwm
dwm.1
dwm.c
dwm.o
dwm.png
LICENSE
Makefile
readme.dwm.txt
README.md
transient.c
util.c
util.h
util.o

DWM

DWM is my favorite window manager by far due to its simplicity, portability, and low resource usage. However, it requires a decent amount of tweaking if you want to be able to use it for standard tasks. That's what I've aimed to do here, creating a user-friendly environment and memorable keybinds.

Compiling

Dependencies

X11, Xinerama, xcb, freetype

Instructions

Run ./configure to properly set up config.mk.

Linux

make && sudo make install

FreeBSD, OpenBSD

gmake && doas gmake install

Patches applied

dwmblocks (statuscmd)
dwmblocks (SIGUSR1)
bar layout symbol -- show window layout in status bar
bar status -- show status in bar
bar tag symbols -- show tag symbols in bar
bar window title -- show window title in bar
bar alpha -- semi-transparency on bar
bar hide vacant tags -- hide tags with no windows
attach aside -- add new windows to stack instead of master
cool autostart -- execute commands on start and have processes owned by dwm
dwmc -- use dwmc program to execute dwm commands (for scriptability)
fullscreen -- applies monocle layout on active window and hides bar
moveresize -- resize dwm windows with keybinds
movestack -- allows to move windows in stack and to become master
no transparent borders -- make window borders always solid
scratchpads -- allow for scratchpad terminals
swallow -- hide terminal window when it spawns a window and freezes itself (not working on OpenBSD)
togglefullscreen -- use a keybind to make a window fullscreen or not
vanitygaps -- add gaps between all windows

Software Made to Work With This

Keybinds

All keybinds can be found by running man dwm, but here are the important ones:

  • Super + Enter - Spawn terminal (st)
  • Super + Shift + Enter, F12 - Toggle scratchpad terminal
  • Super + h/l - Shrink/enlarge master window
  • Super + d - dmenu_run (program launcher)
  • Super + q - Kill window
  • Super + b - Toggle status bar
  • Super + f - Toggle fullscreen
  • Super + m - Set window as master
  • Super + o/O - Increase/decrease number of masters
  • Super + j/k - Move focus down/up
  • Super + J/K - Move window in stack down/up
  • Super + E, Super + Q - Kill DWM
  • Super + Space - Set all windows to Floating mode
  • Super + [Arrow] - Move window in direction of arrow pressed
  • Super + Shift + [Arrow] - Expand/shrink window in direction of arrow pressed