dwm

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 817b9a60d284bd45efe0718a158d2b2bedb2d730
parent 26637622336cbac06fcc9c8ce4ec514210514021
Author: Kris Yotam <krisyotam@protonmail.com>
Date:   Fri, 13 Feb 2026 15:09:38 -0600

Restore original README style with flexipatch updates

Diffstat:
MREADME.md | 237+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 191 insertions(+), 46 deletions(-)

diff --git a/README.md b/README.md @@ -1,68 +1,213 @@ -# dwm-flexipatch +# Kris's build of dwm -My personal build of dwm using [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch). This uses preprocessor directives to decide whether or not to include a patch during build time, making patch management clean and maintainable. +My build of dwm, now using [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) for easier patch management via preprocessor directives. -## Configuration +--- -All patch toggles are in `patches.h`. To enable or disable a patch, change the value from 0 to 1 (or vice versa): +## 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 | + +### Media Keys + +| 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`: ```c -#define VANITYGAPS_PATCH 1 // Enabled -#define SYSTRAY_PATCH 0 // Disabled +#define VANITYGAPS_PATCH 1 // enabled +#define SYSTRAY_PATCH 0 // disabled ``` -## Enabled Patches - -### Functionality -- **BAR_DWMBLOCKS_PATCH** - Clickable status bar integration with dwmblocks -- **COOL_AUTOSTART_PATCH** - Run commands on dwm startup (starts dwmblocks) -- **CYCLELAYOUTS_PATCH** - Cycle through all layouts -- **PERTAG_PATCH** - Per-tag layouts, nmaster, and mfact -- **RESTARTSIG_PATCH** - Restart dwm in place with kill -HUP -- **SCRATCHPADS_PATCH** - Multiple scratchpad windows (spterm, spcalc) -- **SHIFTVIEW_PATCH** - Circular shift through tags -- **SHIFTTAG_PATCH** - Move clients to adjacent tags -- **STACKER_PATCH** - Comprehensive stack management (focusstack/pushstack) -- **STICKY_PATCH** - Make windows visible on all tags -- **SWALLOW_PATCH** - Terminal window swallowing -- **TOGGLEFULLSCREEN_PATCH** - Toggle fullscreen with single key -- **VANITYGAPS_PATCH** - Configurable inner/outer gaps -- **XRESOURCES_PATCH** - Load colors and settings from Xresources -- **CFACTS_PATCH** - Resize clients in stack with different weights +### 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_LAYOUT** - Default master/stack -- **MONOCLE_LAYOUT** - Single window fullscreen -- **BSTACK_LAYOUT** - Master on top, stack below -- **CENTEREDMASTER_LAYOUT** - Master centered -- **CENTEREDFLOATINGMASTER_LAYOUT** - Floating centered master -- **DECK_LAYOUT** - Stack as monocle -- **FIBONACCI_SPIRAL_LAYOUT** - Spiral arrangement -- **FIBONACCI_DWINDLE_LAYOUT** - Dwindle arrangement -## Custom Settings +- tile, monocle, bstack +- centeredmaster, centeredfloatingmaster +- deck, spiral, dwindle -- **Border:** 3px, red selection (#770000) -- **Gaps:** 20h/10v inner, 10h/30v outer -- **Font:** monospace:size=11 + NotoColorEmoji -- **Autostart:** dwmblocks -- **Scratchpads:** spterm (terminal), spcalc (bc calculator) +--- -## Dependencies +## Installation ```bash -# Required for swallow patch -pacman -S libxcb xcb-util +git clone https://github.com/krisyotam/dwm.git +cd dwm +sudo make install ``` -## Installation +There is also a `PKGBUILD` usable on distributions with pacman. Run `makepkg -si` instead of `sudo make install`. + +### Dependencies ```bash -make clean install +# Required for swallow patch +pacman -S libxcb xcb-util ``` +--- + ## My Other Suckless Repos -- [st](https://github.com/krisyotam/st) - Simple Terminal (st-flexipatch with sixel) -- [dmenu](https://github.com/krisyotam/dmenu) - Dynamic Menu (dmenu-flexipatch) -- [dwmblocks](https://github.com/krisyotam/dwmblocks) - Status bar blocks +- [st](https://github.com/krisyotam/st) - simple terminal (st-flexipatch with sixel) +- [dmenu](https://github.com/krisyotam/dmenu) - application launcher (dmenu-flexipatch) +- [dwmblocks](https://github.com/krisyotam/dwmblocks) - modular status bar