summaryrefslogtreecommitdiff
path: root/modules/nixos/dwm.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/dwm.nix')
-rw-r--r--modules/nixos/dwm.nix254
1 files changed, 133 insertions, 121 deletions
diff --git a/modules/nixos/dwm.nix b/modules/nixos/dwm.nix
index a32ed29..912be0c 100644
--- a/modules/nixos/dwm.nix
+++ b/modules/nixos/dwm.nix
@@ -4,9 +4,11 @@
pkgs,
...
}:
-with lib; let
+with lib;
+let
cfg = config.nixfiles.modules.dwm;
-in {
+in
+{
options.nixfiles.modules.dwm.enable = mkEnableOption "dwm";
config = mkIf cfg.enable {
@@ -15,134 +17,137 @@ in {
hm.xsession = {
enable = true;
- windowManager.command = let
- pkg = pkgs.dwm.override {
- conf = let
- font = with config.stylix.fonts; "${monospace.name}:size=${toString sizes.terminal}";
- in ''
- static const unsigned int borderpx = 1;
- static const unsigned int snap = 32;
- static const int showbar = 1;
- static const int topbar = 1;
+ windowManager.command =
+ let
+ pkg = pkgs.dwm.override {
+ conf =
+ let
+ font = with config.stylix.fonts; "${monospace.name}:size=${toString sizes.terminal}";
+ in
+ ''
+ 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[] = {
- "${font}"
- };
+ static const char *fonts[] = {
+ "${font}"
+ };
- static const char *colors[][3] = {
- [SchemeNorm] = {
- "${config.color.base06}",
- "${config.color.base01}",
- "${config.color.base01}",
- },
- [SchemeSel] = {
- "${config.color.base01}",
- "${config.color.base06}",
- "${config.color.base06}",
- },
- };
+ static const char *colors[][3] = {
+ [SchemeNorm] = {
+ "${config.color.base06}",
+ "${config.color.base01}",
+ "${config.color.base01}",
+ },
+ [SchemeSel] = {
+ "${config.color.base01}",
+ "${config.color.base06}",
+ "${config.color.base06}",
+ },
+ };
- static const char *tags[] = {
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9"
- };
+ static const char *tags[] = {
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9"
+ };
- static const Rule rules[] = {
- { "Emacs", NULL, NULL, 1 << 0, 0, -1 },
- };
+ static const Rule rules[] = {
+ { "Emacs", NULL, NULL, 1 << 0, 0, -1 },
+ };
- static const float mfact = 0.666;
- static const int nmaster = 1;
- static const int resizehints = 0;
- static const int lockfullscreen = 1;
+ static const float mfact = 0.666;
+ static const int nmaster = 1;
+ static const int resizehints = 0;
+ static const int lockfullscreen = 1;
- static const Layout layouts[] = {
- { "[]=", tile },
- { "><>", NULL },
- { "[M]", monocle },
- };
+ 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 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 } },
- static char dmenumon[2] = "0";
- static const char *dmenucmd[] = {
- "${pkgs.dmenu}/bin/dmenu_run",
- "-m", dmenumon,
- "-fn", "${font}",
- "-nb", "${config.color.base01}",
- "-nf", "${config.color.base06}",
- "-sb", "${config.color.base06}",
- "-sf", "${config.color.base01}",
- NULL,
- };
- static const char *termcmd[] = {
- "${getExe pkgs.alacritty}",
- NULL,
- };
+ static char dmenumon[2] = "0";
+ static const char *dmenucmd[] = {
+ "${pkgs.dmenu}/bin/dmenu_run",
+ "-m", dmenumon,
+ "-fn", "${font}",
+ "-nb", "${config.color.base01}",
+ "-nf", "${config.color.base06}",
+ "-sb", "${config.color.base06}",
+ "-sf", "${config.color.base01}",
+ NULL,
+ };
+ static const char *termcmd[] = {
+ "${getExe pkgs.alacritty}",
+ NULL,
+ };
- static const Key keys[] = {
- { MODKEY, XK_x, spawn, {.v = dmenucmd} },
- { MODKEY, XK_Return, spawn, {.v = termcmd} },
- { MODKEY, XK_b, togglebar, {0} },
- { MODKEY, XK_j, focusstack, {.i = +1} },
- { MODKEY, XK_k, focusstack, {.i = -1} },
- { MODKEY|ShiftMask, XK_k, incnmaster, {.i = +1} },
- { MODKEY|ShiftMask, XK_j, incnmaster, {.i = -1} },
- { MODKEY, XK_comma, setmfact, {.f = -0.05} },
- { MODKEY, XK_period, setmfact, {.f = +0.05} },
- { MODKEY, XK_p, zoom, {0} },
- { MODKEY, XK_Tab, view, {0} },
- { MODKEY, XK_d, killclient, {0} },
- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
- { MODKEY, XK_m, setlayout, {.v = &layouts[1]} },
- { MODKEY, XK_f, setlayout, {.v = &layouts[2]} },
- { MODKEY, XK_o, togglefloating, {0} },
- { MODKEY, XK_0, view, {.ui = ~0} },
- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0} },
- { MODKEY, XK_h, focusmon, {.i = -1} },
- { MODKEY, XK_l, focusmon, {.i = +1} },
- { MODKEY|ShiftMask, XK_h, tagmon, {.i = -1} },
- { MODKEY|ShiftMask, XK_l, 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} },
- };
+ static const Key keys[] = {
+ { MODKEY, XK_x, spawn, {.v = dmenucmd} },
+ { MODKEY, XK_Return, spawn, {.v = termcmd} },
+ { MODKEY, XK_b, togglebar, {0} },
+ { MODKEY, XK_j, focusstack, {.i = +1} },
+ { MODKEY, XK_k, focusstack, {.i = -1} },
+ { MODKEY|ShiftMask, XK_k, incnmaster, {.i = +1} },
+ { MODKEY|ShiftMask, XK_j, incnmaster, {.i = -1} },
+ { MODKEY, XK_comma, setmfact, {.f = -0.05} },
+ { MODKEY, XK_period, setmfact, {.f = +0.05} },
+ { MODKEY, XK_p, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY, XK_d, killclient, {0} },
+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XK_m, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XK_f, setlayout, {.v = &layouts[2]} },
+ { MODKEY, XK_o, togglefloating, {0} },
+ { MODKEY, XK_0, view, {.ui = ~0} },
+ { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0} },
+ { MODKEY, XK_h, focusmon, {.i = -1} },
+ { MODKEY, XK_l, focusmon, {.i = +1} },
+ { MODKEY|ShiftMask, XK_h, tagmon, {.i = -1} },
+ { MODKEY|ShiftMask, XK_l, 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} },
+ };
- 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} },
- };
- '';
- };
- in
+ 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} },
+ };
+ '';
+ };
+ in
getExe' pkg "dwm";
};
@@ -151,7 +156,14 @@ in {
# package = pkgs.dwm-status.override {
# enableAlsaUtils = false;
# };
- order = ["audio" "backlight" "battery" "cpu_load" "network" "time"];
+ order = [
+ "audio"
+ "backlight"
+ "battery"
+ "cpu_load"
+ "network"
+ "time"
+ ];
};
services.xserver.displayManager.startx.enable = true;