diff --git a/nix/hosts/t490/services/dwm.nix b/nix/hosts/t490/services/dwm.nix
index edaa3a3e..fdaf6ec1 100644
--- a/nix/hosts/t490/services/dwm.nix
+++ b/nix/hosts/t490/services/dwm.nix
@@ -32,11 +32,113 @@ with lib;
         windowManager.dwm = {
           enable = true;
 
-          package = pkgs.dwm.overrideAttrs (oldAttrs: {
-            patches = with pkgs; [
-              "${self}/patches/dwm/add-custom-commands-and-keys.patch"
-              "${self}/patches/dwm/change-mod-key.patch"
+          package = pkgs.dwm.override {
+            conf = ''
+              static const unsigned int borderpx  = 1;
+              static const unsigned int snap = 32;
+              static const int showbar = 1;
+              static const int topbar = 1;
+              static const char *fonts[] = { "monospace:size=10" };
+              static const char dmenufont[] = "monospace:size=10";
+              static const char col_gray1[] = "#222222";
+              static const char col_gray2[] = "#444444";
+              static const char col_gray3[] = "#bbbbbb";
+              static const char col_gray4[] = "#eeeeee";
+              static const char col_cyan[]  = "#005577";
+              static const char *colors[][3] = {
+                [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
+                [SchemeSel]  = { col_gray4, col_cyan,  col_cyan  },
+              };
 
+              static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+              static const Rule rules[] = {
+                { "Gimp",     NULL,       NULL,       0,            1,           -1 },
+                { "Firefox",  NULL,       NULL,       1 << 8,       0,           -1 },
+              };
+
+              static const float mfact     = 0.55;
+              static const int nmaster     = 1;
+              static const int resizehints = 1;
+              static const int lockfullscreen = 1;
+
+              static const Layout layouts[] = {
+                { "[]=", tile },
+                { "><>", NULL },
+                { "[M]", monocle },
+              };
+
+              #define MODKEY Mod4Mask
+
+              #define TAGKEYS(KEY,TAG) \
+                { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
+                { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
+                { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
+                { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },
+
+              #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+              static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
+              static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
+              static const char *termcmd[]  = { "st", NULL };
+
+              static const Key keys[] = {
+                { MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
+                { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
+                { MODKEY,                       XK_b,      togglebar,      {0} },
+                { MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
+                { MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
+                { MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
+                { MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
+                { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
+                { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
+                { MODKEY,                       XK_Return, zoom,           {0} },
+                { MODKEY,                       XK_Tab,    view,           {0} },
+                { MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
+                { MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} },
+                { MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} },
+                { MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} },
+                { MODKEY,                       XK_space,  setlayout,      {0} },
+                { MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
+                { MODKEY,                       XK_0,      view,           {.ui = ~0 } },
+                { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
+                { 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 } },
+                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)
+                { MODKEY|ShiftMask,             XK_q,      quit,           {0} },
+                { MODKEY|ShiftMask,             XK_b,      spawn,          SHCMD("${pkgs.firefox}/bin/firefox") },
+                { MODKEY|ShiftMask,             XK_f,      spawn,          SHCMD("${pkgs.xfce.thunar}/bin/thunar") },
+                { MODKEY|ShiftMask,             XK_i,      spawn,          SHCMD("${pkgs.xdotool}/bin/xdotool type $(grep -v '^#' ~/snippets.txt | sort | dmenu -i -l 50 | cut -d' ' -f1)") },
+                { MODKEY|ShiftMask,             XK_s,      spawn,          SHCMD("${pkgs.flameshot}/bin/flameshot gui") },
+                { MODKEY|ShiftMask,             XK_y,      spawn,          SHCMD("${pkgs.copyq}/bin/copyq toggle") },
+              };
+
+              static const Button buttons[] = {
+                { ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
+                { ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
+                { ClkWinTitle,          0,              Button2,        zoom,           {0} },
+                { ClkStatusText,        0,              Button2,        spawn,          {.v = termcmd } },
+                { ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
+                { ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
+                { ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
+                { ClkTagBar,            0,              Button1,        view,           {0} },
+                { ClkTagBar,            0,              Button3,        toggleview,     {0} },
+                { ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
+                { ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
+              };
+            '';
+
+            patches = with pkgs; [
               (fetchpatch {
                 url = "https://dwm.suckless.org/patches/hide_vacant_tags/dwm-hide_vacant_tags-6.4.diff";
                 sha256 = "GIbRW0Inwbp99rsKLfIDGvPwZ3pqihROMBp5vFlHx5Q=";
@@ -47,7 +149,7 @@ with lib;
                 sha256 = "wRZP/27V7xYOBnFAGxqeJFXdoDk4K1EQMA3bEoAXr/0=";
               })
             ];
-          });
+          };
         };
       };
     };
@@ -60,9 +162,342 @@ with lib;
       networkmanager_dmenu
 
       (st.override {
-        patches = with pkgs; [
-          "${self}/patches/st/change-font.patch"
+        config = ''
 
+          static char *font = "MesloLGSNerdFontMono:pixelsize=15:antialias=true:autohint=true";
+          static int borderpx = 2;
+
+          static char *shell = "/bin/sh";
+          char *utmp = NULL;
+          char *scroll = NULL;
+          char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
+
+          char *vtiden = "\033[?6c";
+
+          static float cwscale = 1.0;
+          static float chscale = 1.0;
+
+          wchar_t *worddelimiters = L" ";
+
+          static unsigned int doubleclicktimeout = 300;
+          static unsigned int tripleclicktimeout = 600;
+
+          int allowaltscreen = 1;
+
+          int allowwindowops = 0;
+
+          static double minlatency = 2;
+          static double maxlatency = 33;
+
+          static unsigned int blinktimeout = 800;
+
+          static unsigned int cursorthickness = 2;
+
+          static int bellvolume = 0;
+
+          char *termname = "st-256color";
+
+          unsigned int tabspaces = 8;
+
+          static const char *colorname[] = {
+            "black",
+            "red3",
+            "green3",
+            "yellow3",
+            "blue2",
+            "magenta3",
+            "cyan3",
+            "gray90",
+
+            "gray50",
+            "red",
+            "green",
+            "yellow",
+            "#5c5cff",
+            "magenta",
+            "cyan",
+            "white",
+
+            [255] = 0,
+
+            "#cccccc",
+            "#555555",
+            "gray90",
+            "black",
+          };
+
+          unsigned int defaultfg = 258;
+          unsigned int defaultbg = 259;
+          unsigned int defaultcs = 256;
+          static unsigned int defaultrcs = 257;
+
+          static unsigned int cursorshape = 2;
+
+          static unsigned int cols = 80;
+          static unsigned int rows = 24;
+
+          static unsigned int mouseshape = XC_xterm;
+          static unsigned int mousefg = 7;
+          static unsigned int mousebg = 0;
+
+          static unsigned int defaultattr = 11;
+
+          static uint forcemousemod = ShiftMask;
+
+          static MouseShortcut mshortcuts[] = {
+            { XK_ANY_MOD,           Button2, selpaste,       {.i = 0},      1 },
+            { ShiftMask,            Button4, ttysend,        {.s = "\033[5;2~"} },
+            { XK_ANY_MOD,           Button4, ttysend,        {.s = "\031"} },
+            { ShiftMask,            Button5, ttysend,        {.s = "\033[6;2~"} },
+            { XK_ANY_MOD,           Button5, ttysend,        {.s = "\005"} },
+          };
+
+          #define MODKEY Mod1Mask
+          #define TERMMOD (ControlMask|ShiftMask)
+
+          static Shortcut shortcuts[] = {
+            { XK_ANY_MOD,           XK_Break,       sendbreak,      {.i =  0} },
+            { 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_Home,        zoomreset,      {.f =  0} },
+            { TERMMOD,              XK_C,           clipcopy,       {.i =  0} },
+            { TERMMOD,              XK_V,           clippaste,      {.i =  0} },
+            { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },
+            { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
+            { TERMMOD,              XK_Num_Lock,    numlock,        {.i =  0} },
+          };
+
+          static KeySym mappedkeys[] = { -1 };
+
+          static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
+
+          static Key key[] = {
+            /* keysym           mask            string      appkey appcursor */
+            { XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1},
+            { XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1},
+            { XK_KP_Home,       XK_ANY_MOD,     "\033[H",        0,   -1},
+            { XK_KP_Home,       XK_ANY_MOD,     "\033[1~",       0,   +1},
+            { XK_KP_Up,         XK_ANY_MOD,     "\033Ox",       +1,    0},
+            { XK_KP_Up,         XK_ANY_MOD,     "\033[A",        0,   -1},
+            { XK_KP_Up,         XK_ANY_MOD,     "\033OA",        0,   +1},
+            { XK_KP_Down,       XK_ANY_MOD,     "\033Or",       +1,    0},
+            { XK_KP_Down,       XK_ANY_MOD,     "\033[B",        0,   -1},
+            { XK_KP_Down,       XK_ANY_MOD,     "\033OB",        0,   +1},
+            { XK_KP_Left,       XK_ANY_MOD,     "\033Ot",       +1,    0},
+            { XK_KP_Left,       XK_ANY_MOD,     "\033[D",        0,   -1},
+            { XK_KP_Left,       XK_ANY_MOD,     "\033OD",        0,   +1},
+            { XK_KP_Right,      XK_ANY_MOD,     "\033Ov",       +1,    0},
+            { XK_KP_Right,      XK_ANY_MOD,     "\033[C",        0,   -1},
+            { XK_KP_Right,      XK_ANY_MOD,     "\033OC",        0,   +1},
+            { XK_KP_Prior,      ShiftMask,      "\033[5;2~",     0,    0},
+            { XK_KP_Prior,      XK_ANY_MOD,     "\033[5~",       0,    0},
+            { XK_KP_Begin,      XK_ANY_MOD,     "\033[E",        0,    0},
+            { XK_KP_End,        ControlMask,    "\033[J",       -1,    0},
+            { XK_KP_End,        ControlMask,    "\033[1;5F",    +1,    0},
+            { XK_KP_End,        ShiftMask,      "\033[K",       -1,    0},
+            { XK_KP_End,        ShiftMask,      "\033[1;2F",    +1,    0},
+            { XK_KP_End,        XK_ANY_MOD,     "\033[4~",       0,    0},
+            { XK_KP_Next,       ShiftMask,      "\033[6;2~",     0,    0},
+            { XK_KP_Next,       XK_ANY_MOD,     "\033[6~",       0,    0},
+            { XK_KP_Insert,     ShiftMask,      "\033[2;2~",    +1,    0},
+            { XK_KP_Insert,     ShiftMask,      "\033[4l",      -1,    0},
+            { XK_KP_Insert,     ControlMask,    "\033[L",       -1,    0},
+            { XK_KP_Insert,     ControlMask,    "\033[2;5~",    +1,    0},
+            { XK_KP_Insert,     XK_ANY_MOD,     "\033[4h",      -1,    0},
+            { XK_KP_Insert,     XK_ANY_MOD,     "\033[2~",      +1,    0},
+            { XK_KP_Delete,     ControlMask,    "\033[M",       -1,    0},
+            { XK_KP_Delete,     ControlMask,    "\033[3;5~",    +1,    0},
+            { XK_KP_Delete,     ShiftMask,      "\033[2K",      -1,    0},
+            { XK_KP_Delete,     ShiftMask,      "\033[3;2~",    +1,    0},
+            { XK_KP_Delete,     XK_ANY_MOD,     "\033[P",       -1,    0},
+            { XK_KP_Delete,     XK_ANY_MOD,     "\033[3~",      +1,    0},
+            { XK_KP_Multiply,   XK_ANY_MOD,     "\033Oj",       +2,    0},
+            { XK_KP_Add,        XK_ANY_MOD,     "\033Ok",       +2,    0},
+            { XK_KP_Enter,      XK_ANY_MOD,     "\033OM",       +2,    0},
+            { XK_KP_Enter,      XK_ANY_MOD,     "\r",           -1,    0},
+            { XK_KP_Subtract,   XK_ANY_MOD,     "\033Om",       +2,    0},
+            { XK_KP_Decimal,    XK_ANY_MOD,     "\033On",       +2,    0},
+            { XK_KP_Divide,     XK_ANY_MOD,     "\033Oo",       +2,    0},
+            { XK_KP_0,          XK_ANY_MOD,     "\033Op",       +2,    0},
+            { XK_KP_1,          XK_ANY_MOD,     "\033Oq",       +2,    0},
+            { XK_KP_2,          XK_ANY_MOD,     "\033Or",       +2,    0},
+            { XK_KP_3,          XK_ANY_MOD,     "\033Os",       +2,    0},
+            { XK_KP_4,          XK_ANY_MOD,     "\033Ot",       +2,    0},
+            { XK_KP_5,          XK_ANY_MOD,     "\033Ou",       +2,    0},
+            { XK_KP_6,          XK_ANY_MOD,     "\033Ov",       +2,    0},
+            { XK_KP_7,          XK_ANY_MOD,     "\033Ow",       +2,    0},
+            { XK_KP_8,          XK_ANY_MOD,     "\033Ox",       +2,    0},
+            { XK_KP_9,          XK_ANY_MOD,     "\033Oy",       +2,    0},
+            { XK_Up,            ShiftMask,      "\033[1;2A",     0,    0},
+            { XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0},
+            { XK_Up,         ShiftMask|Mod1Mask,"\033[1;4A",     0,    0},
+            { XK_Up,            ControlMask,    "\033[1;5A",     0,    0},
+            { XK_Up,      ShiftMask|ControlMask,"\033[1;6A",     0,    0},
+            { XK_Up,       ControlMask|Mod1Mask,"\033[1;7A",     0,    0},
+            { XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A",  0,    0},
+            { XK_Up,            XK_ANY_MOD,     "\033[A",        0,   -1},
+            { XK_Up,            XK_ANY_MOD,     "\033OA",        0,   +1},
+            { XK_Down,          ShiftMask,      "\033[1;2B",     0,    0},
+            { XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0},
+            { XK_Down,       ShiftMask|Mod1Mask,"\033[1;4B",     0,    0},
+            { XK_Down,          ControlMask,    "\033[1;5B",     0,    0},
+            { XK_Down,    ShiftMask|ControlMask,"\033[1;6B",     0,    0},
+            { XK_Down,     ControlMask|Mod1Mask,"\033[1;7B",     0,    0},
+            { XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0,    0},
+            { XK_Down,          XK_ANY_MOD,     "\033[B",        0,   -1},
+            { XK_Down,          XK_ANY_MOD,     "\033OB",        0,   +1},
+            { XK_Left,          ShiftMask,      "\033[1;2D",     0,    0},
+            { XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0},
+            { XK_Left,       ShiftMask|Mod1Mask,"\033[1;4D",     0,    0},
+            { XK_Left,          ControlMask,    "\033[1;5D",     0,    0},
+            { XK_Left,    ShiftMask|ControlMask,"\033[1;6D",     0,    0},
+            { XK_Left,     ControlMask|Mod1Mask,"\033[1;7D",     0,    0},
+            { XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0,    0},
+            { XK_Left,          XK_ANY_MOD,     "\033[D",        0,   -1},
+            { XK_Left,          XK_ANY_MOD,     "\033OD",        0,   +1},
+            { XK_Right,         ShiftMask,      "\033[1;2C",     0,    0},
+            { XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0},
+            { XK_Right,      ShiftMask|Mod1Mask,"\033[1;4C",     0,    0},
+            { XK_Right,         ControlMask,    "\033[1;5C",     0,    0},
+            { XK_Right,   ShiftMask|ControlMask,"\033[1;6C",     0,    0},
+            { XK_Right,    ControlMask|Mod1Mask,"\033[1;7C",     0,    0},
+            { XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0,   0},
+            { XK_Right,         XK_ANY_MOD,     "\033[C",        0,   -1},
+            { XK_Right,         XK_ANY_MOD,     "\033OC",        0,   +1},
+            { XK_ISO_Left_Tab,  ShiftMask,      "\033[Z",        0,    0},
+            { XK_Return,        Mod1Mask,       "\033\r",        0,    0},
+            { XK_Return,        XK_ANY_MOD,     "\r",            0,    0},
+            { XK_Insert,        ShiftMask,      "\033[4l",      -1,    0},
+            { XK_Insert,        ShiftMask,      "\033[2;2~",    +1,    0},
+            { XK_Insert,        ControlMask,    "\033[L",       -1,    0},
+            { XK_Insert,        ControlMask,    "\033[2;5~",    +1,    0},
+            { XK_Insert,        XK_ANY_MOD,     "\033[4h",      -1,    0},
+            { XK_Insert,        XK_ANY_MOD,     "\033[2~",      +1,    0},
+            { XK_Delete,        ControlMask,    "\033[M",       -1,    0},
+            { XK_Delete,        ControlMask,    "\033[3;5~",    +1,    0},
+            { XK_Delete,        ShiftMask,      "\033[2K",      -1,    0},
+            { XK_Delete,        ShiftMask,      "\033[3;2~",    +1,    0},
+            { XK_Delete,        XK_ANY_MOD,     "\033[P",       -1,    0},
+            { XK_Delete,        XK_ANY_MOD,     "\033[3~",      +1,    0},
+            { XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0},
+            { XK_BackSpace,     Mod1Mask,       "\033\177",      0,    0},
+            { XK_Home,          ShiftMask,      "\033[2J",       0,   -1},
+            { XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1},
+            { XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1},
+            { XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1},
+            { XK_End,           ControlMask,    "\033[J",       -1,    0},
+            { XK_End,           ControlMask,    "\033[1;5F",    +1,    0},
+            { XK_End,           ShiftMask,      "\033[K",       -1,    0},
+            { XK_End,           ShiftMask,      "\033[1;2F",    +1,    0},
+            { XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0},
+            { XK_Prior,         ControlMask,    "\033[5;5~",     0,    0},
+            { XK_Prior,         ShiftMask,      "\033[5;2~",     0,    0},
+            { XK_Prior,         XK_ANY_MOD,     "\033[5~",       0,    0},
+            { XK_Next,          ControlMask,    "\033[6;5~",     0,    0},
+            { XK_Next,          ShiftMask,      "\033[6;2~",     0,    0},
+            { XK_Next,          XK_ANY_MOD,     "\033[6~",       0,    0},
+            { XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0},
+            { XK_F1, /* F13 */  ShiftMask,      "\033[1;2P",     0,    0},
+            { XK_F1, /* F25 */  ControlMask,    "\033[1;5P",     0,    0},
+            { XK_F1, /* F37 */  Mod4Mask,       "\033[1;6P",     0,    0},
+            { XK_F1, /* F49 */  Mod1Mask,       "\033[1;3P",     0,    0},
+            { XK_F1, /* F61 */  Mod3Mask,       "\033[1;4P",     0,    0},
+            { XK_F2,            XK_NO_MOD,      "\033OQ" ,       0,    0},
+            { XK_F2, /* F14 */  ShiftMask,      "\033[1;2Q",     0,    0},
+            { XK_F2, /* F26 */  ControlMask,    "\033[1;5Q",     0,    0},
+            { XK_F2, /* F38 */  Mod4Mask,       "\033[1;6Q",     0,    0},
+            { XK_F2, /* F50 */  Mod1Mask,       "\033[1;3Q",     0,    0},
+            { XK_F2, /* F62 */  Mod3Mask,       "\033[1;4Q",     0,    0},
+            { XK_F3,            XK_NO_MOD,      "\033OR" ,       0,    0},
+            { XK_F3, /* F15 */  ShiftMask,      "\033[1;2R",     0,    0},
+            { XK_F3, /* F27 */  ControlMask,    "\033[1;5R",     0,    0},
+            { XK_F3, /* F39 */  Mod4Mask,       "\033[1;6R",     0,    0},
+            { XK_F3, /* F51 */  Mod1Mask,       "\033[1;3R",     0,    0},
+            { XK_F3, /* F63 */  Mod3Mask,       "\033[1;4R",     0,    0},
+            { XK_F4,            XK_NO_MOD,      "\033OS" ,       0,    0},
+            { XK_F4, /* F16 */  ShiftMask,      "\033[1;2S",     0,    0},
+            { XK_F4, /* F28 */  ControlMask,    "\033[1;5S",     0,    0},
+            { XK_F4, /* F40 */  Mod4Mask,       "\033[1;6S",     0,    0},
+            { XK_F4, /* F52 */  Mod1Mask,       "\033[1;3S",     0,    0},
+            { XK_F5,            XK_NO_MOD,      "\033[15~",      0,    0},
+            { XK_F5, /* F17 */  ShiftMask,      "\033[15;2~",    0,    0},
+            { XK_F5, /* F29 */  ControlMask,    "\033[15;5~",    0,    0},
+            { XK_F5, /* F41 */  Mod4Mask,       "\033[15;6~",    0,    0},
+            { XK_F5, /* F53 */  Mod1Mask,       "\033[15;3~",    0,    0},
+            { XK_F6,            XK_NO_MOD,      "\033[17~",      0,    0},
+            { XK_F6, /* F18 */  ShiftMask,      "\033[17;2~",    0,    0},
+            { XK_F6, /* F30 */  ControlMask,    "\033[17;5~",    0,    0},
+            { XK_F6, /* F42 */  Mod4Mask,       "\033[17;6~",    0,    0},
+            { XK_F6, /* F54 */  Mod1Mask,       "\033[17;3~",    0,    0},
+            { XK_F7,            XK_NO_MOD,      "\033[18~",      0,    0},
+            { XK_F7, /* F19 */  ShiftMask,      "\033[18;2~",    0,    0},
+            { XK_F7, /* F31 */  ControlMask,    "\033[18;5~",    0,    0},
+            { XK_F7, /* F43 */  Mod4Mask,       "\033[18;6~",    0,    0},
+            { XK_F7, /* F55 */  Mod1Mask,       "\033[18;3~",    0,    0},
+            { XK_F8,            XK_NO_MOD,      "\033[19~",      0,    0},
+            { XK_F8, /* F20 */  ShiftMask,      "\033[19;2~",    0,    0},
+            { XK_F8, /* F32 */  ControlMask,    "\033[19;5~",    0,    0},
+            { XK_F8, /* F44 */  Mod4Mask,       "\033[19;6~",    0,    0},
+            { XK_F8, /* F56 */  Mod1Mask,       "\033[19;3~",    0,    0},
+            { XK_F9,            XK_NO_MOD,      "\033[20~",      0,    0},
+            { XK_F9, /* F21 */  ShiftMask,      "\033[20;2~",    0,    0},
+            { XK_F9, /* F33 */  ControlMask,    "\033[20;5~",    0,    0},
+            { XK_F9, /* F45 */  Mod4Mask,       "\033[20;6~",    0,    0},
+            { XK_F9, /* F57 */  Mod1Mask,       "\033[20;3~",    0,    0},
+            { XK_F10,           XK_NO_MOD,      "\033[21~",      0,    0},
+            { XK_F10, /* F22 */ ShiftMask,      "\033[21;2~",    0,    0},
+            { XK_F10, /* F34 */ ControlMask,    "\033[21;5~",    0,    0},
+            { XK_F10, /* F46 */ Mod4Mask,       "\033[21;6~",    0,    0},
+            { XK_F10, /* F58 */ Mod1Mask,       "\033[21;3~",    0,    0},
+            { XK_F11,           XK_NO_MOD,      "\033[23~",      0,    0},
+            { XK_F11, /* F23 */ ShiftMask,      "\033[23;2~",    0,    0},
+            { XK_F11, /* F35 */ ControlMask,    "\033[23;5~",    0,    0},
+            { XK_F11, /* F47 */ Mod4Mask,       "\033[23;6~",    0,    0},
+            { XK_F11, /* F59 */ Mod1Mask,       "\033[23;3~",    0,    0},
+            { XK_F12,           XK_NO_MOD,      "\033[24~",      0,    0},
+            { XK_F12, /* F24 */ ShiftMask,      "\033[24;2~",    0,    0},
+            { XK_F12, /* F36 */ ControlMask,    "\033[24;5~",    0,    0},
+            { XK_F12, /* F48 */ Mod4Mask,       "\033[24;6~",    0,    0},
+            { XK_F12, /* F60 */ Mod1Mask,       "\033[24;3~",    0,    0},
+            { XK_F13,           XK_NO_MOD,      "\033[1;2P",     0,    0},
+            { XK_F14,           XK_NO_MOD,      "\033[1;2Q",     0,    0},
+            { XK_F15,           XK_NO_MOD,      "\033[1;2R",     0,    0},
+            { XK_F16,           XK_NO_MOD,      "\033[1;2S",     0,    0},
+            { XK_F17,           XK_NO_MOD,      "\033[15;2~",    0,    0},
+            { XK_F18,           XK_NO_MOD,      "\033[17;2~",    0,    0},
+            { XK_F19,           XK_NO_MOD,      "\033[18;2~",    0,    0},
+            { XK_F20,           XK_NO_MOD,      "\033[19;2~",    0,    0},
+            { XK_F21,           XK_NO_MOD,      "\033[20;2~",    0,    0},
+            { XK_F22,           XK_NO_MOD,      "\033[21;2~",    0,    0},
+            { XK_F23,           XK_NO_MOD,      "\033[23;2~",    0,    0},
+            { XK_F24,           XK_NO_MOD,      "\033[24;2~",    0,    0},
+            { XK_F25,           XK_NO_MOD,      "\033[1;5P",     0,    0},
+            { XK_F26,           XK_NO_MOD,      "\033[1;5Q",     0,    0},
+            { XK_F27,           XK_NO_MOD,      "\033[1;5R",     0,    0},
+            { XK_F28,           XK_NO_MOD,      "\033[1;5S",     0,    0},
+            { XK_F29,           XK_NO_MOD,      "\033[15;5~",    0,    0},
+            { XK_F30,           XK_NO_MOD,      "\033[17;5~",    0,    0},
+            { XK_F31,           XK_NO_MOD,      "\033[18;5~",    0,    0},
+            { XK_F32,           XK_NO_MOD,      "\033[19;5~",    0,    0},
+            { XK_F33,           XK_NO_MOD,      "\033[20;5~",    0,    0},
+            { XK_F34,           XK_NO_MOD,      "\033[21;5~",    0,    0},
+            { XK_F35,           XK_NO_MOD,      "\033[23;5~",    0,    0},
+          };
+
+          static uint selmasks[] = {
+            [SEL_RECTANGULAR] = Mod1Mask,
+          };
+
+          static char ascii_printable[] =
+            " !\"#$%&'()*+,-./0123456789:;<=>?"
+            "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
+            "`abcdefghijklmnopqrstuvwxyz{|}~";
+        '';
+
+        patches = with pkgs; [
           (fetchpatch {
             url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff";
             sha256 = "yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc=";
diff --git a/patches/dwm/add-custom-commands-and-keys.patch b/patches/dwm/add-custom-commands-and-keys.patch
deleted file mode 100644
index b308520f..00000000
--- a/patches/dwm/add-custom-commands-and-keys.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 9efa774..dd6779a 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -95,6 +95,11 @@ static const Key keys[] = {
- 	TAGKEYS(                        XK_8,                      7)
- 	TAGKEYS(                        XK_9,                      8)
- 	{ MODKEY|ShiftMask,             XK_q,      quit,           {0} },
-+	{ MODKEY|ShiftMask,             XK_b,      spawn,          SHCMD("firefox") },
-+	{ MODKEY|ShiftMask,             XK_f,      spawn,          SHCMD("thunar") },
-+	{ MODKEY|ShiftMask,             XK_s,      spawn,          SHCMD("flameshot gui") },
-+	{ MODKEY|ShiftMask,             XK_y,      spawn,          SHCMD("copyq toggle") },
-+	{ MODKEY,                       XK_Insert, spawn,          SHCMD("xdotool type $(grep -v '^#' ~/snippets.txt | sort | dmenu -i -l 50 | cut -d' ' -f1)") },
- };
- 
- /* button definitions */
diff --git a/patches/dwm/change-mod-key.patch b/patches/dwm/change-mod-key.patch
deleted file mode 100644
index 1aca7148..00000000
--- a/patches/dwm/change-mod-key.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 9efa774..4412cb1 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -45,7 +45,7 @@ static const Layout layouts[] = {
- };
- 
- /* key definitions */
--#define MODKEY Mod1Mask
-+#define MODKEY Mod4Mask
- #define TAGKEYS(KEY,TAG) \
- 	{ MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
- 	{ MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
diff --git a/patches/st/change-font.patch b/patches/st/change-font.patch
deleted file mode 100644
index f73b47f5..00000000
--- a/patches/st/change-font.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 2cd740a..39e4500 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 = "MesloLGSNerdFontMono:pixelsize=15:antialias=true:autohint=true";
- static int borderpx = 2;
- 
- /*