dwm

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

commit 99a17f8a00f1d4c2de62b1115db338207ddce547
parent e64b111f423792400cc70d9ff13b4938a6cadfa2
Author: Kris Yotam <krisyotam@protonmail.com>
Date:   Sun, 15 Feb 2026 04:23:55 -0600

Rebind application keys to dmenu scripts and add reading mode layout

Applications: dlaunch, dbrowse, dwrite, dread, dnotes, dedit, dcreate,
passmenu, dtime, btop, dclip. Fullscreen moved to Mod+Shift+f.
Reading mode layout (RRR) uses 3 equal vertical panes via flextile.

Diffstat:
MREADME.md | 32+++++++++++++++++---------------
Mconfig.def.h | 41+++++++++++++++++++++++------------------
2 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/README.md b/README.md @@ -13,9 +13,8 @@ The MOD key is set to the Super (Windows) key. | Keybinding | Action | |------------|--------| | `MOD+Return` | Spawn terminal (st) | -| `MOD+d` | Spawn dmenu | +| `MOD+d` | App launcher (dlaunch) | | `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 | @@ -28,13 +27,17 @@ The MOD key is set to the Super (Windows) key. | 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+b` | Browser selector (dbrowse) | +| `MOD+w` | Content writer (dwrite) | +| `MOD+r` | Library browser (dread) | +| `MOD+n` | Notes browser (dnotes) | +| `MOD+e` | Metadata editor (dedit) | +| `MOD+c` | Content creator (dcreate) | +| `MOD+p` | Password manager (passmenu) | +| `MOD+y` | World clock (dtime) | +| `MOD+m` | System monitor (btop) | +| `MOD+Shift+c` | Clipboard manager (dclip) | +| `MOD+Shift+n` | RSS reader (newsboat) | | `MOD+Shift+m` | Toggle mute | | `MOD+BackSpace` | System actions menu (sysact) | | `MOD+Shift+q` | System actions menu (sysact) | @@ -51,9 +54,8 @@ The MOD key is set to the Super (Windows) key. | 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+Shift+f` | Toggle fullscreen | | `MOD+s` | Toggle sticky | | `MOD+o` | Increase number of masters | | `MOD+Shift+o` | Decrease number of masters | @@ -65,15 +67,14 @@ The MOD key is set to the Super (Windows) key. | Keybinding | Action | |------------|--------| | `MOD+t` | Tile layout | +| `MOD+f` | Floating layout | +| `MOD+Shift+r` | Reading mode (3 vertical panes) | | `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 | @@ -181,9 +182,10 @@ This build uses **dwm-flexipatch** for patch management. Toggle patches in `patc ### Layouts -- tile, monocle, bstack +- tile, floating, monocle, bstack - centeredmaster, centeredfloatingmaster - deck, spiral, dwindle +- reading mode (3 equal vertical panes) --- diff --git a/config.def.h b/config.def.h @@ -175,9 +175,9 @@ static void (*bartabmonfns[])(Monitor *) = { NULL /* , customlayoutfn */ }; #if BAR_PANGO_PATCH static const char font[] = "monospace 10"; #else -static const char *fonts[] = { "monospace:size=11", "NotoColorEmoji:pixelsize=16:antialias=true:autohint=true" }; +static const char *fonts[] = { "JetBrainsMono Nerd Font:size=11", "Symbols Nerd Font:pixelsize=16:antialias=true:autohint=true" }; #endif // BAR_PANGO_PATCH -static const char dmenufont[] = "monospace:size=10"; +static const char dmenufont[] = "JetBrainsMono Nerd Font:size=10"; static char c000000[] = "#000000"; // placeholder value @@ -724,6 +724,7 @@ static const Layout layouts[] = { { "[\\]", flextile, { -1, -1, NO_SPLIT, DWINDLE, DWINDLE, 0, NULL } }, // fibonacci dwindle { "(@)", flextile, { -1, -1, NO_SPLIT, SPIRAL, SPIRAL, 0, NULL } }, // fibonacci spiral { "[T]", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TATAMI, 0, NULL } }, // tatami mats + { "RRR", flextile, { 3, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // reading mode #if TILE_LAYOUT { "[]=", tile, {0} }, #endif @@ -825,7 +826,7 @@ static const char *xkb_layouts[] = { #endif // XKB_PATCH /* key definitions */ -#define MODKEY Mod1Mask +#define MODKEY Mod4Mask #if COMBO_PATCH && SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH #define TAGKEYS(KEY,TAG) \ { MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \ @@ -1072,15 +1073,19 @@ static const Key keys[] = { { MODKEY|ShiftMask, XK_Print, spawn, {.v = (const char*[]){ "dmenurecord", "kill", NULL } } }, /* Applications */ - { MODKEY, XK_d, spawn, {.v = dmenucmd } }, + { MODKEY, XK_d, spawn, {.v = (const char*[]){ "dlaunch", NULL } } }, { MODKEY, XK_Return, spawn, {.v = termcmd } }, - { MODKEY, XK_w, spawn, {.v = (const char*[]){ MYBROWSER, NULL } } }, - { MODKEY|ShiftMask, XK_w, spawn, {.v = (const char*[]){ MYTERM, "-e", "nmtui", NULL } } }, - { MODKEY, XK_r, spawn, {.v = (const char*[]){ MYTERM, "-e", "lf", NULL } } }, - { MODKEY|ShiftMask, XK_r, spawn, {.v = (const char*[]){ MYTERM, "-e", "htop", NULL } } }, - { MODKEY, XK_n, spawn, {.v = (const char*[]){ MYTERM, "-e", "nvim", NULL } } }, + { MODKEY, XK_b, spawn, {.v = (const char*[]){ "dbrowse", NULL } } }, + { MODKEY, XK_w, spawn, {.v = (const char*[]){ "dwrite", NULL } } }, + { MODKEY, XK_r, spawn, {.v = (const char*[]){ "dread", NULL } } }, + { MODKEY, XK_n, spawn, {.v = (const char*[]){ "dnotes", NULL } } }, + { MODKEY, XK_e, spawn, {.v = (const char*[]){ "dedit", NULL } } }, + { MODKEY, XK_c, spawn, {.v = (const char*[]){ "dcreate", NULL } } }, + { MODKEY, XK_p, spawn, {.v = (const char*[]){ "passmenu", NULL } } }, + { MODKEY, XK_y, spawn, {.v = (const char*[]){ "dtime", NULL } } }, + { MODKEY, XK_m, spawn, {.v = (const char*[]){ MYTERM, "-e", "btop", NULL } } }, + { MODKEY|ShiftMask, XK_c, spawn, {.v = (const char*[]){ "dclip", NULL } } }, { MODKEY|ShiftMask, XK_n, spawn, SHCMD("st -e newsboat; pkill -RTMIN+6 dwmblocks") }, - { MODKEY, XK_m, spawn, {.v = (const char*[]){ MYTERM, "-e", "ncmpcpp", NULL } } }, { MODKEY|ShiftMask, XK_m, spawn, SHCMD("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle; kill -44 $(pidof dwmblocks)") }, /* System */ @@ -1091,14 +1096,14 @@ static const Key keys[] = { #if KEYMODES_PATCH { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, #endif // KEYMODES_PATCH - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + /* { MODKEY, XK_p, spawn, {.v = dmenucmd } }, // removed: moved to Super+d via dlaunch */ { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, #if RIODRAW_PATCH { MODKEY|ControlMask, XK_p, riospawnsync, {.v = dmenucmd } }, { MODKEY|ControlMask, XK_Return, riospawn, {.v = termcmd } }, { MODKEY, XK_s, rioresize, {0} }, #endif // RIODRAW_PATCH - { MODKEY, XK_b, togglebar, {0} }, + /* { MODKEY, XK_b, togglebar, {0} }, // removed: Super+b now dbrowse */ #if TOGGLETOPBAR_PATCH { MODKEY|ShiftMask, XK_b, toggletopbar, {0} }, #endif // TOGGLETOPBAR_PATCH @@ -1148,7 +1153,7 @@ static const Key keys[] = { { MODKEY|ControlMask, XK_k, pushup, {0} }, #endif // PUSH_PATCH / PUSH_NO_MASTER_PATCH { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, + /* { MODKEY, XK_d, incnmaster, {.i = -1 } }, // removed: Super+d now dlaunch */ #if FLEXTILE_DELUXE_LAYOUT { MODKEY|ControlMask, XK_i, incnstack, {.i = +1 } }, { MODKEY|ControlMask, XK_u, incnstack, {.i = -1 } }, @@ -1245,7 +1250,7 @@ static const Key keys[] = { { MODKEY|ControlMask, XK_z, showhideclient, {0} }, { MODKEY|ControlMask, XK_s, unhideall, {0} }, #endif // BAR_WINTITLEACTIONS_PATCH - { MODKEY|ShiftMask, XK_c, killclient, {0} }, + /* { MODKEY|ShiftMask, XK_c, killclient, {0} }, // removed: Super+Shift+c now dclip, kill via Super+q */ #if KILLUNSEL_PATCH { MODKEY|ShiftMask, XK_x, killunsel, {0} }, #endif // KILLUNSEL_PATCH @@ -1270,9 +1275,9 @@ static const Key keys[] = { #endif // XRDB_PATCH | XRESOURCES_PATCH { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY|ShiftMask, XK_r, setlayout, {.v = &layouts[14]} }, // reading mode #if COLUMNS_LAYOUT - { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, + /* { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, // removed: Super+c now dcreate */ #endif // COLUMNS_LAYOUT #if FLEXTILE_DELUXE_LAYOUT { MODKEY|ControlMask, XK_t, rotatelayoutaxis, {.i = +1 } }, /* flextile, 1 = layout axis */ @@ -1314,10 +1319,10 @@ static const Key keys[] = { { MODKEY|ShiftMask, XK_t, unfloatvisible, {.v = &layouts[0]} }, #endif // UNFLOATVISIBLE_PATCH #if TOGGLEFULLSCREEN_PATCH - { MODKEY, XK_y, togglefullscreen, {0} }, + /* { MODKEY, XK_y, togglefullscreen, {0} }, // removed: Super+y now dtime */ #endif // TOGGLEFULLSCREEN_PATCH #if !FAKEFULLSCREEN_PATCH && FAKEFULLSCREEN_CLIENT_PATCH - { MODKEY|ShiftMask, XK_y, togglefakefullscreen, {0} }, + /* { MODKEY|ShiftMask, XK_y, togglefakefullscreen, {0} }, // removed: freed */ #endif // FAKEFULLSCREEN_CLIENT_PATCH #if FULLSCREEN_PATCH { MODKEY|ShiftMask, XK_f, fullscreen, {0} },