Overview
this is a personal configuration and patched build of dwm, st, dmenu, and dwmblocks.
The repository keeps the suckless style: the behavior is changed directly through C headers/source patches, then the programs are rebuilt.
Usage
dwm shortcuts
The main modifier is Super.
Super + d: opendmenu_runSuper + Return: openstSuper + b: toggle the barSuper + j: focus the next windowSuper + k: focus the previous windowSuper + h: decrease the master area sizeSuper + l: increase the master area sizeSuper + i: toggle between one and two master windowsSuper + Return: zoom the focused window into the master areaSuper + Tab: switch back to the previous tag viewSuper + q: close the focused windowSuper + Shift + q: quitdwmSuper + t: use tiled layoutSuper + f: use floating layoutSuper + m: use monocle layoutSuper + Space: cycle layoutSuper + Shift + Space: toggle floating for the focused windowSuper + s: toggle sticky mode for the focused windowSuper + comma: focus the previous monitorSuper + period: focus the next monitorSuper + Shift + comma: move the focused window to the previous monitorSuper + Shift + period: move the focused window to the next monitor
Status and hardware bindings:
Super + n: open the WiFi/Network status menuSuper + p: open the power status menu- volume up/down/mute keys: control PulseAudio volume through
pactl(these are optional) Print: save a full screenshot under$HOME/pics/screenshotControl + Print: select an area and save the screenshotShift + Print: copy a full screenshot to the clipboardControl + Shift + Print: select an area and copy it to the clipboard
Mouse bindings:
- left click the layout symbol: cycle layout
- right click the layout symbol: switch to monocle
- middle click the window title: zoom the focused window
- click the status bar: send the click to
dwmblocks Super + left mouseon a window: move itSuper + middle mouseon a window: toggle floatingSuper + right mouseon a window: resize it- left click a tag: view it
- right click a tag: toggle it
Super + left clicka tag: move the focused window to itSuper + right clicka tag: toggle the focused window on it
st shortcuts
The terminal uses FiraCode Nerd Font and a dark gray / pastel green palette.
Control + Shift + PageUp: increase font sizeControl + Shift + PageDown: decrease font sizeControl + Shift + Home: reset font sizeControl + Shift + c: copy selectionControl + Shift + v: paste from clipboardControl + Shift + y: paste selectionShift + Insert: paste selectionShift + PageUp: scroll upShift + PageDown: scroll down- mouse wheel: scroll through terminal history
Shift + mouse wheel: send terminal page-up/page-down escape sequences
dmenu
dmenu is configured as a centered launcher instead of the default thin top bar.
- centered window
- 960px configured width
- 720px configured height
- 2px pastel green border
- 21 visible lines
- 3 grid columns
- FiraCode Nerd Font
- dark gray normal background with pastel green selection
dwmblocks
The status bar is built from four blocks:
- WiFi status, interval
0, signal1 - disk usage for
/, refreshed every 60 seconds, signal6 - power status, interval
0, signal2 - clock, interval
0, signal7
The WiFi and power blocks are click-aware. They receive click data from dwm, then use that to open small menus/actions near the clicked status block.
Patches and custom additions
dwm
- alpha/bar-alpha support for transparent or alpha-aware bar drawing
- status2d-style status rendering with inline color/control sequences
- statuscmd-style click handling for sending mouse clicks to
dwmblocks - sticky-window support through
Super + s - a custom
tilewidelayout using the[][]=symbol - a custom
togglenmasterhelper that switches between one and two master windows - bar padding values for tag/status spacing
- rules for Gimp, Firefox, and Discord
- screenshot bindings using
maimandxclip - volume bindings using
pactl
st
- alpha support with
alpha = 0.8 - scrollback support through keyboard and mouse bindings
- anysize-style terminal alignment so spare pixels can be centered instead of forced to one side
- Harfbuzz integration for better glyph shaping and ligatures
- graphics/image support, including image placeholders, image cache limits, and redraw support
- pastel terminal palette matching the desktop theme
- clipboard and selection shortcuts
- Shift-based mouse behavior for terminal applications that capture the mouse
dmenu
- centered-window support
- configurable menu width and height
- border support with a pastel green border
- grid display support through multiple columns
- fixed FiraCode Nerd Font configuration
- matching dark gray and pastel green palette
dwmblocks
- WiFi, disk, power, and clock blocks
- realtime signal updates
- click handling with button and x-position forwarding from
dwm - WiFi and power scripts that can show menus/actions instead of only printing static text
Installation
The repository includes an install script that builds and installs dmenu, dwm, dwmblocks, and st.
Visit the repository for source and setup instructions.