diff --git a/x11-terms/st/files/odrling.patch b/x11-terms/st/files/odrling.patch index 8ab7681..0d082eb 100644 --- a/x11-terms/st/files/odrling.patch +++ b/x11-terms/st/files/odrling.patch @@ -1,714 +1,1459 @@ -From 51640b3d139b1b510dd02de3f3e32a20ab98c730 Mon Sep 17 00:00:00 2001 +From f1c3454bef1369d6cf5fa1988f1549025c91dccb Mon Sep 17 00:00:00 2001 From: odrling -Date: Sun, 7 Mar 2021 16:12:13 +0100 -Subject: [PATCH 01/15] move config to st-flexipatch +Date: Sat, 27 Mar 2021 18:56:05 +0100 +Subject: [PATCH 01/28] set up my patches and config --- - config.def.h | 59 +++++++++++++++++++++++---------------------------- - patches.def.h | 14 ++++++------ - 2 files changed, 34 insertions(+), 39 deletions(-) + config.def.h | 120 +++++++++++++++++++++++++++++--------------------- + patches.def.h | 50 ++++++++++----------- + 2 files changed, 95 insertions(+), 75 deletions(-) diff --git a/config.def.h b/config.def.h -index 02fa4ca..9ee9c38 100644 +index 1b06f0d..e7dd706 100644 --- a/config.def.h +++ b/config.def.h -@@ -5,7 +5,7 @@ - * - * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html - */ --static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; -+static char *font = "monospace:pixelsize=14:antialias=true:autohint=true"; - #if FONT2_PATCH - /* Spare fonts */ - static char *font2[] = { -@@ -116,11 +116,11 @@ static unsigned int cursorthickness = 2; - * Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored. - * 0: disable (render all U25XX glyphs normally from the font). - */ --const int boxdraw = 0; -+const int boxdraw = 1; - const int boxdraw_bold = 0; - - /* braille (U28XX): 1: render as adjacent "pixels", 0: use font */ --const int boxdraw_braille = 0; -+const int boxdraw_braille = 1; - #endif // BOXDRAW_PATCH - - /* -@@ -164,32 +164,32 @@ float alphaUnfocused = 0.6; - /* Terminal colors (16 first used in escape sequence) */ - static const char *colorname[] = { - /* 8 normal colors */ -- "black", -- "red3", -- "green3", -- "yellow3", -- "blue2", -- "magenta3", -- "cyan3", -- "gray90", -+ "#403E41", -+ "#FF6188", -+ "#A9DC76", -+ "#FFD876", -+ "#FC9867", -+ "#AB9DF2", -+ "#78DCE8", -+ "#FCFCFA", - - /* 8 bright colors */ -- "gray50", -- "red", -- "green", -- "yellow", -- "#5c5cff", -- "magenta", -- "cyan", -- "white", -+ "#727072", -+ "#FF6188", -+ "#A9DC76", -+ "#FFD866", -+ "#FC9867", -+ "#AB9DF2", -+ "#78DCE8", -+ "#FCFCFA", - - [255] = 0, - - /* more colors can be added after 255 to use with DefaultXX */ -- "#add8e6", /* 256 -> cursor */ -- "#555555", /* 257 -> rev cursor*/ -- "#000000", /* 258 -> bg */ -- "#e5e5e5", /* 259 -> fg */ -+ "#cccccc", -+ "#555555", -+ "black", -+ "#222222" - }; - - -@@ -197,13 +197,8 @@ static const char *colorname[] = { - * Default colors (colorname index) - * foreground, background, cursor, reverse cursor - */ --#if ALPHA_PATCH && ALPHA_FOCUS_HIGHLIGHT_PATCH --unsigned int defaultbg = 0; --unsigned int bg = 17, bgUnfocused = 16; --#else --unsigned int defaultbg = 258; --#endif // ALPHA_FOCUS_HIGHLIGHT_PATCH --unsigned int defaultfg = 259; -+unsigned int defaultfg = 7; -+unsigned int defaultbg = 259; - unsigned int defaultcs = 256; - unsigned int defaultrcs = 257; - -@@ -239,7 +234,7 @@ Glyph style[] = {{' ',ATTR_ITALIC|ATTR_FAINT,15,16}, {' ',ATTR_ITALIC,232,11}, - * 7: Blinking st cursor - * 8: Steady st cursor - */ --static unsigned int cursorstyle = 1; -+static unsigned int cursorstyle = 4; - static Rune stcursor = 0x2603; /* snowman (U+2603) */ +@@ -144,11 +144,11 @@ static void (*bartabmonfns[])(Monitor *) = { NULL /* , customlayoutfn */ }; + #endif // MONOCLE_LAYOUT + #endif // BAR_TABGROUPS_PATCH + #if BAR_PANGO_PATCH +-static const char font[] = "monospace 10"; ++static const char font[] = "sans 12"; #else - /* -@@ -249,7 +244,7 @@ static Rune stcursor = 0x2603; /* snowman (U+2603) */ - * 6: Bar ("|") - * 7: Snowman ("☃") - */ --static unsigned int cursorshape = 2; -+static unsigned int cursorshape = 4; - #endif // BLINKING_CURSOR_PATCH +-static const char *fonts[] = { "monospace:size=10" }; ++static const char *fonts[] = { "sans:size=12" }; + #endif // BAR_PANGO_PATCH +-static const char dmenufont[] = "monospace:size=10"; ++static const char dmenufont[] = "sans:size=12"; - /* -diff --git a/patches.def.h b/patches.def.h -index 26ae7e6..2e79d14 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -32,7 +32,7 @@ - /* This patch allows st to resize to any pixel size rather than snapping to character width/height. - * https://st.suckless.org/patches/anysize/ - */ --#define ANYSIZE_PATCH 0 -+#define ANYSIZE_PATCH 1 + static char c000000[] = "#000000"; // placeholder value - /* A simple variant of the anysize patch that only changes the resize hints to allow the window to - * be resized to any size. -@@ -68,7 +68,7 @@ - /* This patch adds custom rendering of lines/blocks/braille characters for gapless alignment. - * https://st.suckless.org/patches/boxdraw/ - */ --#define BOXDRAW_PATCH 0 -+#define BOXDRAW_PATCH 1 +@@ -158,9 +158,9 @@ static char normbordercolor[] = "#444444"; + static char normfloatcolor[] = "#db8fd9"; - /* By default st only sets PRIMARY on selection. - * This patch makes st set CLIPBOARD on selection. -@@ -141,7 +141,7 @@ - /* This patch makes the cursor color the inverse of the current cell color. - * https://st.suckless.org/patches/dynamic-cursor-color/ - */ --#define DYNAMIC_CURSOR_COLOR_PATCH 0 -+#define DYNAMIC_CURSOR_COLOR_PATCH 1 + static char selfgcolor[] = "#eeeeee"; +-static char selbgcolor[] = "#005577"; +-static char selbordercolor[] = "#005577"; +-static char selfloatcolor[] = "#005577"; ++static char selbgcolor[] = "#9966cc"; ++static char selbordercolor[] = "#9966cc"; ++static char selfloatcolor[] = "#9966cc"; - /* Reading and writing st's screen through a pipe, e.g. pass info to dmenu. - * https://st.suckless.org/patches/externalpipe/ -@@ -272,7 +272,7 @@ - /* Scroll back through terminal output using Shift+{PageUp, PageDown}. - * https://st.suckless.org/patches/scrollback/ - */ --#define SCROLLBACK_PATCH 0 -+#define SCROLLBACK_PATCH 1 + static char titlenormfgcolor[] = "#bbbbbb"; + static char titlenormbgcolor[] = "#222222"; +@@ -168,9 +168,9 @@ static char titlenormbordercolor[] = "#444444"; + static char titlenormfloatcolor[] = "#db8fd9"; - /* Scroll back through terminal output using Shift+MouseWheel. - * This variant depends on SCROLLBACK_PATCH being enabled. -@@ -390,7 +390,7 @@ - /* Vertically center lines in the space available if you have set a larger chscale in config.h - * https://st.suckless.org/patches/vertcenter/ - */ --#define VERTCENTER_PATCH 0 -+#define VERTCENTER_PATCH 1 + static char titleselfgcolor[] = "#eeeeee"; +-static char titleselbgcolor[] = "#005577"; +-static char titleselbordercolor[] = "#005577"; +-static char titleselfloatcolor[] = "#005577"; ++static char titleselbgcolor[] = "#9966cc"; ++static char titleselbordercolor[] = "#9966cc"; ++static char titleselfloatcolor[] = "#9966cc"; - /* The vim-browse patch offers the possibility to move through the terminal history-buffer, - * search for strings using VIM-like motions, operations and quantifiers. It overlays the -@@ -410,14 +410,14 @@ - /* Adds support for w3m images. - * https://st.suckless.org/patches/w3m/ - */ --#define W3M_PATCH 0 -+#define W3M_PATCH 1 + static char tagsnormfgcolor[] = "#bbbbbb"; + static char tagsnormbgcolor[] = "#222222"; +@@ -178,14 +178,14 @@ static char tagsnormbordercolor[] = "#444444"; + static char tagsnormfloatcolor[] = "#db8fd9"; - /* Adds proper glyphs rendering in st allowing wide glyphs to be drawn as-is as opposed to - * smaller or cut glyphs being rendered. - * https://github.com/Dreomite/st/commit/e3b821dcb3511d60341dec35ee05a4a0abfef7f2 - * https://www.reddit.com/r/suckless/comments/jt90ai/update_support_for_proper_glyph_rendering_in_st/ - */ --#define WIDE_GLYPHS_PATCH 0 -+#define WIDE_GLYPHS_PATCH 1 + static char tagsselfgcolor[] = "#eeeeee"; +-static char tagsselbgcolor[] = "#005577"; +-static char tagsselbordercolor[] = "#005577"; +-static char tagsselfloatcolor[] = "#005577"; ++static char tagsselbgcolor[] = "#9966cc"; ++static char tagsselbordercolor[] = "#9966cc"; ++static char tagsselfloatcolor[] = "#9966cc"; - /* There is a known issue that Google's Variable Fonts (VF) can end up with letter spacing - * that is too wide in programs that use Xft, for example Inconsolata v3.000. --- -2.37.3 - - -From 3c0df29f0282406a3cabd06d08a225ba2672832d Mon Sep 17 00:00:00 2001 -From: odrling -Date: Thu, 25 Mar 2021 17:47:16 +0100 -Subject: [PATCH 02/15] disable dynamic colors - ---- - patches.def.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/patches.def.h b/patches.def.h -index 2e79d14..3457532 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -141,7 +141,7 @@ - /* This patch makes the cursor color the inverse of the current cell color. - * https://st.suckless.org/patches/dynamic-cursor-color/ - */ --#define DYNAMIC_CURSOR_COLOR_PATCH 1 -+#define DYNAMIC_CURSOR_COLOR_PATCH 0 +-static char hidnormfgcolor[] = "#005577"; +-static char hidselfgcolor[] = "#227799"; +-static char hidnormbgcolor[] = "#222222"; +-static char hidselbgcolor[] = "#222222"; ++static char hidnormfgcolor[] = "#9966cc"; ++static char hidselfgcolor[] = "#222222"; ++static char hidnormbgcolor[] = "#9966cc"; ++static char hidselbgcolor[] = "#f76e0c"; - /* Reading and writing st's screen through a pipe, e.g. pass info to dmenu. - * https://st.suckless.org/patches/externalpipe/ --- -2.37.3 - - -From 4101750fce7178e8f280269a96eb11b20cf39a5c Mon Sep 17 00:00:00 2001 -From: odrling -Date: Thu, 26 May 2022 22:43:52 +0200 -Subject: [PATCH 03/15] update color theme - ---- - config.def.h | 46 +++++++++++++++++++++++++--------------------- - 1 file changed, 25 insertions(+), 21 deletions(-) - -diff --git a/config.def.h b/config.def.h -index 9ee9c38..e43f2ab 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -164,32 +164,36 @@ float alphaUnfocused = 0.6; - /* Terminal colors (16 first used in escape sequence) */ - static const char *colorname[] = { - /* 8 normal colors */ -- "#403E41", -- "#FF6188", -- "#A9DC76", -- "#FFD876", -- "#FC9867", -- "#AB9DF2", -- "#78DCE8", -- "#FCFCFA", -+ "#24292e", -+ "#d73a49", -+ "#28a745", -+ "#dbab09", -+ "#0366d6", -+ "#5a32a3", -+ "#0598bc", -+ "#6a737d", + static char urgfgcolor[] = "#bbbbbb"; + static char urgbgcolor[] = "#222222"; +@@ -385,7 +385,7 @@ static const char *layoutmenu_cmd = "layoutmenu.sh"; - /* 8 bright colors */ -- "#727072", -- "#FF6188", -- "#A9DC76", -- "#FFD866", -- "#FC9867", -- "#AB9DF2", -- "#78DCE8", -- "#FCFCFA", -+ "#959da5", -+ "#cb2431", -+ "#22863a", -+ "#b08800", -+ "#005cc5", -+ "#5a32a3", -+ "#3192aa", -+ "#d1d5da", -+ -+ /* extra */ -+ "#d18616", -+ "#cb2431", + #if COOL_AUTOSTART_PATCH + static const char *const autostart[] = { +- "st", NULL, ++ "dwmblocks", NULL, + NULL /* terminate */ + }; + #endif // COOL_AUTOSTART_PATCH +@@ -481,11 +481,10 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "UTILITY", .isfloating = 1) + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) +- RULE(.class = "Gimp", .tags = 1 << 4) +- RULE(.class = "Firefox", .tags = 1 << 7) +- #if RENAMED_SCRATCHPADS_PATCH +- RULE(.instance = "spterm", .scratchkey = 's', .isfloating = 1) +- #elif SCRATCHPADS_PATCH ++ RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 2) ++ RULE(.class = "Ardour", .tags = 1 << 8) ++ RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) ++ #if SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) + #endif // SCRATCHPADS_PATCH + }; +@@ -639,13 +638,13 @@ static const int scrollargs[][2] = { + static const Layout layouts[] = { + /* symbol arrange function, { nmaster, nstack, layout, master axis, stack axis, secondary stack axis, symbol func } */ + { "[]=", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, TOP_TO_BOTTOM, 0, NULL } }, // default tile layout +- { "><>", NULL, {0} }, /* no layout function means floating behavior */ + { "[M]", flextile, { -1, -1, NO_SPLIT, MONOCLE, MONOCLE, 0, NULL } }, // monocle +- { "|||", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // columns (col) layout +- { ">M>", flextile, { -1, -1, FLOATING_MASTER, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // floating master +- { "[D]", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, MONOCLE, 0, NULL } }, // deck + { "TTT", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // bstack +- { "===", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // bstackhoriz ++ // { "><>", NULL, {0} }, /* no layout function means floating behavior */ ++ // { "|||", flextile, { -1, -1, SPLIT_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // columns (col) layout ++ // { ">M>", flextile, { -1, -1, FLOATING_MASTER, LEFT_TO_RIGHT, LEFT_TO_RIGHT, 0, NULL } }, // floating master ++ { "[D]", flextile, { -1, -1, SPLIT_VERTICAL, TOP_TO_BOTTOM, MONOCLE, 0, NULL } }, // deck ++ // { "===", flextile, { -1, -1, SPLIT_HORIZONTAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, 0, NULL } }, // bstackhoriz + { "|M|", flextile, { -1, -1, SPLIT_CENTERED_VERTICAL, LEFT_TO_RIGHT, TOP_TO_BOTTOM, TOP_TO_BOTTOM, NULL } }, // centeredmaster + { "-M-", flextile, { -1, -1, SPLIT_CENTERED_HORIZONTAL, TOP_TO_BOTTOM, LEFT_TO_RIGHT, LEFT_TO_RIGHT, NULL } }, // centeredmaster horiz + { ":::", flextile, { -1, -1, NO_SPLIT, GAPPLESSGRID, GAPPLESSGRID, 0, NULL } }, // gappless grid +@@ -704,7 +703,7 @@ static const Layout layouts[] = { + #if TILE_LAYOUT + { "[]=", tile }, /* first entry is default */ + #endif +- { "><>", NULL }, /* no layout function means floating behavior */ ++ // { "><>", NULL }, /* no layout function means floating behavior */ + #if MONOCLE_LAYOUT + { "[M]", monocle }, + #endif +@@ -759,7 +758,7 @@ static const char *xkb_layouts[] = { + #endif // XKB_PATCH - [255] = 0, + /* 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} }, \ +@@ -854,6 +853,10 @@ static const char *dmenucmd[] = { + NULL + }; + static const char *termcmd[] = { "st", NULL }; ++static const char *passmenucmd[] = { "passmenu", "-m", dmenumon, NULL }; ++static const char *webmenucmd[] = { "webmenu", "-m", dmenumon, NULL }; ++static const char *screenshot[] = { "screenshot", NULL }; ++static const char *screenshots[] = { "screenshot", "-s", "-l", "-c", "0.75,0.5,1.0,0.1", NULL }; - /* more colors can be added after 255 to use with DefaultXX */ - "#cccccc", -- "#555555", -+ "#333333", - "black", -- "#222222" -+ "#ffffff" + #if BAR_STATUSCMD_PATCH + #if BAR_DWMBLOCKS_PATCH +@@ -884,7 +887,7 @@ static const Key keys[] = { + #if KEYMODES_PATCH + { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, + #endif // KEYMODES_PATCH +- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, ++ { MODKEY, XK_o, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + #if RIODRAW_PATCH + { MODKEY|ControlMask, XK_p, riospawnsync, {.v = dmenucmd } }, +@@ -1024,14 +1027,14 @@ static const Key keys[] = { + #if BAR_WINTITLEACTIONS_PATCH + { MODKEY|ControlMask, XK_z, showhideclient, {0} }, + #endif // BAR_WINTITLEACTIONS_PATCH +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, ++ { MODKEY, XK_q, killclient, {0} }, + #if KILLUNSEL_PATCH + { MODKEY|ShiftMask, XK_x, killunsel, {0} }, + #endif // KILLUNSEL_PATCH + #if SELFRESTART_PATCH + { MODKEY|ShiftMask, XK_r, self_restart, {0} }, + #endif // SELFRESTART_PATCH +- { MODKEY|ShiftMask, XK_q, quit, {0} }, ++ // { MODKEY|ShiftMask, XK_q, quit, {0} }, + #if RESTARTSIG_PATCH + { MODKEY|ControlMask|ShiftMask, XK_q, quit, {1} }, + #endif // RESTARTSIG_PATCH +@@ -1047,9 +1050,9 @@ static const Key keys[] = { + #if XRDB_PATCH && !BAR_VTCOLORS_PATCH + { MODKEY|ShiftMask, XK_F5, xrdb, {.v = NULL } }, + #endif // XRDB_PATCH +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, ++ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, // tile ++ { MODKEY, XK_u, setlayout, {.v = &layouts[1]} }, // monocle ++ { MODKEY, XK_y, setlayout, {.v = &layouts[2]} }, // bstack + #if COLUMNS_LAYOUT + { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, + #endif // COLUMNS_LAYOUT +@@ -1112,10 +1115,10 @@ static const Key keys[] = { + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + #endif // SCRATCHPAD_ALT_1_PATCH +- { MODKEY, XK_comma, focusmon, {.i = -1 } }, +- { MODKEY, XK_period, focusmon, {.i = +1 } }, +- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, +- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, ++ { MODKEY|ControlMask, XK_j, focusmon, {.i = -1 } }, ++ { MODKEY|ControlMask, XK_k, focusmon, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_j, tagmon, {.i = -1 } }, ++ { MODKEY|ShiftMask, XK_k, tagmon, {.i = +1 } }, + #if FOCUSADJACENTTAG_PATCH + { MODKEY, XK_Left, viewtoleft, {0} }, // note keybinding conflict with focusdir + { MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir +@@ -1255,23 +1258,40 @@ static const Key keys[] = { + { MODKEY|ControlMask, XK_numbersign, setborderpx, {.i = 0 } }, + #endif // SETBORDERPX_PATCH + #if CYCLELAYOUTS_PATCH +- { MODKEY|ControlMask, XK_comma, cyclelayout, {.i = -1 } }, +- { MODKEY|ControlMask, XK_period, cyclelayout, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_Tab, cyclelayout, {.i = -1 } }, ++ { MODKEY, XK_Tab, cyclelayout, {.i = +1 } }, + #endif // CYCLELAYOUTS_PATCH + #if MPDCONTROL_PATCH + { MODKEY, XK_F1, mpdchange, {.i = -1} }, + { MODKEY, XK_F2, mpdchange, {.i = +1} }, + { MODKEY, XK_Escape, mpdcontrol, {0} }, + #endif // MPDCONTROL_PATCH +- TAGKEYS( XK_1, 0) +- TAGKEYS( XK_2, 1) +- TAGKEYS( XK_3, 2) +- TAGKEYS( XK_4, 3) +- TAGKEYS( XK_5, 4) +- TAGKEYS( XK_6, 5) +- TAGKEYS( XK_7, 6) +- TAGKEYS( XK_8, 7) +- TAGKEYS( XK_9, 8) ++ TAGKEYS( XK_ampersand, 0) ++ TAGKEYS( XK_eacute, 1) ++ TAGKEYS( XK_quotedbl, 2) ++ TAGKEYS( XK_apostrophe, 3) ++ TAGKEYS( XK_parenleft, 4) ++ TAGKEYS( XK_minus, 5) ++ TAGKEYS( XK_egrave, 6) ++ TAGKEYS( XK_underscore, 7) ++ TAGKEYS( XK_ccedilla, 8) ++ { MODKEY, XK_Up, spawn, SHCMD("omixer +") }, ++ { MODKEY, XK_Down, spawn, SHCMD("omixer -") }, ++ { MODKEY, XK_Left, spawn, SHCMD("backlight - 5") }, ++ { MODKEY, XK_Right, spawn, SHCMD("backlight + 5") }, ++ { MODKEY|ShiftMask, XK_d, spawn, SHCMD("discord") }, ++ { MODKEY|ShiftMask, XK_f, spawn, SHCMD("firefox") }, ++ { MODKEY, XK_a, spawn, SHCMD("anime") }, ++ { MODKEY, XK_v, spawn, SHCMD("st -e vid") }, ++ { MODKEY, XK_n, spawn, SHCMD("st -e newsboat") }, ++ { MODKEY, XK_comma, spawn, SHCMD("st -e weechat") }, ++ { MODKEY, XK_z, spawn, SHCMD("shortmenu") }, ++ { MODKEY, XK_m, spawn, SHCMD("dmount") }, ++ { MODKEY|ShiftMask, XK_m, spawn, SHCMD("dumount") }, ++ { MODKEY, XK_p, spawn, {.v = passmenucmd } }, ++ { MODKEY, XK_g, spawn, {.v = webmenucmd } }, ++ { MODKEY, XK_s, spawn, {.v = screenshot } }, ++ { MODKEY|ShiftMask, XK_s, spawn, {.v = screenshots } }, }; - -@@ -197,10 +201,10 @@ static const char *colorname[] = { - * Default colors (colorname index) - * foreground, background, cursor, reverse cursor - */ --unsigned int defaultfg = 7; -+unsigned int defaultfg = 0; - unsigned int defaultbg = 259; --unsigned int defaultcs = 256; --unsigned int defaultrcs = 257; -+unsigned int defaultcs = 257; -+unsigned int defaultrcs = 256; - - #if VIM_BROWSE_PATCH - unsigned int const currentBg = 6, buffSize = 2048; --- -2.37.3 - - -From 68600fd1a5ff220bf35ba1df3679d55b9fa991c7 Mon Sep 17 00:00:00 2001 -From: odrling -Date: Thu, 26 May 2022 22:51:03 +0200 -Subject: [PATCH 04/15] dynamic cursor color - ---- - patches.def.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - + #if KEYMODES_PATCH diff --git a/patches.def.h b/patches.def.h -index 3457532..2e79d14 100644 +index 784e324..b45e1c7 100644 --- a/patches.def.h +++ b/patches.def.h -@@ -141,7 +141,7 @@ - /* This patch makes the cursor color the inverse of the current cell color. - * https://st.suckless.org/patches/dynamic-cursor-color/ +@@ -334,7 +334,7 @@ + * https://github.com/bakkeby/dwm-flexipatch/issues/50 (_IS_FLOATING patch) + * https://dwm.suckless.org/patches/ewmhtags/ */ --#define DYNAMIC_CURSOR_COLOR_PATCH 0 -+#define DYNAMIC_CURSOR_COLOR_PATCH 1 +-#define BAR_EWMHTAGS_PATCH 0 ++#define BAR_EWMHTAGS_PATCH 1 - /* Reading and writing st's screen through a pipe, e.g. pass info to dmenu. - * https://st.suckless.org/patches/externalpipe/ + /* Allows the bar height to be explicitly set rather than being derived from font. + * https://dwm.suckless.org/patches/bar_height/ +@@ -344,7 +344,7 @@ + /* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar. + * https://dwm.suckless.org/patches/hide_vacant_tags/ + */ +-#define BAR_HIDEVACANTTAGS_PATCH 0 ++#define BAR_HIDEVACANTTAGS_PATCH 1 + + /* With this patch dwm's built-in status bar is only shown when HOLDKEY is pressed + * and the bar will now overlay the display. +@@ -488,7 +488,7 @@ + * get resized/moved. With this patch, they will. + * https://dwm.suckless.org/patches/autoresize/ + */ +-#define AUTORESIZE_PATCH 0 ++#define AUTORESIZE_PATCH 1 + + /* This patch adds proper support for Right-To-Left languages. (such as Farsi, Arabic or Hebrew). + * +@@ -518,12 +518,12 @@ + * adding wintype as a client rule filter, hence this no longer works out of the box. This + * patch restores previous behaviour with the center patch. + */ +-#define CENTER_TRANSIENT_WINDOWS_PATCH 0 ++#define CENTER_TRANSIENT_WINDOWS_PATCH 1 + + /* As above, except that the transient window is centered within the position of the parent + * window, rather than at the center of the screen. This takes precedence over the above patch. + */ +-#define CENTER_TRANSIENT_WINDOWS_BY_PARENT_PATCH 0 ++#define CENTER_TRANSIENT_WINDOWS_BY_PARENT_PATCH 1 + + /* This patch provides the ability to assign different weights to clients in their + * respective stack in tiled layout. +@@ -541,18 +541,18 @@ + * hold MOD and then press and hold 1 and 3 together. + * https://dwm.suckless.org/patches/combo/ + */ +-#define COMBO_PATCH 0 ++#define COMBO_PATCH 1 + + /* Allow dwm to execute commands from autostart array in your config.h file. When dwm exits + * then all processes from autostart array will be killed. + * https://dwm.suckless.org/patches/cool_autostart/ + */ +-#define COOL_AUTOSTART_PATCH 0 ++#define COOL_AUTOSTART_PATCH 1 + + /* The cyclelayouts patch lets you cycle through all your layouts. + * https://dwm.suckless.org/patches/cyclelayouts/ + */ +-#define CYCLELAYOUTS_PATCH 0 ++#define CYCLELAYOUTS_PATCH 1 + + /* Make dwm respect _MOTIF_WM_HINTS property, and not draw borders around windows requesting + * for it. Some applications use this property to notify window managers to not draw window +@@ -658,7 +658,7 @@ + * xdotool selectwindow -- set_window --urgency 1 + * https://dwm.suckless.org/patches/focusurgent/ + */ +-#define FOCUSURGENT_PATCH 0 ++#define FOCUSURGENT_PATCH 1 + + /* By default, dwm responds to _NET_ACTIVE_WINDOW client messages by setting + * the urgency bit on the named window. This patch activates the window instead. +@@ -703,7 +703,7 @@ + * https://github.com/mihirlad55/dwm-ipc + * https://dwm.suckless.org/patches/ipc/ + */ +-#define IPC_PATCH 0 ++#define IPC_PATCH 1 + + /* Adds rule option for clients to avoid accidental termination by killclient for sticky windows. + * https://dwm.suckless.org/patches/ispermanent/ +@@ -734,7 +734,7 @@ + * in such scenarios the previous window loses fullscreen. + * https://github.com/bakkeby/patches/blob/master/dwm/dwm-losefullscreen-6.2.diff + */ +-#define LOSEFULLSCREEN_PATCH 0 ++#define LOSEFULLSCREEN_PATCH 1 + + /* This patch adds helper functions for maximizing, horizontally and vertically, floating + * windows using keybindings. +@@ -812,12 +812,12 @@ + * Zoom video conferencing application. + * https://github.com/bakkeby/patches/wiki/netclientliststacking/ + */ +-#define NET_CLIENT_LIST_STACKING_PATCH 0 ++#define NET_CLIENT_LIST_STACKING_PATCH 1 + + /* Removes the border when there is only one window visible. + * https://dwm.suckless.org/patches/noborder/ + */ +-#define NOBORDER_PATCH 0 ++#define NOBORDER_PATCH 1 + + /* This patch allows for toggleable client button bindings that have no modifiers. + * This can, for example, allow you to move or resize using the mouse alone without holding +@@ -839,7 +839,7 @@ + * https://github.com/szatanjl/dwm/commit/1529909466206016f2101457bbf37c67195714c8 + * https://dwm.suckless.org/patches/alpha/dwm-fixborders-6.2.diff + */ +-#define NO_TRANSPARENT_BORDERS_PATCH 0 ++#define NO_TRANSPARENT_BORDERS_PATCH 1 + + /* Port of InstantWM's on_empty_keys functionality allowing keybindings that apply only when + * a tag is empty. An example use case is being able to launch applications with first hand +@@ -927,7 +927,7 @@ + * This takes precedence over the resizecorners patch. + * https://github.com/bakkeby/patches/blob/master/dwm/dwm-resizepoint-6.2.diff + */ +-#define RESIZEPOINT_PATCH 0 ++#define RESIZEPOINT_PATCH 1 + + /* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid. + * Additionally dwm can quit cleanly by using kill -TERM dwmpid. +@@ -1087,7 +1087,7 @@ + * comes to focusmon, tagmon and similar functionality. + * https://www.mail-archive.com/hackers@suckless.org/msg09400.html + */ +-#define SORTSCREENS_PATCH 0 ++#define SORTSCREENS_PATCH 1 + + /* Spawns programs from currently focused client's working directory. + * https://dwm.suckless.org/patches/spawn_cwd/ +@@ -1113,12 +1113,12 @@ + * + * https://github.com/bakkeby/patches/wiki/steam + */ +-#define STEAM_PATCH 0 ++#define STEAM_PATCH 1 + + /* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. + * https://dwm.suckless.org/patches/sticky/ + */ +-#define STICKY_PATCH 0 ++#define STICKY_PATCH 1 + + /* This patch adds "window swallowing" to dwm as known from Plan 9's windowing system rio. + * Clients marked with isterminal in config.h swallow a window opened by any child process, +@@ -1135,7 +1135,7 @@ + * + * https://dwm.suckless.org/patches/swallow/ + */ +-#define SWALLOW_PATCH 0 ++#define SWALLOW_PATCH 1 + + /* This patch depends on the pertag patch and makes it possible to switch focus with a single + * shortcut (MOD+s) instead of having to think if you should use mod-j or mod-k for reaching +@@ -1171,7 +1171,7 @@ + * https://github.com/bakkeby/patches/blob/master/dwm/dwm-switchtag-6.2.diff + * Also see https://dwm.suckless.org/patches/switchtotag + */ +-#define SWITCHTAG_PATCH 0 ++#define SWITCHTAG_PATCH 1 + + /* This patch transforms the monocle layout into a "tabbed" layout if more than one window is + * present on the monocle view. This patch has been added for demonstration purposes only and has +@@ -1213,7 +1213,7 @@ + * while remaining in fullscreen. + * https://github.com/bakkeby/patches/blob/master/dwm/dwm-tagmonfixfs-6.2.diff + */ +-#define TAGMONFIXFS_PATCH 0 ++#define TAGMONFIXFS_PATCH 1 + + /* Add functions and keybindings to tag a window to a desired tag on the next (right) + * or previous (left) monitor from the currently selected monitor. +@@ -1311,7 +1311,7 @@ + * when the mouse cursor is (a) on a different screen or (b) on top of a different window. + * https://dwm.suckless.org/patches/warp/ + */ +-#define WARP_PATCH 0 ++#define WARP_PATCH 1 + + /* Sometimes a single application opens different windows depending on the task + * at hand and this is often reflected in the WM_WINDOW_ROLE(STRING) x property. +@@ -1339,7 +1339,7 @@ + * the float border color, awesomebar, urgentborder and titlecolor patches. + * https://dwm.suckless.org/patches/xrdb/ + */ +-#define XRDB_PATCH 0 ++#define XRDB_PATCH 1 + + /* Simple patch that allows floating windows to be zoomed into the master stack position. + * https://www.reddit.com/r/suckless/comments/ie5fe3/zoomfloating_my_own_simple_original_patch/ +@@ -1401,7 +1401,7 @@ + * A revamped, more flexible, and over-the-top version of the original flextile layout. + * https://dwm.suckless.org/patches/flextile/ (original) + */ +-#define FLEXTILE_DELUXE_LAYOUT 0 ++#define FLEXTILE_DELUXE_LAYOUT 1 + + /* Gappless grid layout. + * https://dwm.suckless.org/patches/gaplessgrid/ +@@ -1426,7 +1426,7 @@ + /* The default tile layout. + * This can be optionally disabled in favour of other layouts. + */ +-#define TILE_LAYOUT 1 ++#define TILE_LAYOUT 0 + + /* Monocle layout (default). + * This can be optionally disabled in favour of other layouts. -- -2.37.3 +2.38.0 -From e37637c02b19130e79138f6c9a8ce8f842f411ba Mon Sep 17 00:00:00 2001 +From 5ea89fb7f16d1b80fbbadb6bc21788d2e1ea914c Mon Sep 17 00:00:00 2001 From: odrling -Date: Thu, 26 May 2022 23:01:04 +0200 -Subject: [PATCH 05/15] move with termmod + j/k +Date: Sat, 27 Mar 2021 19:07:22 +0100 +Subject: [PATCH 02/28] set urgent color --- - config.def.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/config.def.h b/config.def.h -index e43f2ab..9dc4968 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -395,6 +395,8 @@ static Shortcut shortcuts[] = { - #if SCROLLBACK_PATCH - { ShiftMask, XK_Page_Up, kscrollup, {.i = -1}, S_PRI }, - { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1}, S_PRI }, -+ { TERMMOD, XK_K, kscrollup, {.i = 1}, S_PRI }, -+ { TERMMOD, XK_J, kscrolldown, {.i = 1}, S_PRI }, - #endif // SCROLLBACK_PATCH - #if CLIPBOARD_PATCH - { TERMMOD, XK_Y, clippaste, {.i = 0} }, --- -2.37.3 - - -From 161f0ffaa692a80e5c24f9f78bb46515bc4354bb Mon Sep 17 00:00:00 2001 -From: odrling -Date: Thu, 26 May 2022 23:08:37 +0200 -Subject: [PATCH 06/15] enable more patches ig - ---- - patches.def.h | 6 +++--- + config.def.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/patches.def.h b/patches.def.h -index 2e79d14..c7009b8 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -63,7 +63,7 @@ - * This patch makes bold text rendered simply as bold, leaving the color unaffected. - * https://st.suckless.org/patches/bold-is-not-bright/ - */ --#define BOLD_IS_NOT_BRIGHT_PATCH 0 -+#define BOLD_IS_NOT_BRIGHT_PATCH 1 - - /* This patch adds custom rendering of lines/blocks/braille characters for gapless alignment. - * https://st.suckless.org/patches/boxdraw/ -@@ -83,7 +83,7 @@ - * - * https://github.com/bakkeby/st-flexipatch/issues/34 - */ --#define COLUMNS_PATCH 0 -+#define COLUMNS_PATCH 1 - - /* Select and copy the last URL displayed with Mod+l. Multiple invocations cycle through the - * available URLs. -@@ -235,7 +235,7 @@ - * same CWD (current working directory) as the original st instance. - * https://st.suckless.org/patches/newterm/ - */ --#define NEWTERM_PATCH 0 -+#define NEWTERM_PATCH 1 - - /* This patch will set the _MOTIF_WM_HINTS property for the st window which, if the window manager - * respects it, will show the st window without window decorations. --- -2.37.3 - - -From 8227ff8c5b2152f5a713483990afd5f033c5e11c Mon Sep 17 00:00:00 2001 -From: odrling -Date: Fri, 27 May 2022 00:35:49 +0200 -Subject: [PATCH 07/15] scroll mouse patch - ---- - patches.def.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/patches.def.h b/patches.def.h -index c7009b8..020bc59 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -278,7 +278,7 @@ - * This variant depends on SCROLLBACK_PATCH being enabled. - * https://st.suckless.org/patches/scrollback/ - */ --#define SCROLLBACK_MOUSE_PATCH 0 -+#define SCROLLBACK_MOUSE_PATCH 1 - - /* Scroll back through terminal output using mouse wheel (when not in MODE_ALTSCREEN). - * This variant depends on SCROLLBACK_PATCH being enabled. --- -2.37.3 - - -From de3b9a05da4fa1417854b1b17e822a6cd612b9c0 Mon Sep 17 00:00:00 2001 -From: odrling -Date: Fri, 27 May 2022 00:37:18 +0200 -Subject: [PATCH 08/15] st sync patch - ---- - patches.def.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/patches.def.h b/patches.def.h -index 020bc59..c406975 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -340,7 +340,7 @@ - * - * https://st.suckless.org/patches/sync/ - */ --#define SYNC_PATCH 0 -+#define SYNC_PATCH 1 - - /* Instead of a default X cursor, use the xterm cursor from your cursor theme. - * You need to uncomment the corresponding line in config.mk to use the -lXcursor library --- -2.37.3 - - -From fe645f978376f90d21d1d0a6d1002631a2b72b2a Mon Sep 17 00:00:00 2001 -From: odrling -Date: Fri, 27 May 2022 00:38:36 +0200 -Subject: [PATCH 09/15] undercurl - ---- - config.def.h | 2 +- - patches.def.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - diff --git a/config.def.h b/config.def.h -index 9dc4968..3071936 100644 +index e7dd706..eb88fb3 100644 --- a/config.def.h +++ b/config.def.h -@@ -748,5 +748,5 @@ static char *plumb_cmd = "plumb"; - #define UNDERCURL_SPIKY 1 - #define UNDERCURL_CAPPED 2 - // Active style --#define UNDERCURL_STYLE UNDERCURL_SPIKY -+#define UNDERCURL_STYLE UNDERCURL_CAPPED - #endif // UNDERCURL_PATCH -diff --git a/patches.def.h b/patches.def.h -index c406975..837b904 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -365,7 +365,7 @@ - * - * https://st.suckless.org/patches/undercurl/ - */ --#define UNDERCURL_PATCH 0 -+#define UNDERCURL_PATCH 1 +@@ -187,9 +187,9 @@ static char hidselfgcolor[] = "#222222"; + static char hidnormbgcolor[] = "#9966cc"; + static char hidselbgcolor[] = "#f76e0c"; - /* Allows mouse scroll without modifier keys for regardless of alt screen using the external - * scroll program. +-static char urgfgcolor[] = "#bbbbbb"; +-static char urgbgcolor[] = "#222222"; +-static char urgbordercolor[] = "#ff0000"; ++static char urgfgcolor[] = "#222222"; ++static char urgbgcolor[] = "#bbbbbb"; ++static char urgbordercolor[] = "#dddddd"; + static char urgfloatcolor[] = "#db8fd9"; + + #if RENAMED_SCRATCHPADS_PATCH -- -2.37.3 +2.38.0 -From ac7832c076a0fd80b827b5289edae85d64e8f70c Mon Sep 17 00:00:00 2001 +From aaf33cf035755a15ce361dcf9df937703b9fcc7f Mon Sep 17 00:00:00 2001 From: odrling -Date: Fri, 27 May 2022 02:09:19 +0200 -Subject: [PATCH 10/15] anysize simple +Date: Sun, 28 Mar 2021 20:22:05 +0200 +Subject: [PATCH 03/28] more config --- - patches.def.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + config.def.h | 15 +++++++++------ + patches.def.h | 10 +++++----- + 2 files changed, 14 insertions(+), 11 deletions(-) +diff --git a/config.def.h b/config.def.h +index eb88fb3..9782f5d 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -481,8 +481,9 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "UTILITY", .isfloating = 1) + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) +- RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 2) +- RULE(.class = "Ardour", .tags = 1 << 8) ++ RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) ++ RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) ++ RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) + #if SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) +@@ -1102,7 +1103,7 @@ static const Key keys[] = { + { MODKEY|ShiftMask, XK_f, fullscreen, {0} }, + #endif // FULLSCREEN_PATCH + #if STICKY_PATCH +- { MODKEY|ShiftMask, XK_s, togglesticky, {0} }, ++ { MODKEY|ShiftMask, XK_t, togglesticky, {0} }, + #endif // STICKY_PATCH + #if SCRATCHPAD_ALT_1_PATCH + { MODKEY, XK_minus, scratchpad_show, {0} }, +@@ -1112,8 +1113,8 @@ static const Key keys[] = { + { MODKEY, XK_0, view, {.ui = ~SPTAGMASK } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~SPTAGMASK } }, + #else +- { MODKEY, XK_0, view, {.ui = ~0 } }, +- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, ++ { MODKEY, XK_agrave, view, {.ui = ~0 } }, ++ { MODKEY|ShiftMask, XK_agrave, tag, {.ui = ~0 } }, + #endif // SCRATCHPAD_ALT_1_PATCH + { MODKEY|ControlMask, XK_j, focusmon, {.i = -1 } }, + { MODKEY|ControlMask, XK_k, focusmon, {.i = +1 } }, +@@ -1580,7 +1581,9 @@ static const Signal signals[] = { + /* trigger signals using `xsetroot -name "fsignal:"` */ + static Signal signals[] = { + /* signum function argument */ +- { 1, setlayout, {.v = 0} }, ++ { 1, spawn, SHCMD("setaudio") }, ++ { 2, spawn, SHCMD("setoutput") }, ++ { 3, spawn, SHCMD("sethid") }, + }; + #endif // DWMC_PATCH + diff --git a/patches.def.h b/patches.def.h -index 837b904..5c6d41b 100644 +index b45e1c7..d583d86 100644 --- a/patches.def.h +++ b/patches.def.h -@@ -32,12 +32,12 @@ - /* This patch allows st to resize to any pixel size rather than snapping to character width/height. - * https://st.suckless.org/patches/anysize/ +@@ -457,7 +457,7 @@ + * This patch takes precedence over ATTACHASIDE_PATCH. + * https://dwm.suckless.org/patches/attachabove/ */ --#define ANYSIZE_PATCH 1 -+#define ANYSIZE_PATCH 0 +-#define ATTACHABOVE_PATCH 0 ++#define ATTACHABOVE_PATCH 1 - /* A simple variant of the anysize patch that only changes the resize hints to allow the window to - * be resized to any size. + /* This patch adds new clients on top of the stack. + * This patch takes precedence over ATTACHBELOW_PATCH. +@@ -664,14 +664,14 @@ + * the urgency bit on the named window. This patch activates the window instead. + * https://dwm.suckless.org/patches/focusonnetactive/ */ --#define ANYSIZE_SIMPLE_PATCH 0 -+#define ANYSIZE_SIMPLE_PATCH 1 +-#define FOCUSONNETACTIVE_PATCH 0 ++#define FOCUSONNETACTIVE_PATCH 1 - /* Draws a background image in farbfeld format in place of the defaultbg color allowing for pseudo - * transparency. + /* Send "fake signals" to dwm for handling, using xsetroot. This will not conflict with the + * status bar, which also is managed using xsetroot. + * Also see the dwmc patch, which takes precedence over this patch. + * https://dwm.suckless.org/patches/fsignal/ + */ +-#define FSIGNAL_PATCH 0 ++#define FSIGNAL_PATCH 1 + + /* Applies the monocle layout with the focused client on top and hides the bar. When pressed + * again it shows the bar and restores the layout that was active before going fullscreen. +@@ -817,7 +817,7 @@ + /* Removes the border when there is only one window visible. + * https://dwm.suckless.org/patches/noborder/ + */ +-#define NOBORDER_PATCH 1 ++#define NOBORDER_PATCH 0 + + /* This patch allows for toggleable client button bindings that have no modifiers. + * This can, for example, allow you to move or resize using the mouse alone without holding +@@ -863,7 +863,7 @@ + * monitor (default). + * https://dwm.suckless.org/patches/pertag/ + */ +-#define PERTAG_PATCH 0 ++#define PERTAG_PATCH 1 + + /* Option to store gaps on a per tag basis rather than on a per monitor basis. + * Depends on both pertag and vanitygaps patches being enabled. -- -2.37.3 +2.38.0 -From 44bfd072dbb9274c9e0843e7d8b03ee89795ab17 Mon Sep 17 00:00:00 2001 +From 193c3628efcf3a002834a7a11db7ac22de0b90bc Mon Sep 17 00:00:00 2001 From: odrling -Date: Fri, 27 May 2022 02:09:49 +0200 -Subject: [PATCH 11/15] set new font scale binding +Date: Thu, 1 Apr 2021 20:27:49 +0200 +Subject: [PATCH 04/28] edit cyclelayout keybinding + +--- + config.def.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 9782f5d..f91df7c 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -1068,8 +1068,8 @@ static const Key keys[] = { + { MODKEY|Mod5Mask|Mod1Mask, XK_Tab, rotatelayoutaxis, {.i = -4 } }, /* flextile, 4 = secondary stack axis */ + { MODKEY|ControlMask, XK_Return, mirrorlayout, {0} }, /* flextile, flip master and stack areas */ + #endif // FLEXTILE_DELUXE_LAYOUT +- { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, ++ //{ MODKEY, XK_space, setlayout, {0} }, ++ { MODKEY|ControlMask, XK_space, togglefloating, {0} }, + #if MAXIMIZE_PATCH + { MODKEY|ControlMask|ShiftMask, XK_h, togglehorizontalmax, {0} }, + { MODKEY|ControlMask|ShiftMask, XK_l, togglehorizontalmax, {0} }, +@@ -1259,8 +1259,8 @@ static const Key keys[] = { + { MODKEY|ControlMask, XK_numbersign, setborderpx, {.i = 0 } }, + #endif // SETBORDERPX_PATCH + #if CYCLELAYOUTS_PATCH +- { MODKEY|ShiftMask, XK_Tab, cyclelayout, {.i = -1 } }, +- { MODKEY, XK_Tab, cyclelayout, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_space, cyclelayout, {.i = -1 } }, ++ { MODKEY, XK_space, cyclelayout, {.i = +1 } }, + #endif // CYCLELAYOUTS_PATCH + #if MPDCONTROL_PATCH + { MODKEY, XK_F1, mpdchange, {.i = -1} }, +-- +2.38.0 + + +From 71dd486d38b5ad350aa10bb10d2b6e7cf02ceece Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 21 Apr 2021 23:19:07 +0200 +Subject: [PATCH 05/28] I don't think this argument is required --- config.def.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h -index 3071936..c8e6208 100644 +index f91df7c..1c701f2 100644 --- a/config.def.h +++ b/config.def.h -@@ -387,8 +387,8 @@ static Shortcut shortcuts[] = { - { ControlMask, XK_Print, toggleprinter, {.i = 0} }, - { ShiftMask, XK_Print, printscreen, {.i = 0} }, - { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, -- { TERMMOD, XK_Prior, zoom, {.f = +1} }, -- { TERMMOD, XK_Next, zoom, {.f = -1} }, -+ { TERMMOD, XK_Up, zoom, {.f = +1} }, -+ { TERMMOD, XK_Down, zoom, {.f = -1} }, - { TERMMOD, XK_Home, zoomreset, {.f = 0} }, - { TERMMOD, XK_C, clipcopy, {.i = 0} }, - { TERMMOD, XK_V, clippaste, {.i = 0} }, --- -2.37.3 - - -From 9aba963eb6a2710fc4a7f75cd4afdcf95830071f Mon Sep 17 00:00:00 2001 -From: odrling -Date: Fri, 27 May 2022 02:29:39 +0200 -Subject: [PATCH 12/15] swapmouse - ---- - patches.def.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/patches.def.h b/patches.def.h -index 5c6d41b..56854ec 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -327,7 +327,7 @@ - * shown by vte terminals like termite. - * https://st.suckless.org/patches/swapmouse/ - */ --#define SWAPMOUSE_PATCH 0 -+#define SWAPMOUSE_PATCH 1 +@@ -854,8 +854,8 @@ static const char *dmenucmd[] = { + NULL + }; + static const char *termcmd[] = { "st", NULL }; +-static const char *passmenucmd[] = { "passmenu", "-m", dmenumon, NULL }; +-static const char *webmenucmd[] = { "webmenu", "-m", dmenumon, NULL }; ++static const char *passmenucmd[] = { "passmenu", NULL }; ++static const char *webmenucmd[] = { "webmenu", NULL }; + static const char *screenshot[] = { "screenshot", NULL }; + static const char *screenshots[] = { "screenshot", "-s", "-l", "-c", "0.75,0.5,1.0,0.1", NULL }; - /* This patch adds synchronized-updates/application-sync support in st. - * This will have no effect except when an application uses the synchronized-update escape -- -2.37.3 +2.38.0 -From b021093d62861a094e3d0464f60c44a1e5f14250 Mon Sep 17 00:00:00 2001 +From bec2c901c11eff41d2cb328416f2dec349f92064 Mon Sep 17 00:00:00 2001 From: odrling -Date: Fri, 27 May 2022 02:39:03 +0200 -Subject: [PATCH 13/15] relative border +Date: Wed, 21 Apr 2021 23:36:07 +0200 +Subject: [PATCH 06/28] decomment libraries used by enabled patches --- - config.def.h | 2 +- - patches.def.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + config.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/config.mk b/config.mk +index eb1f2cf..cc78efb 100644 +--- a/config.mk ++++ b/config.mk +@@ -39,14 +39,14 @@ FREETYPEINC = /usr/include/freetype2 + #PANGOLIB = `pkg-config --libs xft pango pangoxft` + + # Uncomment for the ipc patch / IPC_PATCH +-#YAJLLIBS = -lyajl +-#YAJLINC = -I/usr/include/yajl ++YAJLLIBS = -lyajl ++YAJLINC = -I/usr/include/yajl + + # Uncomment this for the rounded corners patch / ROUNDED_CORNERS_PATCH + #XEXTLIB = -lXext + + # Uncomment this for the swallow patch / SWALLOW_PATCH +-#XCBLIBS = -lX11-xcb -lxcb -lxcb-res ++XCBLIBS = -lX11-xcb -lxcb -lxcb-res + + # This is needed for the winicon and tagpreview patches / BAR_WINICON_PATCH / BAR_TAGPREVIEW_PATCH + #IMLIB2LIBS = -lImlib2 +-- +2.38.0 + + +From 8040eec0152986241ae358e998d177a9fd69ce43 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Sat, 24 Apr 2021 15:02:45 +0200 +Subject: [PATCH 07/28] runsvdir on startup + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) diff --git a/config.def.h b/config.def.h -index c8e6208..06ec158 100644 +index 1c701f2..7aed2be 100644 --- a/config.def.h +++ b/config.def.h -@@ -27,7 +27,7 @@ static const int pseudotransparency = 0; - #if RELATIVEBORDER_PATCH - /* borderperc: percentage of cell width to use as a border - * 0 = no border, 100 = border width is same as cell width */ --int borderperc = 20; -+int borderperc = 40; - #else - static int borderpx = 2; - #endif // RELATIVEBORDER_PATCH -diff --git a/patches.def.h b/patches.def.h -index 56854ec..78b2320 100644 ---- a/patches.def.h -+++ b/patches.def.h -@@ -261,7 +261,7 @@ - * in the terminal. - * https://st.suckless.org/patches/relativeborder/ - */ --#define RELATIVEBORDER_PATCH 0 -+#define RELATIVEBORDER_PATCH 1 - - /* This patch allows you to right-click on some selected text to send it to the plumbing - * program of choice, e.g. open a file, view an image, open a URL. +@@ -386,6 +386,7 @@ static const char *layoutmenu_cmd = "layoutmenu.sh"; + #if COOL_AUTOSTART_PATCH + static const char *const autostart[] = { + "dwmblocks", NULL, ++ "sh", "-c", "runsvdir $HOME/.sv", NULL, + NULL /* terminate */ + }; + #endif // COOL_AUTOSTART_PATCH -- -2.37.3 +2.38.0 -From 03a33f82a5a93c12900914e1173cf0730bd14f4e Mon Sep 17 00:00:00 2001 +From ce294baec2440bbf762a053d307e6ab704990a37 Mon Sep 17 00:00:00 2001 From: odrling -Date: Fri, 9 Sep 2022 02:13:28 +0200 -Subject: [PATCH 14/15] update enabled patches +Date: Fri, 14 May 2021 19:58:33 +0200 +Subject: [PATCH 08/28] browser config --- - patches.def.h | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) + config.def.h | 3 ++- + patches.def.h | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) +diff --git a/config.def.h b/config.def.h +index 7aed2be..860dbdd 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -483,6 +483,7 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) + RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) ++ RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) + RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) +@@ -1282,7 +1283,7 @@ static const Key keys[] = { + { MODKEY, XK_Left, spawn, SHCMD("backlight - 5") }, + { MODKEY, XK_Right, spawn, SHCMD("backlight + 5") }, + { MODKEY|ShiftMask, XK_d, spawn, SHCMD("discord") }, +- { MODKEY|ShiftMask, XK_f, spawn, SHCMD("firefox") }, ++ { MODKEY|ShiftMask, XK_f, spawn, SHCMD("browser") }, + { MODKEY, XK_a, spawn, SHCMD("anime") }, + { MODKEY, XK_v, spawn, SHCMD("st -e vid") }, + { MODKEY, XK_n, spawn, SHCMD("st -e newsboat") }, diff --git a/patches.def.h b/patches.def.h -index 78b2320..1f79bbf 100644 +index d583d86..7c2e2c7 100644 --- a/patches.def.h +++ b/patches.def.h -@@ -101,7 +101,7 @@ - * restores the window title (for instance nvim does this when opening and closing). - * https://st.suckless.org/patches/csi_22_23/ +@@ -1320,7 +1320,7 @@ + * or Google-chrome "browser" vs "pop-up". + * https://github.com/bakkeby/patches/blob/master/dwm/dwm-windowrolerule-6.2.diff */ --#define CSI_22_23_PATCH 0 -+#define CSI_22_23_PATCH 1 +-#define WINDOWROLERULE_PATCH 0 ++#define WINDOWROLERULE_PATCH 1 - /* According to the specification (see link in BLINKING_CURSOR_PATCH) the "Set cursor style - * (DECSCUSR), VT520." escape sequences define both values of 0 and 1 as a blinking block, -@@ -170,7 +170,7 @@ - * that are available to GUI applications. - * https://st.suckless.org/patches/fix_keyboard_input/ - */ --#define FIXKEYBOARDINPUT_PATCH 0 -+#define FIXKEYBOARDINPUT_PATCH 1 - - /* This patch allows you to add spare font besides the default. Some glyphs can be not present in - * the default font. For this glyphs st uses font-config and try to find them in font cache first. -@@ -320,7 +320,7 @@ - /* Use inverted defaultbg/fg for selection when bg/fg are the same. - * https://st.suckless.org/patches/spoiler/ - */ --#define SPOILER_PATCH 0 -+#define SPOILER_PATCH 1 - - /* This patch changes the mouse shape to the global default when the running program subscribes - * for mouse events, for instance, in programs like ranger and fzf. It emulates the behaviour -@@ -371,7 +371,7 @@ - * scroll program. - * https://st.suckless.org/patches/universcroll/ - */ --#define UNIVERSCROLL_PATCH 0 -+#define UNIVERSCROLL_PATCH 1 - - /* Use XftFontMatch in place of FcFontMatch. - * -@@ -385,7 +385,7 @@ - * - * https://git.suckless.org/st/commit/528241aa3835e2f1f052abeeaf891737712955a0.html - */ --#define USE_XFTFONTMATCH_PATCH 0 -+#define USE_XFTFONTMATCH_PATCH 1 - - /* Vertically center lines in the space available if you have set a larger chscale in config.h - * https://st.suckless.org/patches/vertcenter/ -@@ -410,7 +410,7 @@ - /* Adds support for w3m images. - * https://st.suckless.org/patches/w3m/ - */ --#define W3M_PATCH 1 -+#define W3M_PATCH 0 - - /* Adds proper glyphs rendering in st allowing wide glyphs to be drawn as-is as opposed to - * smaller or cut glyphs being rendered. + /* The winview patch allows switching the view to that of a given client from the all-window + * view (Mod-0) using a keyboard shortcut. -- -2.37.3 +2.38.0 -From 125aae1a7008128b0edc01be0da4f69c82cfb360 Mon Sep 17 00:00:00 2001 +From f5d1c9ea198cf552b981475100a63cb6a328c1e6 Mon Sep 17 00:00:00 2001 From: odrling -Date: Thu, 15 Sep 2022 16:02:06 +0200 -Subject: [PATCH 15/15] fix fix keyboard input +Date: Fri, 14 May 2021 20:04:15 +0200 +Subject: [PATCH 09/28] discord window rules + +--- + config.def.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 860dbdd..fd69677 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -482,6 +482,8 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "UTILITY", .isfloating = 1) + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) ++ RULE(.class = "discord", .tags = 1 << 0, .switchtag = 1, .monitor = 0) ++ RULE(.class = "lightcord", .tags = 1 << 0, .switchtag = 1, .monitor = 0) + RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) + RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) + RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) +-- +2.38.0 + + +From 17625d154b43ac609e24d61a5d66fcc582636b7c Mon Sep 17 00:00:00 2001 +From: odrling +Date: Fri, 14 May 2021 20:08:27 +0200 +Subject: [PATCH 10/28] apply one rule patch --- patches.def.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches.def.h b/patches.def.h -index 1f79bbf..5727131 100644 +index 7c2e2c7..e7fb4a2 100644 --- a/patches.def.h +++ b/patches.def.h -@@ -170,7 +170,7 @@ - * that are available to GUI applications. - * https://st.suckless.org/patches/fix_keyboard_input/ - */ --#define FIXKEYBOARDINPUT_PATCH 1 -+#define FIXKEYBOARDINPUT_PATCH 0 +@@ -851,7 +851,7 @@ + #define ON_EMPTY_KEYS_PATCH 0 - /* This patch allows you to add spare font besides the default. Some glyphs can be not present in - * the default font. For this glyphs st uses font-config and try to find them in font cache first. + /* Minor patch that prevents more than one rule being matched for a given client. */ +-#define ONLY_ONE_RULE_MATCH_PATCH 0 ++#define ONLY_ONE_RULE_MATCH_PATCH 1 + + /* This patch makes it so dwm will only exit via quit() if no windows are open. + * This is to prevent you accidentally losing all your work. -- -2.37.3 +2.38.0 + + +From 18688ec459630e99e4250b7692d047b6ab16eef9 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Sun, 20 Jun 2021 18:13:17 +0200 +Subject: [PATCH 11/28] add agordejo rule + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index fd69677..d2eb872 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -487,6 +487,7 @@ static const Rule rules[] = { + RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) + RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) + RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) ++ RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) + #if SCRATCHPADS_PATCH +-- +2.38.0 + + +From 7ea6d97fb3e20a28a5dd848e2e082f25f99b72e4 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Sat, 25 Sep 2021 14:36:07 +0200 +Subject: [PATCH 12/28] start easyeffects on tag 9 + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index d2eb872..372dbdc 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -487,6 +487,7 @@ static const Rule rules[] = { + RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) + RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) + RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) ++ RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0) + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) +-- +2.38.0 + + +From 94325a0ed9e3ea259d977f844f2cfbe87d9e8922 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 25 Nov 2021 01:15:38 +0100 +Subject: [PATCH 13/28] set carla to tag 9 + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index 372dbdc..7c7d93b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -486,6 +486,7 @@ static const Rule rules[] = { + RULE(.class = "lightcord", .tags = 1 << 0, .switchtag = 1, .monitor = 0) + RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) + RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) ++ RULE(.class = "Carla2", .tags = 1 << 8, .monitor = 0, .switchtag = 0) + RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) + RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0) + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0) +-- +2.38.0 + + +From 2f029c9f5f4bb7ef297fefce7455bc67043808d3 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 22 Dec 2021 00:00:07 +0100 +Subject: [PATCH 14/28] set dmenucmd to rofi + +--- + config.def.h | 11 +---------- + 1 file changed, 1 insertion(+), 10 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 7c7d93b..303e2a0 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -849,16 +849,7 @@ static const char *xkb_layouts[] = { + + /* commands */ + static const char *dmenucmd[] = { +- "dmenu_run", +- "-fn", dmenufont, +- "-nb", normbgcolor, +- "-nf", normfgcolor, +- "-sb", selbgcolor, +- "-sf", selfgcolor, +- #if BAR_DMENUMATCHTOP_PATCH +- topbar ? NULL : "-b", +- #endif // BAR_DMENUMATCHTOP_PATCH +- NULL ++ "rofi", "-combi-modi", "window,run", "-show", "combi", NULL + }; + static const char *termcmd[] = { "st", NULL }; + static const char *passmenucmd[] = { "passmenu", NULL }; +-- +2.38.0 + + +From 0bacd50754371c399c5aed85723b9fdc63af004f Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 13:30:35 +0200 +Subject: [PATCH 15/28] enable no border patch + +--- + patches.def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/patches.def.h b/patches.def.h +index e7fb4a2..0509e26 100644 +--- a/patches.def.h ++++ b/patches.def.h +@@ -817,7 +817,7 @@ + /* Removes the border when there is only one window visible. + * https://dwm.suckless.org/patches/noborder/ + */ +-#define NOBORDER_PATCH 0 ++#define NOBORDER_PATCH 1 + + /* This patch allows for toggleable client button bindings that have no modifiers. + * This can, for example, allow you to move or resize using the mouse alone without holding +-- +2.38.0 + + +From 68f0a3a8605aa811efa666a2d482c73d05f2b694 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 13:52:04 +0200 +Subject: [PATCH 16/28] force swallow from alacritty + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index 303e2a0..5c41bda 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -492,6 +492,7 @@ static const Rule rules[] = { + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) ++ RULE(.class = "Alacritty", .isterminal = 1) + #if SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) + #endif // SCRATCHPADS_PATCH +-- +2.38.0 + + +From 00b14b776e9e6ade3d100055330d3fad9004686e Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 18:18:33 +0200 +Subject: [PATCH 17/28] remove browser rules and add permanent + +--- + config.def.h | 12 ++++-------- + patches.def.h | 2 +- + 2 files changed, 5 insertions(+), 9 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 5c41bda..d725bae 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -482,14 +482,10 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "UTILITY", .isfloating = 1) + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) +- RULE(.class = "discord", .tags = 1 << 0, .switchtag = 1, .monitor = 0) +- RULE(.class = "lightcord", .tags = 1 << 0, .switchtag = 1, .monitor = 0) +- RULE(.class = "Firefox", .tags = 1 << 7, .switchtag = 1) +- RULE(.role = "browser", .tags = 1 << 7, .switchtag = 1) +- RULE(.class = "Carla2", .tags = 1 << 8, .monitor = 0, .switchtag = 0) +- RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0) +- RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0) +- RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0) ++ RULE(.class = "Carla2", .tags = 1 << 8, .monitor = 0, .switchtag = 0, .ispermanent = 1) ++ RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) ++ RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) ++ RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) + RULE(.class = "Alacritty", .isterminal = 1) +diff --git a/patches.def.h b/patches.def.h +index 0509e26..092bc46 100644 +--- a/patches.def.h ++++ b/patches.def.h +@@ -708,7 +708,7 @@ + /* Adds rule option for clients to avoid accidental termination by killclient for sticky windows. + * https://dwm.suckless.org/patches/ispermanent/ + */ +-#define ISPERMANENT_PATCH 0 ++#define ISPERMANENT_PATCH 1 + + /* This patch adds key modes (like in vim or emacs) where chains of keyboard shortcuts + * can be performed. +-- +2.38.0 + + +From a2f2e7d992e29a3dea4fca1dee949124a71da4e4 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 19:13:43 +0200 +Subject: [PATCH 18/28] sendmon: keeptag patch + +--- + dwm.c | 2 ++ + patches.def.h | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/dwm.c b/dwm.c +index 794fab7..48a5fe9 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -3305,11 +3305,13 @@ sendmon(Client *c, Monitor *m) + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH + if (!(c->tags & SPTAGMASK)) + #endif // SCRATCHPADS_PATCH ++ #if !SENDMON_KEEPTAGS + #if EMPTYVIEW_PATCH + c->tags = (m->tagset[m->seltags] ? m->tagset[m->seltags] : 1); + #else + c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */ + #endif // EMPTYVIEW_PATCH ++ #endif // SENDMON_KEEPTAGS + #if ATTACHABOVE_PATCH || ATTACHASIDE_PATCH || ATTACHBELOW_PATCH || ATTACHBOTTOM_PATCH + attachx(c); + #else +diff --git a/patches.def.h b/patches.def.h +index 092bc46..d2909a5 100644 +--- a/patches.def.h ++++ b/patches.def.h +@@ -1012,6 +1012,10 @@ + */ + #define SENDMON_KEEPFOCUS_PATCH 0 + ++/* This patch allow clients to keep their current tags when sent to another monitor ++ */ ++#define SENDMON_KEEPTAGS 1 ++ + /* This patch allows border pixels to be changed during runtime. + * https://dwm.suckless.org/patches/setborderpx/ + */ +-- +2.38.0 + + +From 1130aa352091877fecafbcbdfd8917d573f06a0c Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 19:31:59 +0200 +Subject: [PATCH 19/28] taglabels + +--- + patches.def.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/patches.def.h b/patches.def.h +index d2909a5..22ac7ea 100644 +--- a/patches.def.h ++++ b/patches.def.h +@@ -170,12 +170,12 @@ + #define BAR_SYSTRAY_PATCH 0 + + /* Show tag symbols in the bar. */ +-#define BAR_TAGS_PATCH 1 ++#define BAR_TAGS_PATCH 0 + + /* Show tag symbols + class of master window in the bar. + * https://dwm.suckless.org/patches/taglabels/ + */ +-#define BAR_TAGLABELS_PATCH 0 ++#define BAR_TAGLABELS_PATCH 1 + + /* This patch underlines the selected tag, or optionally all tags. + * https://dwm.suckless.org/patches/underlinetags/ +-- +2.38.0 + + +From 42c1d84cc3a0bec88bb683649573c938cb68a819 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Wed, 20 Apr 2022 20:26:55 +0200 +Subject: [PATCH 20/28] better taglabels + +--- + config.def.h | 8 +++++--- + dwm.c | 7 +++++++ + patch/bar_taglabels.c | 10 ++++------ + 3 files changed, 16 insertions(+), 9 deletions(-) + +diff --git a/config.def.h b/config.def.h +index d725bae..cb25bfd 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -95,8 +95,8 @@ static const unsigned int systrayspacing = 2; /* systray spacing */ + static const int showsystray = 1; /* 0 means no systray */ + #endif // BAR_SYSTRAY_PATCH + #if BAR_TAGLABELS_PATCH +-static const char ptagf[] = "[%s %s]"; /* format of a tag label */ +-static const char etagf[] = "[%s]"; /* format of an empty tag */ ++static const char ptagf[] = "%s: %s"; /* format of a tag label */ ++static const char etagf[] = "%s"; /* format of an empty tag */ + static const int lcaselbl = 0; /* 1 means make tag label lowercase */ + #endif // BAR_TAGLABELS_PATCH + #if BAR_UNDERLINETAGS_PATCH +@@ -488,7 +488,9 @@ static const Rule rules[] = { + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) +- RULE(.class = "Alacritty", .isterminal = 1) ++ RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") ++ RULE(.class = "Chromium-browser-chromium", .label = "\uf268") ++ RULE(.class = "firefox", .label = "\uf269") + #if SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) + #endif // SCRATCHPADS_PATCH +diff --git a/dwm.c b/dwm.c +index 48a5fe9..8977752 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -344,6 +344,7 @@ struct XkbInfo { + typedef struct Client Client; + struct Client { + char name[256]; ++ char label[48]; + float mina, maxa; + #if CFACTS_PATCH + float cfact; +@@ -534,6 +535,7 @@ typedef struct { + #endif // WINDOWROLERULE_PATCH + const char *instance; + const char *title; ++ const char *label; + const char *wintype; + unsigned int tags; + #if SWITCHTAG_PATCH +@@ -880,6 +882,9 @@ applyrules(Client *c) + class = ch.res_class ? ch.res_class : broken; + instance = ch.res_name ? ch.res_name : broken; + wintype = getatomprop(c, netatom[NetWMWindowType], XA_ATOM); ++ ++ snprintf(c->label, 48, "%s", class); ++ + #if WINDOWROLERULE_PATCH + gettextprop(c->win, wmatom[WMWindowRole], role, sizeof(role)); + #endif // WINDOWROLERULE_PATCH +@@ -899,6 +904,8 @@ applyrules(Client *c) + && (!r->instance || strstr(instance, r->instance)) + && (!r->wintype || wintype == XInternAtom(dpy, r->wintype, False))) + { ++ if (r->label) snprintf(c->label, 48, "%s", r->label); ++ + #if CENTER_PATCH + c->iscentered = r->iscentered; + #endif // CENTER_PATCH +diff --git a/patch/bar_taglabels.c b/patch/bar_taglabels.c +index 9e6d441..f00a7be 100644 +--- a/patch/bar_taglabels.c ++++ b/patch/bar_taglabels.c +@@ -17,17 +17,15 @@ width_taglabels(Bar *bar, BarArg *a) + continue; + #endif // BAR_HIDEVACANTTAGS_PATCH + icon = tagicon(m, i); +- XClassHint ch = { NULL, NULL }; ++ char *label = NULL; + for (c = m->clients; c; c = c->next) { + if (c->tags & (1 << i)) { +- XGetClassHint(dpy, c->win, &ch); ++ label = c->label; + break; + } + } +- if (ch.res_class) { +- if (lcaselbl) +- ch.res_class[0] = tolower(ch.res_class[0]); +- snprintf(m->taglabel[i], 64, ptagf, icon, ch.res_class); ++ if (label) { ++ snprintf(m->taglabel[i], 64, ptagf, icon, label); + } else + snprintf(m->taglabel[i], 64, etagf, icon); + +-- +2.38.0 + + +From 436eb252e453829b42120b3b30a35ea21e73ccb4 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 21 Apr 2022 01:55:12 +0200 +Subject: [PATCH 21/28] no swallow syncplay mpv + +--- + config.def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index cb25bfd..25df128 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -487,7 +487,7 @@ static const Rule rules[] = { + RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) +- RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1) ++ RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1, .noswallow = 1) + RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") + RULE(.class = "Chromium-browser-chromium", .label = "\uf268") + RULE(.class = "firefox", .label = "\uf269") +-- +2.38.0 + + +From b34653a29b744c91fcda8912baf16c96e41c11b5 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 21 Apr 2022 13:39:36 +0200 +Subject: [PATCH 22/28] add thunderbird and ardour labels + +--- + config.def.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index 25df128..8ae74ee 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -483,7 +483,7 @@ static const Rule rules[] = { + RULE(.wintype = WTYPE "TOOLBAR", .isfloating = 1) + RULE(.wintype = WTYPE "SPLASH", .isfloating = 1) + RULE(.class = "Carla2", .tags = 1 << 8, .monitor = 0, .switchtag = 0, .ispermanent = 1) +- RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) ++ RULE(.class = "Ardour", .tags = 1 << 8, .monitor = 0, .ispermanent = 1, .label = "\uf025") + RULE(.class = "easyeffects", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "Agordejo", .tags = 1 << 8, .monitor = 0, .ispermanent = 1) + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) +@@ -491,6 +491,7 @@ static const Rule rules[] = { + RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") + RULE(.class = "Chromium-browser-chromium", .label = "\uf268") + RULE(.class = "firefox", .label = "\uf269") ++ RULE(.class = "Thunderbird", .label = "\uf01c") + #if SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) + #endif // SCRATCHPADS_PATCH +-- +2.38.0 + + +From c07580e6afce63f43eb8e358a32bb7729f3e56bb Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 5 May 2022 17:29:55 +0200 +Subject: [PATCH 23/28] use rofi run + +--- + config.def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index 8ae74ee..92779c6 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -849,7 +849,7 @@ static const char *xkb_layouts[] = { + + /* commands */ + static const char *dmenucmd[] = { +- "rofi", "-combi-modi", "window,run", "-show", "combi", NULL ++ "rofi", "-show", "run", NULL + }; + static const char *termcmd[] = { "st", NULL }; + static const char *passmenucmd[] = { "passmenu", NULL }; +-- +2.38.0 + + +From d6d0e5ed750d14b9a076597e02a8fb2d903026e0 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 26 May 2022 22:32:57 +0200 +Subject: [PATCH 24/28] add st as terminal + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index 92779c6..ccb9ed1 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -489,6 +489,7 @@ static const Rule rules[] = { + RULE(.class = "qBittorrent", .tags = 1 << 6, .switchtag = 1, .monitor = 0) + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1, .noswallow = 1) + RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") ++ RULE(.class = "st-256color", .isterminal = 1, .label = "\uf120") + RULE(.class = "Chromium-browser-chromium", .label = "\uf268") + RULE(.class = "firefox", .label = "\uf269") + RULE(.class = "Thunderbird", .label = "\uf01c") +-- +2.38.0 + + +From 781fec2e6fcc618c03fa2121b7652e2406e72743 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Mon, 30 May 2022 01:53:40 +0200 +Subject: [PATCH 25/28] add discord icon ig + +--- + config.def.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.def.h b/config.def.h +index ccb9ed1..7abedf9 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -490,6 +490,7 @@ static const Rule rules[] = { + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1, .noswallow = 1) + RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") + RULE(.class = "st-256color", .isterminal = 1, .label = "\uf120") ++ RULE(.class = "discord", .label = "\uf2ee") + RULE(.class = "Chromium-browser-chromium", .label = "\uf268") + RULE(.class = "firefox", .label = "\uf269") + RULE(.class = "Thunderbird", .label = "\uf01c") +-- +2.38.0 + + +From e527ef804e75c91ba7a6674f0d899f26ba71be25 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 2 Jun 2022 16:00:25 +0200 +Subject: [PATCH 26/28] set correct fontawesome discord character + +--- + config.def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index 7abedf9..3ffb428 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -490,7 +490,7 @@ static const Rule rules[] = { + RULE(.class = "mpv", .instance = "syncplay-mpv", .monitor = 1, .noswallow = 1) + RULE(.class = "Alacritty", .isterminal = 1, .label = "\uf120") + RULE(.class = "st-256color", .isterminal = 1, .label = "\uf120") +- RULE(.class = "discord", .label = "\uf2ee") ++ RULE(.class = "discord", .label = "\uf392") + RULE(.class = "Chromium-browser-chromium", .label = "\uf268") + RULE(.class = "firefox", .label = "\uf269") + RULE(.class = "Thunderbird", .label = "\uf01c") +-- +2.38.0 + + +From 4feef60821f70357ee6c57da7a4403c135463460 Mon Sep 17 00:00:00 2001 +From: odrling +Date: Thu, 28 Jul 2022 14:55:49 +0200 +Subject: [PATCH 27/28] set pid to rofi + +--- + config.def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index 3ffb428..959db72 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -851,7 +851,7 @@ static const char *xkb_layouts[] = { + + /* commands */ + static const char *dmenucmd[] = { +- "rofi", "-show", "run", NULL ++ "rofi", "-pid", "/tmp/rofi", "-show", "run", NULL + }; + static const char *termcmd[] = { "st", NULL }; + static const char *passmenucmd[] = { "passmenu", NULL }; +-- +2.38.0 + + +From 85b9d55b033be2e2ff882ac8a617a313cef4d2dc Mon Sep 17 00:00:00 2001 +From: odrling +Date: Tue, 11 Oct 2022 17:52:33 +0200 +Subject: [PATCH 28/28] add windowmenu + +--- + config.def.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 959db72..5c60b41 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -853,6 +853,9 @@ static const char *xkb_layouts[] = { + static const char *dmenucmd[] = { + "rofi", "-pid", "/tmp/rofi", "-show", "run", NULL + }; ++static const char *windowmenu[] = { ++ "rofi", "-modi", "window", "-show", "window", NULL ++}; + static const char *termcmd[] = { "st", NULL }; + static const char *passmenucmd[] = { "passmenu", NULL }; + static const char *webmenucmd[] = { "webmenu", NULL }; +@@ -890,6 +893,7 @@ static const Key keys[] = { + #endif // KEYMODES_PATCH + { MODKEY, XK_o, spawn, {.v = dmenucmd } }, + { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, ++ { MODKEY, XK_w, spawn, {.v = windowmenu} }, + #if RIODRAW_PATCH + { MODKEY|ControlMask, XK_p, riospawnsync, {.v = dmenucmd } }, + { MODKEY|ControlMask, XK_Return, riospawn, {.v = termcmd } }, +-- +2.38.0