aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--home-manager/.config/home-manager/common/dwl_3/config.h135
-rw-r--r--home-manager/.config/home-manager/common/dwl_4/config.h191
-rw-r--r--home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono-Bold.ttfbin0 -> 20516 bytes
-rw-r--r--home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono.ttfbin0 -> 18724 bytes
-rw-r--r--home-manager/.config/home-manager/common/foot/foot.ini7
-rw-r--r--home-manager/.config/home-manager/common/mako/config25
-rw-r--r--home-manager/.config/home-manager/common/nvim/init.vim40
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/indent-blankline.lua3
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/leap.lua1
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/lspconfig.lua149
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/lualine.lua1
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/telescope.lua16
-rw-r--r--home-manager/.config/home-manager/common/nvim/plugins/trouble.lua3
-rwxr-xr-xhome-manager/.config/home-manager/common/scripts/fixwlr3
-rwxr-xr-xhome-manager/.config/home-manager/common/scripts/spiceconnect3
-rwxr-xr-xhome-manager/.config/home-manager/common/scripts/start33
-rwxr-xr-xhome-manager/.config/home-manager/common/scripts/walp23
-rw-r--r--home-manager/.config/home-manager/common/someblocks/blocks.h13
-rw-r--r--home-manager/.config/home-manager/common/waybar/config78
-rw-r--r--home-manager/.config/home-manager/common/waybar/style.css74
-rw-r--r--home-manager/.config/home-manager/common/wofi/style.css58
-rw-r--r--home-manager/.config/home-manager/flake.lock65
-rw-r--r--home-manager/.config/home-manager/flake.nix66
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-art/configuration.nix125
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-art/hardware-configuration.nix37
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-art/home.nix354
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-art/hosts.nix9
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-deb/home.nix142
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-home/configuration.nix135
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-home/hardware-configuration.nix31
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-home/home.nix190
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-home/hosts.nix9
-rw-r--r--home-manager/.config/home-manager/per-user/kdam0-work/home.nix376
33 files changed, 2395 insertions, 0 deletions
diff --git a/home-manager/.config/home-manager/common/dwl_3/config.h b/home-manager/.config/home-manager/common/dwl_3/config.h
new file mode 100644
index 0000000..30c8ec2
--- /dev/null
+++ b/home-manager/.config/home-manager/common/dwl_3/config.h
@@ -0,0 +1,135 @@
+#include <X11/XF86keysym.h>
+
+/* appearance */
+static const int sloppyfocus = 1; /* focus follows mouse */
+static const unsigned int borderpx = 1; /* border pixel of windows */
+static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
+static const float rootcolor[] = {0.3, 0.3, 0.3, 1.0};
+static const float bordercolor[] = {0.5, 0.5, 0.5, 1.0};
+static const float focuscolor[] = {1.0, 0.0, 0.0, 1.0};
+
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+ /* app_id title tags mask isfloating monitor */
+ /* examples:
+ { "Gimp", NULL, 0, 1, -1 },
+ */
+ { "firefox", NULL, 1 << 8, 0, -1 },
+};
+
+/* layout(s) */
+static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[]=", tile },
+ { "><>", NULL }, /* no layout function means floating behavior */
+ { "[M]", monocle },
+};
+
+/* monitors */
+static const MonitorRule monrules[] = {
+ /* name mfact nmaster scale layout rotate/reflect */
+ /* example of a HiDPI laptop monitor:
+ { "eDP-1", 0.5, 1, 2, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+ */
+ /* defaults */
+ { NULL, 0.55, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+};
+
+/* keyboard */
+static const struct xkb_rule_names xkb_rules = {
+ /* can specify fields: rules, model, layout, variant, options */
+ /* example:
+ .options = "ctrl:nocaps",
+ */
+ .options = "caps:escape",
+};
+
+static const int repeat_rate = 25;
+static const int repeat_delay = 600;
+
+/* Trackpad */
+static const int tap_to_click = 1;
+static const int natural_scrolling = 0;
+
+/* If you want to use the windows key change this to WLR_MODIFIER_LOGO */
+#define MODKEY WLR_MODIFIER_ALT
+#define TAGKEYS(KEY,SKEY,TAG) \
+ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_CTRL, KEY, toggleview, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_SHIFT, SKEY, tag, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT,SKEY,toggletag, {.ui = 1 << TAG} }
+
+/* helper for spawning shell commands in the pre dwm-5.0 fashion */
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+
+/* commands */
+static const char *termcmd[] = { "foot", NULL };
+static const char *menucmd[] = { "wofi", "--show", "run", NULL };
+static const char *volmute[] = { "amixer", "set", "Master", "toggle", NULL };
+static const char *voldown[] = { "amixer", "set", "Master", "10%-", NULL };
+static const char *volup[] = { "amixer", "set", "Master", "10%+", NULL };
+static const char *brightdown[] = { "light", "-U", "10", NULL };
+static const char *brightup[] = { "light", "-A", "10", NULL };
+static const char *hibernatecmd[] = { "systemctl", "hibernate", NULL };
+
+static const Key keys[] = {
+ /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
+ /* modifier key function argument */
+ { MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
+ { MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
+ { MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
+ { MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
+ { MODKEY, XKB_KEY_d, incnmaster, {.i = -1} },
+ { MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
+ { MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
+ { MODKEY, XKB_KEY_Return, zoom, {0} },
+ { MODKEY, XKB_KEY_Tab, view, {0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} },
+ { MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XKB_KEY_f, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XKB_KEY_m, setlayout, {.v = &layouts[2]} },
+ { MODKEY, XKB_KEY_space, setlayout, {0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
+ { MODKEY, XKB_KEY_e, togglefullscreen, {0} },
+ { MODKEY, XKB_KEY_0, view, {.ui = ~0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} },
+ { MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} },
+ { MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_less, tagmon, {.i = WLR_DIRECTION_LEFT} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_greater, tagmon, {.i = WLR_DIRECTION_RIGHT} },
+ // custom binds
+ { 0, XKB_KEY_XF86AudioMute, spawn, {.v = volmute} },
+ { 0, XKB_KEY_XF86AudioLowerVolume, spawn, {.v = voldown} },
+ { 0, XKB_KEY_XF86AudioRaiseVolume, spawn, {.v = volup} },
+ { 0, XKB_KEY_XF86MonBrightnessDown, spawn, {.v = brightdown} },
+ { 0, XKB_KEY_XF86MonBrightnessUp, spawn, {.v = brightup} },
+ { 0, XKB_KEY_Print, spawn, SHCMD("slurp | grim -g - - | wl-copy && notify-send 'Copied selection to clipboard!' && wl-paste > $HOME/pics/$(date +'%Y-%m-%d-%H%M%S_grim.png')") },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Delete, spawn, {.v = hibernatecmd} },
+ TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0),
+ TAGKEYS( XKB_KEY_2, XKB_KEY_at, 1),
+ TAGKEYS( XKB_KEY_3, XKB_KEY_numbersign, 2),
+ TAGKEYS( XKB_KEY_4, XKB_KEY_dollar, 3),
+ TAGKEYS( XKB_KEY_5, XKB_KEY_percent, 4),
+ TAGKEYS( XKB_KEY_6, XKB_KEY_asciicircum, 5),
+ TAGKEYS( XKB_KEY_7, XKB_KEY_ampersand, 6),
+ TAGKEYS( XKB_KEY_8, XKB_KEY_asterisk, 7),
+ TAGKEYS( XKB_KEY_9, XKB_KEY_parenleft, 8),
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Q, quit, {0} },
+
+ /* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
+ { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
+#define CHVT(n) { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_XF86Switch_VT_##n, chvt, {.ui = (n)} }
+ CHVT(1), CHVT(2), CHVT(3), CHVT(4), CHVT(5), CHVT(6),
+ CHVT(7), CHVT(8), CHVT(9), CHVT(10), CHVT(11), CHVT(12),
+};
+
+static const Button buttons[] = {
+ { MODKEY, BTN_LEFT, moveresize, {.ui = CurMove} },
+ { MODKEY, BTN_MIDDLE, togglefloating, {0} },
+ { MODKEY, BTN_RIGHT, moveresize, {.ui = CurResize} },
+};
+
diff --git a/home-manager/.config/home-manager/common/dwl_4/config.h b/home-manager/.config/home-manager/common/dwl_4/config.h
new file mode 100644
index 0000000..e0875a0
--- /dev/null
+++ b/home-manager/.config/home-manager/common/dwl_4/config.h
@@ -0,0 +1,191 @@
+#include <X11/XF86keysym.h>
+
+/* appearance */
+static const int sloppyfocus = 1; /* focus follows mouse */
+static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */
+static const unsigned int borderpx = 1; /* border pixel of windows */
+static const float rootcolor[] = {0.3, 0.3, 0.3, 1.0};
+static const float bordercolor[] = {0.5, 0.5, 0.5, 1.0};
+static const float focuscolor[] = {1.0, 0.0, 0.0, 1.0};
+/* To conform the xdg-protocol, set the alpha to zero to restore the old behavior */
+static const float fullscreen_bg[] = {0.1, 0.1, 0.1, 1.0};
+#define TAGCOUNT (9)
+
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+ /* app_id title tags mask isfloating monitor */
+ /* examples:
+ { "Gimp", NULL, 0, 1, -1 },
+ */
+ { "firefox", NULL, 1 << 8, 0, -1 },
+};
+
+/* layout(s) */
+static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[]=", tile },
+ { "><>", NULL }, /* no layout function means floating behavior */
+ { "[M]", monocle },
+};
+
+/* monitors */
+static const MonitorRule monrules[] = {
+ /* name mfact nmaster scale layout rotate/reflect */
+ /* example of a HiDPI laptop monitor:
+ { "eDP-1", 0.5, 1, 2, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+ */
+ /* defaults */
+ { NULL, 0.55, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+};
+
+/* keyboard */
+static const struct xkb_rule_names xkb_rules = {
+ /* can specify fields: rules, model, layout, variant, options */
+ /* example:
+ .options = "ctrl:nocaps",
+ */
+ .options = "caps:escape",
+};
+
+static const int repeat_rate = 25;
+static const int repeat_delay = 600;
+
+/* Trackpad */
+static const int tap_to_click = 1;
+static const int tap_and_drag = 1;
+static const int drag_lock = 1;
+static const int natural_scrolling = 0;
+static const int disable_while_typing = 1;
+static const int left_handed = 0;
+static const int middle_button_emulation = 0;
+/* You can choose between:
+LIBINPUT_CONFIG_SCROLL_NO_SCROLL
+LIBINPUT_CONFIG_SCROLL_2FG
+LIBINPUT_CONFIG_SCROLL_EDGE
+LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN
+*/
+static const enum libinput_config_scroll_method scroll_method = LIBINPUT_CONFIG_SCROLL_2FG;
+
+/* You can choose between:
+LIBINPUT_CONFIG_CLICK_METHOD_NONE
+LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS
+LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER
+*/
+static const enum libinput_config_click_method click_method = LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS;
+
+/* You can choose between:
+LIBINPUT_CONFIG_SEND_EVENTS_ENABLED
+LIBINPUT_CONFIG_SEND_EVENTS_DISABLED
+LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE
+*/
+static const uint32_t send_events_mode = LIBINPUT_CONFIG_SEND_EVENTS_ENABLED;
+
+/* You can choose between:
+LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT
+LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE
+*/
+static const enum libinput_config_accel_profile accel_profile = LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE;
+static const double accel_speed = 0.0;
+/* You can choose between:
+LIBINPUT_CONFIG_TAP_MAP_LRM -- 1/2/3 finger tap maps to left/right/middle
+LIBINPUT_CONFIG_TAP_MAP_LMR -- 1/2/3 finger tap maps to left/middle/right
+*/
+static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TAP_MAP_LRM;
+
+/* If you want to use the windows key for MODKEY, use WLR_MODIFIER_LOGO */
+#define MODKEY WLR_MODIFIER_ALT
+
+#define TAGKEYS(KEY,SKEY,TAG) \
+ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_CTRL, KEY, toggleview, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_SHIFT, SKEY, tag, {.ui = 1 << TAG} }, \
+ { MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT,SKEY,toggletag, {.ui = 1 << TAG} }
+
+/* helper for spawning shell commands in the pre dwm-5.0 fashion */
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+
+/* commands */
+static const char *termcmd[] = { "foot", NULL };
+static const char *menucmd[] = { "wofi", "--show", "run", NULL };
+static const char *rangercmd[] = { "foot", "-e", "ranger", NULL };
+static const char *volmute[] = { "amixer", "set", "Master", "toggle", NULL };
+static const char *voldown[] = { "amixer", "set", "Master", "10%-", NULL };
+static const char *volup[] = { "amixer", "set", "Master", "10%+", NULL };
+static const char *brightdown[] = { "light", "-U", "10", NULL };
+static const char *brightup[] = { "light", "-A", "10", NULL };
+static const char *hibernatecmd[] = { "systemctl", "hibernate", NULL };
+static const char *lockcmd[] = { "swaylock", "-i", "/tmp/bg", NULL };
+static const char scrotcmd[] = "slurp | \
+ grim -g - - | \
+ wl-copy --type image/png && \
+ notify-send 'Copied selection to clipboard!' && \
+ wl-paste --type image > $HOME/pics/$(date +'%Y-%m-%d-%H%M%S_grim.png')";
+
+static const Key keys[] = {
+ /* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
+ /* modifier key function argument */
+ { MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
+ { MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
+ { MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
+ { MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_i, incnmaster, {.i = -1} },
+ { MODKEY, XKB_KEY_a, rotatetags, {.i = -1} },
+ { MODKEY, XKB_KEY_d, rotatetags, {.i = 1} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_A, rotatetags, {.i = -2} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_D, rotatetags, {.i = 2} },
+ { MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
+ { MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
+ { MODKEY, XKB_KEY_Return, zoom, {0} },
+ { MODKEY, XKB_KEY_Tab, view, {0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} },
+ { MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XKB_KEY_f, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XKB_KEY_m, setlayout, {.v = &layouts[2]} },
+ { MODKEY, XKB_KEY_space, setlayout, {0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
+ { MODKEY, XKB_KEY_e, togglefullscreen, {0} },
+ { MODKEY, XKB_KEY_r, spawn, {.v = rangercmd} },
+ { MODKEY, XKB_KEY_0, view, {.ui = ~0} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} },
+ { MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} },
+ { MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_less, tagmon, {.i = WLR_DIRECTION_LEFT} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_greater, tagmon, {.i = WLR_DIRECTION_RIGHT} },
+ // custom binds
+ { 0, XKB_KEY_XF86AudioMute, spawn, {.v = volmute} },
+ { 0, XKB_KEY_XF86AudioLowerVolume, spawn, {.v = voldown} },
+ { 0, XKB_KEY_XF86AudioRaiseVolume, spawn, {.v = volup} },
+ { 0, XKB_KEY_XF86MonBrightnessDown, spawn, {.v = brightdown} },
+ { 0, XKB_KEY_XF86MonBrightnessUp, spawn, {.v = brightup} },
+ { 0, XKB_KEY_Print, spawn, SHCMD(scrotcmd) },
+ { 0, XKB_KEY_F1, spawn, SHCMD(scrotcmd) },
+ { MODKEY, XKB_KEY_Delete, spawn, {.v = lockcmd} },
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Delete, spawn, {.v = hibernatecmd} },
+ TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0),
+ TAGKEYS( XKB_KEY_2, XKB_KEY_at, 1),
+ TAGKEYS( XKB_KEY_3, XKB_KEY_numbersign, 2),
+ TAGKEYS( XKB_KEY_4, XKB_KEY_dollar, 3),
+ TAGKEYS( XKB_KEY_5, XKB_KEY_percent, 4),
+ TAGKEYS( XKB_KEY_6, XKB_KEY_asciicircum, 5),
+ TAGKEYS( XKB_KEY_7, XKB_KEY_ampersand, 6),
+ TAGKEYS( XKB_KEY_8, XKB_KEY_asterisk, 7),
+ TAGKEYS( XKB_KEY_9, XKB_KEY_parenleft, 8),
+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Q, quit, {0} },
+
+ /* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
+ { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
+#define CHVT(n) { WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_XF86Switch_VT_##n, chvt, {.ui = (n)} }
+ CHVT(1), CHVT(2), CHVT(3), CHVT(4), CHVT(5), CHVT(6),
+ CHVT(7), CHVT(8), CHVT(9), CHVT(10), CHVT(11), CHVT(12),
+};
+
+static const Button buttons[] = {
+ { MODKEY, BTN_LEFT, moveresize, {.ui = CurMove} },
+ { MODKEY, BTN_MIDDLE, togglefloating, {0} },
+ { MODKEY, BTN_RIGHT, moveresize, {.ui = CurResize} },
+};
+
diff --git a/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono-Bold.ttf b/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono-Bold.ttf
new file mode 100644
index 0000000..e03f41e
--- /dev/null
+++ b/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono-Bold.ttf
Binary files differ
diff --git a/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono.ttf b/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono.ttf
new file mode 100644
index 0000000..9bc7354
--- /dev/null
+++ b/home-manager/.config/home-manager/common/fonts/ComicMono/ComicMono.ttf
Binary files differ
diff --git a/home-manager/.config/home-manager/common/foot/foot.ini b/home-manager/.config/home-manager/common/foot/foot.ini
new file mode 100644
index 0000000..8b95524
--- /dev/null
+++ b/home-manager/.config/home-manager/common/foot/foot.ini
@@ -0,0 +1,7 @@
+term=xterm-256color
+font=Comic Mono:size=12
+dpi-aware=yes
+
+[colors]
+alpha=0.7
+
diff --git a/home-manager/.config/home-manager/common/mako/config b/home-manager/.config/home-manager/common/mako/config
new file mode 100644
index 0000000..52a21f1
--- /dev/null
+++ b/home-manager/.config/home-manager/common/mako/config
@@ -0,0 +1,25 @@
+sort=-time
+layer=overlay
+background-color=#2e3440
+width=300
+height=110
+border-size=2
+border-color=#88c0d0
+border-radius=15
+icons=0
+max-icon-size=64
+default-timeout=5000
+ignore-timeout=1
+font=monospace 14
+
+[urgency=low]
+border-color=#cccccc
+
+[urgency=normal]
+border-color=#d08770
+
+[urgency=high]
+border-color=#bf616a
+default-timeout=0
+
+
diff --git a/home-manager/.config/home-manager/common/nvim/init.vim b/home-manager/.config/home-manager/common/nvim/init.vim
new file mode 100644
index 0000000..5a14928
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/init.vim
@@ -0,0 +1,40 @@
+nnoremap <SPACE> <Nop>
+let mapleader = " "
+colorscheme tokyonight-moon
+set number relativenumber
+set cursorline
+
+" Keymaps
+" save
+nmap <Leader>, :w<cr>
+" exit to normal mode
+inoremap jk <Esc>
+" Toggle line chars view
+noremap <Leader>l :set list!<CR>
+
+" Telescope Keymaps
+map <Leader><Space> :Telescope find_files<CR>
+map <Leader>/ :Telescope live_grep<CR>
+map <Leader>g :Telescope git_files<CR>
+map <Leader>: :Telescope command_history<CR>
+
+" Indent blocks in visual mode.
+vnoremap K xkP`[V`]
+vnoremap J xp`[V`]
+vnoremap L >gv
+vnoremap H <gv
+
+" Move beteween splits
+map <C-j> <C-W>j
+map <C-k> <C-W>k
+map <C-h> <C-W>h
+map <C-l> <C-W>l
+
+" Start n³ in the current buffers directory
+let g:nnn#action = {
+ \ '<c-t>': 'tab split',
+ \ '<c-s>': 'split',
+ \ '<c-v>': 'vsplit' }
+nnoremap <Leader>n :NnnPicker %:p:h<CR>
+
+autocmd BufRead,BufNewFile *.yaml set filetype=yaml.ansible
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/indent-blankline.lua b/home-manager/.config/home-manager/common/nvim/plugins/indent-blankline.lua
new file mode 100644
index 0000000..4953cc8
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/indent-blankline.lua
@@ -0,0 +1,3 @@
+vim.opt.listchars:append "eol:↴"
+
+require("ibl").setup()
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/leap.lua b/home-manager/.config/home-manager/common/nvim/plugins/leap.lua
new file mode 100644
index 0000000..c0aeeef
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/leap.lua
@@ -0,0 +1 @@
+require('leap').add_default_mappings()
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/lspconfig.lua b/home-manager/.config/home-manager/common/nvim/plugins/lspconfig.lua
new file mode 100644
index 0000000..bf6bef0
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/lspconfig.lua
@@ -0,0 +1,149 @@
+local servers = {'ansiblels', 'dockerls', 'pylsp', 'bashls', 'jsonls'}
+require('nvim-autopairs').setup({
+ disable_filetype = { "TelescopePrompt" , "vim" },
+})
+require("mason").setup()
+require("mason-lspconfig").setup {
+ ensure_installed = servers
+}
+require("neoconf").setup()
+
+local cmp = require('cmp')
+local cmp_nvim_lsp = require('cmp_nvim_lsp')
+local cmp_autopairs = require('nvim-autopairs.completion.cmp')
+local luasnip = require('luasnip')
+local lspconfig = require('lspconfig')
+
+local capabilities = cmp_nvim_lsp.default_capabilities()
+
+local opts = { noremap=true, silent=true }
+--vim.keymap.set('n', '<space>le', vim.diagnostic.open_float, opts)
+vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
+vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
+--vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
+vim.keymap.set("n", "<leader>xx", "<cmd>TroubleToggle<cr>", opts)
+vim.keymap.set("n", "<leader>xw", "<cmd>TroubleToggle workspace_diagnostics<cr>", opts)
+vim.keymap.set("n", "<leader>xe", "<cmd>TroubleToggle document_diagnostics<cr>", opts)
+vim.keymap.set("n", "<leader>xl", "<cmd>TroubleToggle loclist<cr>", opts)
+vim.keymap.set("n", "<leader>xq", "<cmd>TroubleToggle quickfix<cr>", opts)
+vim.keymap.set("n", "gR", "<cmd>TroubleToggle lsp_references<cr>", opts)
+
+local on_attach = function(client, bufnr)
+ -- Mappings.
+ local bufopts = { noremap=true, silent=true, buffer=bufnr }
+ vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
+ vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
+ vim.keymap.set('n', '<space>K', vim.lsp.buf.signature_help, bufopts)
+ vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
+ vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
+ vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
+ vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
+ vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts)
+end
+
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ window = {
+ completion = cmp.config.window.bordered(),
+ documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true
+ }),
+ ['<Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif luasnip.expand_or_jumpable() then
+ luasnip.expand_or_jump()
+ else
+ fallback()
+ end
+ end, { 'i', 's' }),
+ ['<S-Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_prev_item()
+ elseif luasnip.jumpable(-1) then
+ luasnip.jump(-1)
+ else
+ fallback()
+ end
+ end, { 'i', 's' }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' }, -- For luasnip users.
+ }, {
+ { name = 'buffer' },
+ })
+})
+
+cmp.event:on(
+ 'confirm_done',
+ cmp_autopairs.on_confirm_done()
+)
+
+local settings = {
+ pylsp = {
+ pylsp = {
+ plugins = {
+ autopep8 = { enabled = false },
+ flake8 = { enabled = false },
+ pycodestyle = { enabled = false },
+ pydocstyle = { enabled = false },
+ pyflakes = { enabled = false },
+ yapf = { enabled = false },
+ pylint = { enabled = false },
+ black = { enabled = false },
+ }
+ }
+ },
+ bashls = {},
+ ansiblels = {
+ ansible = {
+ ansible = {
+ useFullyQualifiedCollectionNames = true
+ },
+ executionEnvironment = {
+ containerEngine = "docker",
+ enabled = true,
+ image = "ghcr.io/ansible/creator-ee:latest",
+ pull = {
+ policy = "missing"
+ },
+ },
+ completion = {
+ provideRedirectModules = true,
+ provideModuleOptionAliases = true
+ },
+ validation = {
+ enabled = true,
+ lint = {
+ enabled = true,
+ arguments = "-c ansible-lint.yaml"
+ }
+ }
+ }
+ }
+}
+
+for _,lsp in ipairs(servers) do
+ lspconfig[lsp].setup{
+ on_attach = on_attach,
+ capabilities = capabilities,
+ settings = settings[lsp],
+ }
+end
+
+require("luasnip.loaders.from_vscode").lazy_load()
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/lualine.lua b/home-manager/.config/home-manager/common/nvim/plugins/lualine.lua
new file mode 100644
index 0000000..90e6db2
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/lualine.lua
@@ -0,0 +1 @@
+require('lualine').setup()
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/telescope.lua b/home-manager/.config/home-manager/common/nvim/plugins/telescope.lua
new file mode 100644
index 0000000..6892243
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/telescope.lua
@@ -0,0 +1,16 @@
+local telescope = require('telescope')
+local actions = require('telescope.actions')
+
+local trouble = require("trouble.sources.telescope")
+
+telescope.setup {
+ defaults = {
+ file_ignore_patterns = { "^.git/" },
+ mappings = {
+ i = { ["<c-o>"] = trouble.open },
+ n = { ["<c-o>"] = trouble.open },
+ },
+ },
+}
+
+telescope.load_extension('fzf')
diff --git a/home-manager/.config/home-manager/common/nvim/plugins/trouble.lua b/home-manager/.config/home-manager/common/nvim/plugins/trouble.lua
new file mode 100644
index 0000000..cf7a27b
--- /dev/null
+++ b/home-manager/.config/home-manager/common/nvim/plugins/trouble.lua
@@ -0,0 +1,3 @@
+require('trouble').setup {
+ use_diagnostic_signs = true
+}
diff --git a/home-manager/.config/home-manager/common/scripts/fixwlr b/home-manager/.config/home-manager/common/scripts/fixwlr
new file mode 100755
index 0000000..d9f4230
--- /dev/null
+++ b/home-manager/.config/home-manager/common/scripts/fixwlr
@@ -0,0 +1,3 @@
+#!/bin/sh
+systemctl --user import-environment WAYLAND_DISPLAY
+systemctl --user restart xdg-desktop-portal
diff --git a/home-manager/.config/home-manager/common/scripts/spiceconnect b/home-manager/.config/home-manager/common/scripts/spiceconnect
new file mode 100755
index 0000000..9e410ac
--- /dev/null
+++ b/home-manager/.config/home-manager/common/scripts/spiceconnect
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+remote-viewer ~/Downloads/"$(ls -1t ~/Downloads | head -n1)"
diff --git a/home-manager/.config/home-manager/common/scripts/start b/home-manager/.config/home-manager/common/scripts/start
new file mode 100755
index 0000000..c8b1235
--- /dev/null
+++ b/home-manager/.config/home-manager/common/scripts/start
@@ -0,0 +1,33 @@
+#!/bin/sh
+# This a sort-of auto-start script.
+# Run this from a tty to start my graphical env.
+#
+
+#export XDG_CURRENT_DESKTOP=dwl
+#export XDG_SESSION_TYPE=wayland
+#export XDG_SESSION_DESKTOP=dwl
+#
+#systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE
+#
+#exec dwl -s 'somebar' &
+#
+## set blocks on bar
+#exec /usr/local/bin/someblocks &
+#
+## give wayland session some time to init
+#sleep 1
+#
+#exec mako &
+#
+#sleep 1
+#
+## set bg
+#exec walp &
+#
+## set monitor to be left of the laptop display
+#exec wlr-randr --output DP-1 --pos 0,0 &
+#
+## fix for screen-sharing
+#exec fixwlr
+#
+nix run github:guibou/nixGL#nixGLIntel -- Hyprland
diff --git a/home-manager/.config/home-manager/common/scripts/walp b/home-manager/.config/home-manager/common/scripts/walp
new file mode 100755
index 0000000..9bac47e
--- /dev/null
+++ b/home-manager/.config/home-manager/common/scripts/walp
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+pkill wbg || echo "No wbg process was running."
+
+WALLPAPERS_HOME=${1:-$HOME/pics/wallpapers}
+
+# Get a random image file from the dir.
+RAND_BG=$(find "$WALLPAPERS_HOME" -type f -name "*.jpeg" -o -name "*.jpg" -o -name "*.png" | shuf | head -n1)
+
+# Store the chosen bg
+cp -a "${RAND_BG}" /tmp/bg
+
+WBG_PATH="$(command -v wbg || echo "$HOME"/.nix-profile/bin/wbg)"
+echo "WBG is $WBG_PATH"
+
+if [[ ! -f "$WBG_PATH" ]]; then
+ ehco "WBG is not installed. Exiting."
+ exit 1
+else
+ # Set the image file as the background.
+ notify-send "Setting background."
+ "${WBG_PATH}" "${RAND_BG}" &
+fi
diff --git a/home-manager/.config/home-manager/common/someblocks/blocks.h b/home-manager/.config/home-manager/common/someblocks/blocks.h
new file mode 100644
index 0000000..dd342aa
--- /dev/null
+++ b/home-manager/.config/home-manager/common/someblocks/blocks.h
@@ -0,0 +1,13 @@
+//Modify this file to change what commands output to your statusbar, and recompile using the make command.
+static const Block blocks[] = {
+ /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/
+ {"", "amixer sget 'Master' | grep Right | awk -F'[][]' '{print $2$4}' | sed '2q;d'", 1, 0},
+ {"", "nmcli -f DEVICE,NAME --terse con show", 30, 0},
+ {"", "free -h | awk '/^Mem/ { print $3\"/\"$2 }' | sed s/i//g", 30, 0},
+ {"", "acpi | awk -F' ' '{print $2, $4, $3}' | tr -d ',' | tr '\n' ';'", 30, 0},
+ {"", "date '+%b %d (%a) %I:%M:%S%p'", 5, 0},
+};
+
+//sets delimeter between status commands. NULL character ('\0') means no delimeter.
+static char delim[] = " | ";
+static unsigned int delimLen = 5;
diff --git a/home-manager/.config/home-manager/common/waybar/config b/home-manager/.config/home-manager/common/waybar/config
new file mode 100644
index 0000000..04ec64c
--- /dev/null
+++ b/home-manager/.config/home-manager/common/waybar/config
@@ -0,0 +1,78 @@
+{
+ "layer": "top", // Waybar at top layer
+ "height": 30, // Waybar height (to be removed for auto height)
+ "spacing": 4, // Gaps between modules (4px)
+ "modules-left": ["hyprland/workspaces"],
+ "modules-center": ["hyprland/window"],
+ "modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "clock", "tray"],
+ "hyprland/workspaces": {
+ "format": "{name}",
+ "format-icons": {
+ "active": "",
+ "default": "",
+ }
+ },
+ "hyprland/window": {
+ "max-length": 200,
+ "format": "👉 {}",
+ "separate-outputs": true
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ "timezone": "America/Toronto",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon} {format_source}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+}
diff --git a/home-manager/.config/home-manager/common/waybar/style.css b/home-manager/.config/home-manager/common/waybar/style.css
new file mode 100644
index 0000000..fe58f76
--- /dev/null
+++ b/home-manager/.config/home-manager/common/waybar/style.css
@@ -0,0 +1,74 @@
+* {
+ font-family: "Font Awesome 6 Free", Roboto, Helvetica, Arial, sans-serif;
+ font-size: 14px;
+}
+
+window#waybar {
+ background: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid rgba(100, 114, 125, 0.5);
+ color: white;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+tooltip {
+ background: rgba(43, 48, 59, 0.5);
+ border: 1px solid rgba(100, 114, 125, 0.5);
+}
+tooltip label {
+ color: white;
+}
+
+#workspaces button {
+ padding: 0 5px;
+ background: transparent;
+ color: white;
+ border-bottom: 3px solid transparent;
+}
+
+#workspaces button.focused {
+ background: #64727D;
+ border-bottom: 3px solid white;
+}
+
+#workspaces button.active {
+ background: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid white;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#mode, #clock, #battery, #pulseaudio, #network, #memory, #cpu {
+ padding: 0 10px;
+}
+
+#mode {
+ background: #64727D;
+ border-bottom: 3px solid white;
+}
+
+#clock {
+ background-color: #64727D;
+}
+
+#battery {
+ background-color: white;
+ color: black;
+}
+
+#battery.charging {
+ color: white;
+ background-color: #26A65B;
+}
+
+#battery.warning:not(.charging) {
+ background: #f53c3c;
+ color: white;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
diff --git a/home-manager/.config/home-manager/common/wofi/style.css b/home-manager/.config/home-manager/common/wofi/style.css
new file mode 100644
index 0000000..ba73e91
--- /dev/null
+++ b/home-manager/.config/home-manager/common/wofi/style.css
@@ -0,0 +1,58 @@
+#entry {
+ border-radius: 3px;
+ padding: 2px 3px 2px 3px;
+}
+
+#entry:selected {
+ background-color: #5e81ac;
+}
+
+#text:selected {
+ color: #d8dee9;
+}
+
+#window {
+ padding: 2px;
+ background-color: rgba(53, 59, 73, 0.97);
+ border: 3px solid #3b4252;
+ border-radius: 2px;
+ font-family: 'Inter Nerd Font','FuraCode Nerd Font Mono';
+ font-size: 48px;
+}
+
+#input {
+ border: 2px solid #5e81ac;
+ background-color: #4c566a;
+ color: #d8dee9;
+ padding: 3px 5px 3px 5px;
+ border-radius: 5px;
+}
+
+#inner-box {
+ color: #d8dee9;
+ padding: 2px;
+ background-color: transparent;
+}
+
+#outer-box {
+ margin: 15px;
+ background-color: transparent;
+}
+
+#scroll {
+ margin-top: 10px;
+ background-color: transparent;
+ border: none;
+}
+
+#text {
+ padding: 3px;
+ background-color: transparent;
+}
+
+#img {
+ background-color: transparent;
+ padding: 5px;
+}
+
+
diff --git a/home-manager/.config/home-manager/flake.lock b/home-manager/.config/home-manager/flake.lock
new file mode 100644
index 0000000..2f1e96c
--- /dev/null
+++ b/home-manager/.config/home-manager/flake.lock
@@ -0,0 +1,65 @@
+{
+ "nodes": {
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1720470846,
+ "narHash": "sha256-7ftA4Bv5KfH4QdTRxqe8/Hz2YTKo+7IQ9n7vbNWgv28=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "2fb5c1e0a17bc6059fa09dc411a43d75f35bb192",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "nixos-hardware": {
+ "locked": {
+ "lastModified": 1720429258,
+ "narHash": "sha256-d6JI5IgJ1xdrk7DvYVx7y8ijcYz5I1nhCwOiDP6cq00=",
+ "owner": "NixOS",
+ "repo": "nixos-hardware",
+ "rev": "72d3c007024ce47d838bb38693c8773812f54bf2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "master",
+ "repo": "nixos-hardware",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1720418205,
+ "narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "655a58a72a6601292512670343087c2d75d859c1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "nixos-hardware": "nixos-hardware",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/home-manager/.config/home-manager/flake.nix b/home-manager/.config/home-manager/flake.nix
new file mode 100644
index 0000000..778e281
--- /dev/null
+++ b/home-manager/.config/home-manager/flake.nix
@@ -0,0 +1,66 @@
+{
+ description = "NixOS configuration";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ home-manager.url = "github:nix-community/home-manager";
+ home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ nixos-hardware.url = "github:NixOS/nixos-hardware/master";
+ };
+
+ outputs = inputs@{ nixpkgs, home-manager, nixos-hardware, ... }: {
+ # NixOS + Home Manager
+ nixosConfigurations = {
+ "art-sr" = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ ./per-user/kdam0-home/configuration.nix
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.kdam0 = import ./per-user/kdam0-home/home.nix;
+
+ # Optionally, use home-manager.extraSpecialArgs to pass
+ # arguments to home.nix
+ }
+ ];
+ };
+ "art" = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ ./per-user/kdam0-art/configuration.nix
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.kdam0 = import ./per-user/kdam0-art/home.nix;
+
+ # Optionally, use home-manager.extraSpecialArgs to pass
+ # arguments to home.nix
+ }
+ ];
+ };
+ };
+
+ # Home Manager Only
+ homeConfigurations = {
+ "kdam0" = home-manager.lib.homeManagerConfiguration {
+ pkgs = nixpkgs.legacyPackages."x86_64-linux";
+ modules = [
+ ./per-user/kdam0-work/home.nix
+ ];
+
+ # Optionally use extraSpecialArgs
+ # to pass through arguments to home.nix
+ };
+ "kdam0@testing-deb" = home-manager.lib.homeManagerConfiguration {
+ pkgs = nixpkgs.legacyPackages."x86_64-linux";
+ modules = [
+ ./per-user/kdam0-deb/home.nix
+ ];
+ };
+ };
+
+ };
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-art/configuration.nix b/home-manager/.config/home-manager/per-user/kdam0-art/configuration.nix
new file mode 100644
index 0000000..21e925a
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-art/configuration.nix
@@ -0,0 +1,125 @@
+{ config, lib, pkgs, ... }:
+{
+ imports =
+ [
+ ./hardware-configuration.nix
+ ./hosts.nix
+ ];
+
+ boot.loader.grub.enable = true;
+ boot.loader.grub.device = "/dev/sda";
+
+ networking.hostName = "art";
+ networking.networkmanager.enable = true;
+
+ time.timeZone = "America/Toronto";
+
+ i18n.defaultLocale = "en_US.UTF-8";
+ console = {
+ font = "Lat2-Terminus16";
+ #keyMap = "us";
+ useXkbConfig = true; # use xkb.options in tty.
+ };
+
+ # Enable sound.
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ wireplumber.enable = true;
+ # media-session.enable = false;
+ jack.enable = true;
+ systemWide = false;
+ };
+
+ users.users.kdam0 = {
+ isNormalUser = true;
+ extraGroups = [
+ "wheel"
+ "networkmanager"
+ "audio"
+ "video"
+ "docker"
+ "libvirtd"
+ ];
+ packages = with pkgs; [
+ tree
+ ];
+ shell = pkgs.zsh;
+ };
+
+ environment.systemPackages = with pkgs; [
+ vim
+ neovim
+ wget
+ git
+ rsync
+ htop
+ bmon
+ alsa-utils
+ docker-buildx
+ docker-compose
+ wireguard-tools
+ cacert
+ openssl.dev
+ (python3.withPackages (ps: with ps; [
+ pip
+ regex
+ pyopenssl
+ ]))
+ ];
+
+ virtualisation.docker = {
+ enable = true;
+ enableOnBoot = true;
+ rootless = {
+ enable = true;
+ setSocketVariable = true;
+ };
+ };
+
+ programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+ programs.zsh.enable = true;
+ programs.hyprland.enable = true;
+
+ # List services that you want to enable:
+ services.printing.enable = true;
+ services.openssh.enable = true;
+ services.thermald.enable = true;
+ services.tlp.enable = true;
+ services.logind.lidSwitch = "suspend-then-hibernate";
+ services.gvfs.enable = true;
+ #services.gnome.gnome-keyring.enable = true;
+
+ security.polkit.enable = true;
+ security.pam.services = {
+ login.gnupg.enable = true;
+ #gdm.enableGnomeKeyring = true;
+ #hyprland.enableGnomeKeyring = true;
+ };
+
+ powerManagement.enable = true;
+
+ networking.firewall.enable = false;
+
+ systemd.sleep.extraConfig = ''
+ AllowSuspend=yes
+ AllowHybridSleep=no
+ AllowHibernation=yes
+ AllowSuspendThenHibernate=yes
+ HibernateDelaySec=1m
+ '';
+
+ nix.settings.experimental-features = ["nix-command" "flakes"];
+ nix.settings.auto-optimise-store = true;
+
+ system.stateVersion = "23.11"; # DO NOT CHANGE
+ system.autoUpgrade.enable = true;
+ system.autoUpgrade.allowReboot = true;
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-art/hardware-configuration.nix b/home-manager/.config/home-manager/per-user/kdam0-art/hardware-configuration.nix
new file mode 100644
index 0000000..e8eb415
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-art/hardware-configuration.nix
@@ -0,0 +1,37 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ config.boot.kernelPackages.rtl8821au ];
+ boot.resumeDevice = "/dev/disk/by-label/swap";
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/4d71526e-b296-49a2-ab2b-3c7a2c970f83";
+ fsType = "ext4";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/7f4fb8f6-2fac-4b0e-8ed5-7d30e492545b"; }
+ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-art/home.nix b/home-manager/.config/home-manager/per-user/kdam0-art/home.nix
new file mode 100644
index 0000000..84ff666
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-art/home.nix
@@ -0,0 +1,354 @@
+{ config, pkgs, libs, ...}:
+{
+ home.username = "kdam0";
+ home.homeDirectory = "/home/kdam0";
+ home.sessionPath = [
+ "$HOME/.config/nixpkgs/common/scripts"
+ ];
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ TERM = "xterm-256color";
+ };
+ home.shellAliases = {
+ l = "ls -l";
+ ll = "ls -al";
+ ".." = "cd ..";
+ v = "nvim $@";
+ r = "ranger $@";
+ gst = "git status";
+ cnix = "nvim ~/.config/nixpkgs/per-user/kdam0-art/configuration.nix";
+ chm = "nvim ~/.config/nixpkgs/per-user/kdam0-art/home.nix";
+ cvim = "nvim ~/.config/nixpkgs/common/nvim/init.vim";
+ clsp = "nvim ~/.config/nixpkgs/common/nvim/plugins/lspconfig.lua";
+ search = "nix search nixpkgs $@";
+ conf = "ranger ~/.config/nixpkgs/common/";
+ up = "cd ~/.config/nixpkgs; sudo nixos-rebuild switch --flake .";
+ };
+
+ programs.home-manager.enable = true;
+ programs.zsh = {
+ enable = true;
+ defaultKeymap = "viins";
+ initExtra = ''
+ source ${config.home.homeDirectory}/.p10k.zsh
+ bindkey '^ ' autosuggest-accept
+ '';
+ zplug = {
+ enable = true;
+ plugins = [
+ { name = "zsh-users/zsh-autosuggestions"; }
+ { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
+ ];
+ };
+ };
+ programs.tmux = {
+ enable = true;
+ clock24 = true;
+ shell = "${pkgs.zsh}/bin/zsh";
+ prefix = "C-a";
+ terminal = "screen-256color";
+ keyMode = "vi";
+ plugins = with pkgs; [
+ tmuxPlugins.sensible
+ {
+ plugin = tmuxPlugins.resurrect;
+ extraConfig = "set -g @resurrect-strategy-nvim 'session'";
+ }
+ tmuxPlugins.pain-control
+ tmuxPlugins.yank
+ ];
+ sensibleOnTop = true;
+ };
+ programs.git = {
+ enable = true;
+ userName = "Kumar Damani";
+ userEmail = "me@kumardamani.net";
+ aliases = {
+ lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
+ };
+ };
+ programs.neovim = {
+ enable = true;
+ withPython3 = false;
+ withRuby = true;
+ withNodeJs = true;
+ vimdiffAlias = true;
+ plugins = with pkgs.vimPlugins; [
+ tokyonight-nvim
+ nvim-treesitter.withAllGrammars
+ nvim-autopairs
+ nvim-cmp
+ cmp-buffer
+ cmp-path
+ nvim-web-devicons
+ nnn-vim
+ luasnip
+ cmp_luasnip
+ cmp-nvim-lsp
+ friendly-snippets
+ {
+ plugin = indent-blankline-nvim-lua;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/indent-blankline.lua);
+ }
+ {
+ plugin = lualine-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lualine.lua);
+ }
+ {
+ plugin = trouble-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/trouble.lua);
+ }
+ {
+ plugin = telescope-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/telescope.lua);
+ }
+ telescope-fzf-native-nvim
+ {
+ plugin = leap-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/leap.lua);
+ }
+ mason-nvim
+ mason-lspconfig-nvim
+ neoconf-nvim
+ {
+ plugin = nvim-lspconfig;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lspconfig.lua);
+ }
+ ];
+ extraConfig = builtins.readFile ../../common/nvim/init.vim;
+ };
+ programs.fzf = {
+ enable = true;
+ tmux.enableShellIntegration = true;
+ };
+ programs.direnv = {
+ enable = true;
+ enableZshIntegration = true; # see note on other shells below
+ nix-direnv.enable = true;
+ };
+
+ programs.waybar.enable = true;
+ home.stateVersion = "23.11";
+ nixpkgs = {
+ config = {
+ allowUnfree = true;
+ allowUnfreePredicate = (_: true);
+ };
+ };
+
+ home.packages = with pkgs; [
+ # Window environment
+ xdg-desktop-portal-hyprland
+ foot
+ wl-clipboard
+ wf-recorder
+ grimblast
+ wbg
+ # Browsers
+ firefox
+ brave
+ # File Managers
+ ranger
+ nnn
+ # Fonts
+ noto-fonts
+ noto-fonts-emoji
+ noto-fonts-monochrome-emoji
+ nerdfonts
+ hack-font
+ font-awesome
+ # Notifications
+ mako
+ libnotify
+ # Image viewer
+ imv
+ pinta
+ # Video player
+ mpv
+ # Pdf Viewer
+ zathura
+ # Power stuff
+ acpi
+ # Other stuff
+ entr
+ gnumake
+ neofetch
+ trash-cli
+ nextcloud-client
+ ripgrep
+ fd
+ stow
+ unzip
+ nodejs
+ cargo
+ lazygit
+ signal-desktop
+ wev
+ sshpass
+ libreoffice
+ drawio
+ virt-viewer
+ dig
+ dnsutils
+ s3fs
+ jq
+ publii
+ thunderbird
+ wofi
+ pavucontrol
+ pcmanfm
+ gnome.seahorse
+ ];
+
+ fonts.fontconfig.enable = true;
+
+ services.gpg-agent = {
+ enable = true;
+ defaultCacheTtl = 1800;
+ enableSshSupport = true;
+ };
+ services.gnome-keyring.enable = true;
+ services.gnome-keyring.components = ["secrets"];
+
+ systemd.user.services = {
+ bg-wallpaper = {
+ Unit = {
+ Description = "Auto refresh wallpaper";
+ After = "network-online.target";
+ };
+ Service = {
+ Type = "simple";
+ ExecStart = "${config.home.homeDirectory}/.config/nixpkgs/common/scripts/walp";
+ TimeoutStopSec = "10";
+ KillMode = "process";
+ KillSignal = "SIGKILL";
+ };
+ Install.WantedBy = ["multi-user.target"];
+ };
+ };
+ systemd.user.timers = {
+ bg-wallpaper = {
+ Unit.Description = "Automatic update of wallpaper";
+ Timer.OnUnitActiveSec = "10min";
+ Install.WantedBy = ["multi-user.target" "timers.target"];
+ };
+ };
+ systemd.user.startServices = true;
+
+ wayland.windowManager.hyprland = {
+ enable = true;
+ settings = {
+ "$mod" = "ALT";
+ input = {
+ "kb_options" = "caps:swapescape";
+ };
+ monitor = [
+ "DP-1, 1920x1080@60, 0x0,1"
+ ", preferred,auto,1"
+ ];
+ workspace = [
+ "1,monitor:eDP-1"
+ "2,monitor:DP-1"
+ "3,monitor:DP-1"
+ "4,monitor:DP-1"
+ "5,monitor:DP-1"
+ "6,monitor:DP-1"
+ "7,monitor:DP-1"
+ "8,monitor:DP-1"
+ "9,monitor:DP-1"
+ "10,monitor:DP-1"
+ ];
+ windowrulev2 = [
+ "workspace 9,class:^firefox$"
+ "workspace 8,class:^Brave(.*)$"
+ "workspace 7,class:^remote-viewer$"
+ "workspace 1,class:^Slack$"
+ "workspace 1,class:^Signal$"
+ ];
+ animation = [
+ "workspaces,1,2,default"
+ "windows,1,3,default"
+ "fade,0"
+ ];
+ bind = [
+ "$mod, j, cyclenext, prev"
+ "$mod Shift, j, swapnext, prev"
+ "$mod, k, cyclenext,"
+ "$mod Shift, k, swapnext,"
+ "$mod Shift, l, exec, swaylock -i /tmp/bg"
+ "$mod, period, focusmonitor, +1"
+ "$mod, Tab, workspace, previous"
+ "$mod, escape, workspace, m-1"
+ "$mod, semicolon, workspace, m+1"
+ "$mod, q, killactive"
+ "$mod, Return, exec, foot"
+ "$mod, p, exec, wofi --show run"
+ "$mod, r, exec, foot -e ranger"
+ ", Delete, exec, grimblast copy area"
+ "Shift, Delete, exec, GRIMBLAST_EDITOR=pinta grimblast edit area"
+ ]
+ ++ (
+ # workspaces
+ # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
+ builtins.concatLists (builtins.genList (
+ x: let
+ ws = let
+ c = (x + 1) / 10;
+ in
+ builtins.toString (x + 1 - (c * 10));
+ in [
+ "$mod, ${ws}, workspace, ${toString (x + 1)}"
+ "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+ ]
+ )
+ 10)
+ );
+ binde = [
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ "$mod, Next, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ "$mod, Prior, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
+ ", XF86MonBrightnessDown, exec, light -U 10"
+ ", XF86MonBrightnessUp, exec, light -A 10"
+ "$mod, h, resizeactive, -20 20"
+ "$mod, l, resizeactive, 20 -20"
+ ];
+ bindm = [
+ "$mod,mouse:272,movewindow"
+ "$mod,mouse:273,resizewindow"
+ ];
+ binds = {
+ "allow_workspace_cycles" = true;
+ };
+ "exec-once" = [
+ "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
+ #"${pkgs.plasma5Packages.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
+ "mako"
+ "walp"
+ "waybar"
+ "[workspace 9 silient] firefox"
+ "[workspace 2 silent] foot"
+ "[workspace 1 silient] slack"
+ "[workspace 1 silient] signal-desktop"
+ ];
+ };
+ };
+
+
+ # Source app specific configs
+ home.file.".config/foot/foot.ini".source = ../../common/foot/foot.ini;
+ home.file.".config/wofi/style.css".source = ../../common/wofi/style.css;
+ home.file.".config/mako/config".source = ../../common/mako/config;
+ home.file.".local/share/fonts".source = ../../common/fonts;
+ home.file.".config/waybar".source = ../../common/waybar;
+
+ #home.file.".config/foot/foot.ini".text = ''
+ #[colors]
+ #alpha=0.7
+ #'';
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-art/hosts.nix b/home-manager/.config/home-manager/per-user/kdam0-art/hosts.nix
new file mode 100644
index 0000000..8f21ea8
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-art/hosts.nix
@@ -0,0 +1,9 @@
+{ config, pkgs, ... }:
+
+{ networking.extraHosts = ''
+# Your /etc/hosts entries go here
+127.0.0.2 other-localhost
+
+192.168.0.87 art-jr
+'';
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-deb/home.nix b/home-manager/.config/home-manager/per-user/kdam0-deb/home.nix
new file mode 100644
index 0000000..4654a3c
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-deb/home.nix
@@ -0,0 +1,142 @@
+{ config, pkgs, libs, ...}:
+{
+ home.username = "kdam0";
+ home.homeDirectory = "/home/kdam0";
+ home.sessionPath = [
+ "$HOME/.config/home-manager/common/scripts"
+ ];
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ TERM = "xterm-256color";
+ };
+ home.shellAliases = {
+ l = "ls -l";
+ ll = "ls -al";
+ ".." = "cd ..";
+ v = "nvim $@";
+ r = "ranger $@";
+ gst = "git status";
+ chm = "nvim ~/.config/home-manager/per-user/kdam0-deb/home.nix";
+ cvim = "nvim ~/.config/home-manager/common/nvim/init.vim";
+ clsp = "nvim ~/.config/home-manager/common/nvim/plugins/lspconfig.lua";
+ search = "nix search home-manager $@";
+ conf = "ranger ~/.config/home-manager/common/";
+ up = "home-manager switch";
+ };
+
+ programs.home-manager.enable = true;
+ programs.zsh = {
+ enable = true;
+ defaultKeymap = "viins";
+ initExtra = ''
+ source ${config.home.homeDirectory}/.p10k.zsh
+ bindkey '^ ' autosuggest-accept
+ '';
+ zplug = {
+ enable = true;
+ plugins = [
+ { name = "zsh-users/zsh-autosuggestions"; }
+ { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
+ ];
+ };
+ };
+ programs.tmux = {
+ enable = true;
+ clock24 = true;
+ shell = "${pkgs.zsh}/bin/zsh";
+ prefix = "C-a";
+ terminal = "screen-256color";
+ keyMode = "vi";
+ plugins = with pkgs; [
+ tmuxPlugins.sensible
+ {
+ plugin = tmuxPlugins.resurrect;
+ extraConfig = "set -g @resurrect-strategy-nvim 'session'";
+ }
+ tmuxPlugins.pain-control
+ tmuxPlugins.yank
+ ];
+ sensibleOnTop = true;
+ };
+ programs.git = {
+ enable = true;
+ userName = "Kumar Damani";
+ userEmail = "me@kumardamani.net";
+ aliases = {
+ lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
+ };
+ };
+ programs.neovim = {
+ enable = true;
+ withPython3 = false;
+ withRuby = true;
+ withNodeJs = true;
+ vimdiffAlias = true;
+ plugins = with pkgs.vimPlugins; [
+ tokyonight-nvim
+ nvim-treesitter.withAllGrammars
+ nvim-autopairs
+ nvim-cmp
+ cmp-buffer
+ cmp-path
+ nvim-web-devicons
+ nnn-vim
+ luasnip
+ cmp_luasnip
+ cmp-nvim-lsp
+ friendly-snippets
+ {
+ plugin = indent-blankline-nvim-lua;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/indent-blankline.lua);
+ }
+ {
+ plugin = lualine-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lualine.lua);
+ }
+ {
+ plugin = trouble-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/trouble.lua);
+ }
+ {
+ plugin = telescope-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/telescope.lua);
+ }
+ telescope-fzf-native-nvim
+ {
+ plugin = leap-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/leap.lua);
+ }
+ mason-nvim
+ mason-lspconfig-nvim
+ neoconf-nvim
+ {
+ plugin = nvim-lspconfig;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lspconfig.lua);
+ }
+ ];
+ extraConfig = builtins.readFile ../../common/nvim/init.vim;
+ };
+ programs.fzf = {
+ enable = true;
+ tmux.enableShellIntegration = true;
+ };
+ programs.direnv = {
+ enable = true;
+ enableZshIntegration = true; # see note on other shells below
+ nix-direnv.enable = true;
+ };
+ home.stateVersion = "23.05";
+ home.packages = with pkgs; [
+ ranger
+ nnn
+ ripgrep
+ python311
+ ];
+ targets.genericLinux.enable = true;
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-home/configuration.nix b/home-manager/.config/home-manager/per-user/kdam0-home/configuration.nix
new file mode 100644
index 0000000..4bf5557
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-home/configuration.nix
@@ -0,0 +1,135 @@
+{ config, pkgs, ... }:
+
+{
+ imports =
+ [
+ ./hardware-configuration.nix
+ ./hosts.nix
+ ];
+
+ # Bootloader.
+ boot.loader.grub.enable = true;
+ boot.loader.grub.device = "/dev/sda";
+ boot.loader.grub.useOSProber = true;
+
+ networking.hostName = "art-sr"; # Define your hostname.
+ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
+
+ # Set your time zone.
+ time.timeZone = "America/Toronto";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
+ console = {
+ font = "Lat2-Terminus16";
+ keyMap = "us";
+ #useXkbConfig = true; # use xkbOptions in tty.
+ };
+
+ # Enable the X11 windowing system.
+ services.xserver.enable = true;
+
+ # Enable the KDE Plasma Desktop Environment.
+ services.xserver.displayManager.sddm.enable = true;
+ services.xserver.desktopManager.plasma5.enable = true;
+
+ # Configure keymap in X11
+ services.xserver = {
+ layout = "us";
+ xkbVariant = "";
+ };
+
+ nixpkgs.config.allowUnfree = true;
+
+ # Enable CUPS to print documents.
+ services.printing.enable = true;
+
+ # Enable sound.
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ wireplumber.enable = true;
+ # media-session.enable = false;
+ jack.enable = true;
+ systemWide = false;
+ };
+
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.kdam0 = {
+ isNormalUser = true;
+ description = "kdam0";
+ extraGroups = [
+ "wheel"
+ "networkmanager"
+ "video"
+ "audio"
+ "docker"
+ "libvirtd"
+ ];
+ shell = pkgs.zsh;
+ };
+
+ # List packages installed in system profile. To search, run:
+ environment.systemPackages = with pkgs; [
+ wget
+ git
+ rsync
+ neovim
+ htop
+ bmon
+ alsa-utils
+ docker-buildx
+ docker-compose
+ wireguard-tools
+ cacert
+ openssl.dev
+ (python3.withPackages (ps: with ps; [
+ pip
+ regex
+ pyopenssl
+ ]))
+ ];
+
+ virtualisation.docker = {
+ enable = true;
+ enableOnBoot = true;
+ rootless = {
+ enable = true;
+ setSocketVariable = true;
+ };
+ };
+
+ # Copy the NixOS configuration file and link it from the resulting system
+ # (/run/current-system/configuration.nix). This is useful in case you
+ # accidentally delete configuration.nix.
+ # system.copySystemConfiguration = true;
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "23.05"; # Did you read the comment?
+
+ nix.settings.experimental-features = ["nix-command" "flakes"];
+ nix.settings.auto-optimise-store = true;
+
+ #xdg.portal = {
+ # enable = true;
+ # wlr.enable = true;
+ #};
+
+ # Enable the OpenSSH daemon.
+ services.openssh.enable = true;
+ services.fwupd.enable = true;
+ security.pam.services = {
+ login.gnupg.enable = true;
+ };
+ programs.zsh.enable = true;
+}
+
diff --git a/home-manager/.config/home-manager/per-user/kdam0-home/hardware-configuration.nix b/home-manager/.config/home-manager/per-user/kdam0-home/hardware-configuration.nix
new file mode 100644
index 0000000..24ecc53
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-home/hardware-configuration.nix
@@ -0,0 +1,31 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/profiles/qemu-guest.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/f037f7e0-59e5-43c2-9682-28ccd33a9f38";
+ fsType = "ext4";
+ };
+
+ swapDevices = [ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.ens18.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-home/home.nix b/home-manager/.config/home-manager/per-user/kdam0-home/home.nix
new file mode 100644
index 0000000..9ca47e5
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-home/home.nix
@@ -0,0 +1,190 @@
+{ config, pkgs, ...}:
+{
+ home.username = "kdam0";
+ home.homeDirectory = "/home/kdam0";
+ home.sessionPath = [
+ "$HOME/.config/nixpkgs/common/scripts"
+ ];
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ TERM = "xterm-256color";
+ };
+ home.shellAliases = {
+ l = "ls -l";
+ ll = "ls -al";
+ ".." = "cd ..";
+ v = "nvim $@";
+ r = "ranger $@";
+ gst = "git status";
+ chm = "nvim ~/.config/nixpkgs/per-user/kdam0-home/home.nix";
+ clsp = "nvim ~/.config/nixpkgs/common/nvim/plugins/lspconfig.lua";
+ cnix = "nvim ~/.config/nixpkgs/per-user/kdam0-home/configuration.nix";
+ up = "sudo nixos-rebuild switch";
+ clean = "sudo nix-collect-garbage -d && nix-collect-garbage -d";
+ search = "nix search nixpkgs $@";
+ conf = "ranger ~/.config/nixpkgs/common/";
+ };
+
+ programs.home-manager.enable = true;
+ programs.zsh = {
+ enable = true;
+ defaultKeymap = "viins";
+ initExtra = ''
+ source ${config.home.homeDirectory}/.p10k.zsh
+ bindkey '^ ' autosuggest-accept
+ '';
+ zplug = {
+ enable = true;
+ plugins = [
+ { name = "zsh-users/zsh-autosuggestions"; }
+ { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
+ ];
+ };
+ };
+ programs.tmux = {
+ enable = true;
+ clock24 = true;
+ shell = "${pkgs.zsh}/bin/zsh";
+ prefix = "C-a";
+ terminal = "screen-256color";
+ keyMode = "vi";
+ plugins = with pkgs; [
+ tmuxPlugins.sensible
+ {
+ plugin = tmuxPlugins.resurrect;
+ extraConfig = "set -g @resurrect-strategy-nvim 'session'";
+ }
+ tmuxPlugins.pain-control
+ tmuxPlugins.yank
+ ];
+ sensibleOnTop = true;
+ };
+ programs.git = {
+ enable = true;
+ userName = "Kumar Damani";
+ userEmail = "me@kumardamani.net";
+ aliases = {
+ lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
+ };
+ };
+
+ programs.neovim = {
+ enable = true;
+ withPython3 = true;
+ withRuby = true;
+ withNodeJs = true;
+ vimdiffAlias = true;
+ plugins = with pkgs.vimPlugins; [
+ tokyonight-nvim
+ nvim-treesitter.withAllGrammars
+ nvim-autopairs
+ nvim-cmp
+ cmp-buffer
+ cmp-path
+ nvim-web-devicons
+ nnn-vim
+ luasnip
+ cmp_luasnip
+ cmp-nvim-lsp
+ friendly-snippets
+ {
+ plugin = indent-blankline-nvim-lua;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/indent-blankline.lua);
+ }
+ {
+ plugin = lualine-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lualine.lua);
+ }
+ {
+ plugin = trouble-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/trouble.lua);
+ }
+ {
+ plugin = telescope-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/telescope.lua);
+ }
+ telescope-fzf-native-nvim
+ {
+ plugin = leap-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/leap.lua);
+ }
+ mason-nvim
+ mason-lspconfig-nvim
+ neoconf-nvim
+ {
+ plugin = nvim-lspconfig;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lspconfig.lua);
+ }
+ ];
+ extraConfig = builtins.readFile ../../common/nvim/init.vim;
+ };
+
+
+ home.stateVersion = "23.05";
+ home.packages = [
+ # Web
+ pkgs.firefox
+ pkgs.brave
+ # Image Editor
+ pkgs.krita
+ # Fonts
+ pkgs.nerdfonts
+ pkgs.hack-font
+ pkgs.noto-fonts
+ pkgs.noto-fonts-cjk
+ # Latex stuff
+ (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small xifthen ifmtarg framed paralist titling titlesec libertine letltxmacro; })
+ pkgs.texmaker
+ pkgs.gnumake
+ pkgs.clang
+ pkgs.neofetch
+ pkgs.ripgrep
+ pkgs.fd
+ pkgs.unzip
+ pkgs.nodejs
+ pkgs.cargo
+ # Files
+ pkgs.ranger
+ pkgs.nnn
+ pkgs.vlc
+ # Comms
+ pkgs.signal-desktop
+ pkgs.mutt-wizard
+ pkgs.isync
+ pkgs.msmtp
+ pkgs.pass
+ pkgs.neomutt
+ pkgs.nextcloud-client
+ pkgs.thunderbird
+ # Office stuff
+ pkgs.libreoffice-qt
+ pkgs.hunspell
+ pkgs.hunspellDicts.en_CA
+ pkgs.lynx
+ # dev stuff
+ pkgs.terraform
+ pkgs.ansible
+ pkgs.jq
+ pkgs.publii
+ pkgs.s3fs
+ ];
+
+ fonts.fontconfig.enable = true;
+
+ services.gpg-agent = {
+ enable = true;
+ defaultCacheTtl = 1800;
+ enableSshSupport = true;
+ };
+
+ systemd.user.startServices = true;
+
+ # Source app specific configs
+ home.file.".local/share/fonts".source = ../../common/fonts;
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-home/hosts.nix b/home-manager/.config/home-manager/per-user/kdam0-home/hosts.nix
new file mode 100644
index 0000000..8f21ea8
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-home/hosts.nix
@@ -0,0 +1,9 @@
+{ config, pkgs, ... }:
+
+{ networking.extraHosts = ''
+# Your /etc/hosts entries go here
+127.0.0.2 other-localhost
+
+192.168.0.87 art-jr
+'';
+}
diff --git a/home-manager/.config/home-manager/per-user/kdam0-work/home.nix b/home-manager/.config/home-manager/per-user/kdam0-work/home.nix
new file mode 100644
index 0000000..38c511d
--- /dev/null
+++ b/home-manager/.config/home-manager/per-user/kdam0-work/home.nix
@@ -0,0 +1,376 @@
+{ config, pkgs, libs, ...}:
+{
+ home.username = "kdam0";
+ home.homeDirectory = "/home/kdam0";
+ home.sessionPath = [
+ "$HOME/.config/nixpkgs/common/scripts"
+ ];
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ TERM = "xterm-256color";
+ };
+ home.shellAliases = {
+ l = "ls -l";
+ ll = "ls -al";
+ ".." = "cd ..";
+ v = "nvim $@";
+ r = "ranger $@";
+ gst = "git status";
+ chm = "nvim ~/.config/nixpkgs/per-user/kdam0-work/home.nix";
+ cvim = "nvim ~/.config/nixpkgs/common/nvim/init.vim";
+ clsp = "nvim ~/.config/nixpkgs/common/nvim/plugins/lspconfig.lua";
+ search = "nix search nixpkgs $@";
+ conf = "ranger ~/.config/nixpkgs/common/";
+ up = "home-manager switch";
+ k9s = "docker run --net host --rm -it -v ~/.kube/config:/root/.kube/config quay.io/derailed/k9s";
+ b = "ssh kdamani@burne.sat";
+ auto = "ssh kepler@auto.sat";
+ dns = "ssh administrator@ctrlf-dns";
+ pyans = "source ~/.venv/ansible/bin/activate";
+ pykep36 = "source ~/.venv/kepler36/bin/activate";
+ pykep37 = "source ~/.venv/kepler37/bin/activate";
+ };
+
+ programs.home-manager.enable = true;
+ programs.zsh = {
+ enable = true;
+ defaultKeymap = "viins";
+ initExtra = ''
+ source ${config.home.homeDirectory}/.p10k.zsh
+ bindkey '^ ' autosuggest-accept
+ '';
+ zplug = {
+ enable = true;
+ plugins = [
+ { name = "zsh-users/zsh-autosuggestions"; }
+ { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
+ ];
+ };
+ };
+ programs.tmux = {
+ enable = true;
+ clock24 = true;
+ shell = "${pkgs.zsh}/bin/zsh";
+ prefix = "C-a";
+ terminal = "screen-256color";
+ keyMode = "vi";
+ plugins = with pkgs; [
+ tmuxPlugins.sensible
+ {
+ plugin = tmuxPlugins.resurrect;
+ extraConfig = "set -g @resurrect-strategy-nvim 'session'";
+ }
+ tmuxPlugins.pain-control
+ tmuxPlugins.yank
+ ];
+ sensibleOnTop = true;
+ };
+ programs.git = {
+ enable = true;
+ userName = "Kumar Damani";
+ userEmail = "me@kumardamani.net";
+ aliases = {
+ lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
+ };
+ };
+ programs.neovim = {
+ enable = true;
+ withPython3 = false;
+ withRuby = true;
+ withNodeJs = true;
+ vimdiffAlias = true;
+ plugins = with pkgs.vimPlugins; [
+ tokyonight-nvim
+ nvim-treesitter.withAllGrammars
+ nvim-autopairs
+ nvim-cmp
+ cmp-buffer
+ cmp-path
+ nvim-web-devicons
+ nnn-vim
+ luasnip
+ cmp_luasnip
+ cmp-nvim-lsp
+ friendly-snippets
+ {
+ plugin = indent-blankline-nvim-lua;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/indent-blankline.lua);
+ }
+ {
+ plugin = lualine-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lualine.lua);
+ }
+ {
+ plugin = trouble-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/trouble.lua);
+ }
+ {
+ plugin = telescope-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/telescope.lua);
+ }
+ telescope-fzf-native-nvim
+ {
+ plugin = leap-nvim;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/leap.lua);
+ }
+ mason-nvim
+ mason-lspconfig-nvim
+ neoconf-nvim
+ {
+ plugin = nvim-lspconfig;
+ type = "lua";
+ config = builtins.readFile(../../common/nvim/plugins/lspconfig.lua);
+ }
+ ];
+ extraConfig = builtins.readFile ../../common/nvim/init.vim;
+ };
+ programs.fzf = {
+ enable = true;
+ tmux.enableShellIntegration = true;
+ };
+ programs.direnv = {
+ enable = true;
+ enableZshIntegration = true; # see note on other shells below
+ nix-direnv.enable = true;
+ };
+
+ programs.waybar.enable = true;
+
+
+ home.stateVersion = "22.11";
+ nixpkgs = {
+ config = {
+ allowUnfree = true;
+ allowUnfreePredicate = (_: true);
+ };
+ };
+ home.packages = with pkgs; [
+ # Window environment
+ xdg-desktop-portal-hyprland
+ #somebar
+ foot
+ wl-clipboard
+ wf-recorder
+ grimblast
+ pinta
+ #grim
+ #slurp
+ wbg
+ # Text Editors
+ #pkgs.neovim
+ # Browsers
+ firefox
+ brave
+ # File Managers
+ ranger
+ nnn
+ # Fonts
+ noto-fonts
+ noto-fonts-emoji
+ noto-fonts-monochrome-emoji
+ nerdfonts
+ hack-font
+ font-awesome
+ # Notifications
+ mako
+ libnotify
+ # Image viewer
+ imv
+ sxiv
+ # Video player
+ mpv
+ # Pdf Viewer
+ zathura
+ # Power stuff
+ acpi
+ # Other stuff
+ entr
+ #pkgs.gcc
+ #stdenv.cc.cc.lib
+ #pkgs.libstdcxx5
+ #llvmPackages_6.libstdcxxClang
+ #pkgs.clang
+ gnumake
+ neofetch
+ trash-cli
+ nextcloud-client
+ ripgrep
+ fd
+ stow
+ unzip
+ nodejs
+ cargo
+ wget
+ lazygit
+ #pkgs.tree-sitter
+ # Work stuff
+ mattermost-desktop
+ signal-desktop
+ slack
+ wev
+ sshpass
+ libreoffice
+ drawio
+ kubectl
+ kubernetes-helm
+ virt-viewer
+ dig
+ dnsutils
+ awscli
+ rclone
+ moonlight-qt
+ wireguard-tools
+ wireshark
+ step-cli
+ ];
+
+ fonts.fontconfig.enable = true;
+
+ services.gpg-agent = {
+ enable = true;
+ defaultCacheTtl = 1800;
+ enableSshSupport = true;
+ };
+
+ systemd.user.services = {
+ bg-wallpaper = {
+ Unit = {
+ Description = "Auto refresh wallpaper";
+ After = "network-online.target";
+ };
+ Service = {
+ Type = "simple";
+ ExecStart = "${config.home.homeDirectory}/.config/nixpkgs/common/scripts/walp";
+ TimeoutStopSec = "10";
+ KillMode = "process";
+ KillSignal = "SIGKILL";
+ };
+ Install.WantedBy = ["multi-user.target"];
+ };
+ };
+ systemd.user.timers = {
+ bg-wallpaper = {
+ Unit.Description = "Automatic update of wallpaper";
+ Timer.OnUnitActiveSec = "10min";
+ Install.WantedBy = ["multi-user.target" "timers.target"];
+ };
+ };
+ systemd.user.startServices = true;
+
+ wayland.windowManager.hyprland = {
+ enable = true;
+ settings = {
+ "$mod" = "ALT";
+ input = {
+ "kb_options" = "caps:swapescape";
+ };
+ monitor = [
+ "DP-1, 1920x1080@60, 0x0,1"
+ ", preferred,auto,1"
+ ];
+ workspace = [
+ "1,monitor:eDP-1"
+ "2,monitor:DP-1"
+ "3,monitor:DP-1"
+ "4,monitor:DP-1"
+ "5,monitor:DP-1"
+ "6,monitor:DP-1"
+ "7,monitor:DP-1"
+ "8,monitor:DP-1"
+ "9,monitor:DP-1"
+ "10,monitor:DP-1"
+ ];
+ windowrulev2 = [
+ "workspace 9,class:^firefox$"
+ "workspace 8,class:^Brave(.*)$"
+ "workspace 7,class:^remote-viewer$"
+ "workspace 1,class:^Slack$"
+ "workspace 1,class:^Signal$"
+ ];
+ animation = [
+ "workspaces,1,2,default"
+ "windows,1,3,default"
+ "fade,0"
+ ];
+ bind = [
+ "$mod, j, cyclenext, prev"
+ "$mod Shift, j, swapnext, prev"
+ "$mod, k, cyclenext,"
+ "$mod Shift, k, swapnext,"
+ "$mod Shift, l, exec, swaylock -i /tmp/bg"
+ "$mod, period, focusmonitor, +1"
+ "$mod, Tab, workspace, previous"
+ "$mod, escape, workspace, m-1"
+ "$mod, semicolon, workspace, m+1"
+ "$mod, q, killactive"
+ "$mod, Return, exec, foot"
+ "$mod, p, exec, wofi --show run"
+ "$mod, r, exec, foot -e ranger"
+ ", Delete, exec, grimblast copy area"
+ "Shift, Delete, exec, GRIMBLAST_EDITOR=pinta grimblast edit area"
+ ]
+ ++ (
+ # workspaces
+ # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
+ builtins.concatLists (builtins.genList (
+ x: let
+ ws = let
+ c = (x + 1) / 10;
+ in
+ builtins.toString (x + 1 - (c * 10));
+ in [
+ "$mod, ${ws}, workspace, ${toString (x + 1)}"
+ "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+ ]
+ )
+ 10)
+ );
+ binde = [
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
+ ", XF86MonBrightnessDown, exec, light -U 10"
+ ", XF86MonBrightnessUp, exec, light -A 10"
+ "$mod, h, resizeactive, -20 20"
+ "$mod, l, resizeactive, 20 -20"
+ ];
+ bindm = [
+ "$mod,mouse:272,movewindow"
+ "$mod,mouse:273,resizewindow"
+ ];
+ binds = {
+ "allow_workspace_cycles" = true;
+ };
+ "exec-once" = [
+ "mako"
+ "walp"
+ "waybar"
+ "[workspace 9 silient] firefox"
+ "[workspace 8 silient] brave"
+ "[workspace 2 silent] foot"
+ "[workspace 1 silient] slack"
+ "[workspace 1 silient] signal-desktop"
+ ];
+ };
+ };
+
+ # Source app specific configs
+ home.file.".config/foot/foot.ini".source = ../../common/foot/foot.ini;
+ home.file.".config/wofi/style.css".source = ../../common/wofi/style.css;
+ home.file.".config/mako/config".source = ../../common/mako/config;
+ home.file.".local/share/fonts".source = ../../common/fonts;
+ home.file.".config/waybar".source = ../../common/waybar;
+ #home.file.".config/way-displays".source = ../../common/way-displays;
+
+ #home.file.".config/foot/foot.ini".text = ''
+ #[colors]
+ #alpha=0.7
+ #'';
+
+ targets.genericLinux.enable = true;
+}