dotfiles/dwm
2025-08-07 18:17:23 +03:30
..
mkconfig suicide 2025-07-29 04:42:29 +03:30
patch suicide 2025-07-29 04:42:29 +03:30
config.h suicide 2025-08-07 18:17:23 +03:30
config.mk suicide 2025-07-29 04:42:29 +03:30
configure suicide 2025-07-29 04:42:29 +03:30
drw.c suicide 2025-07-29 04:42:29 +03:30
drw.h suicide 2025-07-29 04:42:29 +03:30
drw.o suicide 2025-08-07 18:17:23 +03:30
dwm suicide 2025-08-07 18:17:23 +03:30
dwm.1 suicide 2025-07-29 04:42:29 +03:30
dwm.c suicide 2025-07-29 04:42:29 +03:30
dwm.o suicide 2025-08-07 18:17:23 +03:30
dwm.png suicide 2025-07-29 04:42:29 +03:30
LICENSE suicide 2025-07-29 04:42:29 +03:30
Makefile suicide 2025-07-29 04:42:29 +03:30
readme.dwm.txt suicide 2025-07-29 04:42:29 +03:30
README.md suicide 2025-07-29 04:42:29 +03:30
transient.c suicide 2025-07-29 04:42:29 +03:30
util.c suicide 2025-07-29 04:42:29 +03:30
util.h suicide 2025-07-29 04:42:29 +03:30
util.o suicide 2025-08-07 18:17:23 +03:30

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