#Kris's build of dwm
My build of dwm, now using dwm-flexipatch for easier patch management via preprocessor directives.
#Bindings
The MOD key is set to the Super (Windows) key.
#Essential
| Keybinding |
Action |
MOD+Return |
Spawn terminal (st) |
MOD+d |
Spawn dmenu |
MOD+q |
Kill focused window |
MOD+b |
Toggle bar |
MOD+j/k |
Focus next/previous window |
MOD+h/l |
Decrease/increase master area size |
MOD+Tab |
Switch to last viewed tag |
MOD+1-9 |
View tag 1-9 |
MOD+Shift+1-9 |
Move window to tag 1-9 |
MOD+0 |
View all tags |
MOD+Shift+0 |
Make window sticky to all tags |
#Applications
| Keybinding |
Action |
MOD+w |
Open browser (librewolf) |
MOD+Shift+w |
Open nmtui (network manager) |
MOD+r |
Open lf (file manager) |
MOD+Shift+r |
Open htop |
MOD+n |
Open nvim |
MOD+Shift+n |
Open newsboat |
MOD+m |
Open ncmpcpp (music player) |
MOD+Shift+m |
Toggle mute |
MOD+BackSpace |
System actions menu (sysact) |
MOD+Shift+q |
System actions menu (sysact) |
#Scratchpads
| Keybinding |
Action |
MOD+Shift+Return |
Toggle scratchpad terminal |
MOD+' |
Toggle scratchpad calculator (bc) |
#Window Management
| Keybinding |
Action |
MOD+Shift+j/k |
Move window down/up in stack |
MOD+Shift+Return |
Zoom (swap with master) |
MOD+Shift+Space |
Toggle floating |
MOD+f |
Toggle fullscreen |
MOD+s |
Toggle sticky |
MOD+o |
Increase number of masters |
MOD+Shift+o |
Decrease number of masters |
MOD+Ctrl+e |
Hide window |
MOD+Ctrl+Shift+e |
Restore hidden window |
#Layouts
| Keybinding |
Action |
MOD+t |
Tile layout |
MOD+Shift+t |
Bstack layout |
MOD+y |
Spiral layout |
MOD+Shift+y |
Dwindle layout |
MOD+u |
Deck layout |
MOD+Shift+u |
Monocle layout |
MOD+i |
Centered master layout |
MOD+Shift+i |
Centered floating master |
MOD+Ctrl+g |
Gapless grid |
MOD+Ctrl+Shift+t |
Floating layout |
MOD+Space |
Toggle last layout |
MOD+Ctrl+,/. |
Cycle layouts prev/next |
#Gaps
| Keybinding |
Action |
MOD+a |
Toggle gaps |
MOD+Shift+a |
Reset gaps to default |
MOD+Ctrl+i/d |
Increase/decrease all gaps |
MOD+Shift+i |
Increase inner gaps |
MOD+Ctrl+Shift+i |
Decrease inner gaps |
MOD+Ctrl+o |
Increase outer gaps |
MOD+Ctrl+Shift+o |
Decrease outer gaps |
#Resize (cfact)
| Keybinding |
Action |
MOD+Shift+h |
Increase cfact |
MOD+Shift+l |
Decrease cfact |
MOD+Ctrl+Return |
Reset cfact |
#Multi-Monitor
| Keybinding |
Action |
MOD+,/. |
Focus prev/next monitor |
MOD+Shift+,/. |
Move window to prev/next monitor |
MOD+Left/Right |
Shift view to prev/next tag |
#Border
| Keybinding |
Action |
MOD+Shift+- |
Decrease border size |
MOD+Shift+p |
Increase border size |
#Screenshots
| Keybinding |
Action |
Print |
Full screenshot |
Shift+Print |
Selection screenshot (maimpick) |
MOD+Print |
Record screen (dmenurecord) |
MOD+Shift+Print |
Kill recording |
| Keybinding |
Action |
XF86AudioRaiseVolume |
Volume up |
XF86AudioLowerVolume |
Volume down |
XF86AudioMute |
Toggle mute |
XF86MonBrightnessUp |
Brightness up |
XF86MonBrightnessDown |
Brightness down |
#System
| Keybinding |
Action |
MOD+Ctrl+r |
Restart dwm |
MOD+Ctrl+w |
Toggle tab mode |
#Mouse
| Click |
Action |
MOD+Left Click |
Move or place window |
MOD+Middle Click |
Toggle floating |
MOD+Right Click |
Resize window |
Ctrl+Left Click |
Drag mfact |
Ctrl+Right Click |
Drag cfact |
#Patches and Features
This build uses dwm-flexipatch for patch management. Toggle patches in patches.h:
#define VANITYGAPS_PATCH 1 // enabled
#define SYSTRAY_PATCH 0 // disabled
#Enabled Patches
| Patch |
Description |
| vanitygaps |
Gaps across all layouts with configurable inner/outer gaps |
| swallow |
Terminals swallow windows spawned by child processes |
| scratchpads |
Dropdown terminal and calculator accessible via keybind |
| sticky |
Make windows visible on all tags |
| xresources |
Read colors and config from ~/.Xresources at startup |
| stacker |
Move windows up/down in the stack (focusstack/pushstack) |
| shiftview |
Cycle through tags with arrow keys |
| shifttag |
Move windows to adjacent tags |
| dwmblocks |
Clickable status bar with signal support |
| cfacts |
Resize individual windows in the stack |
| cyclelayouts |
Cycle through layouts with keybind |
| restartsig |
Restart dwm in place without losing windows |
| pertag |
Each tag remembers its own layout settings |
| togglefullscreen |
Toggle fullscreen on focused window |
| cool_autostart |
Run commands on dwm startup (starts dwmblocks) |
#Layouts
- tile, monocle, bstack
- centeredmaster, centeredfloatingmaster
- deck, spiral, dwindle
#Installation
git clone https://github.com/krisyotam/dwm.git
cd dwm
sudo make install
There is also a PKGBUILD usable on distributions with pacman. Run makepkg -si instead of sudo make install.
#Dependencies
# Required for swallow patch
pacman -S libxcb xcb-util
#My Other Suckless Repos
- st - simple terminal (st-flexipatch with sixel)
- dmenu - application launcher (dmenu-flexipatch)
- dwmblocks - modular status bar