zaphyra's git: nixfiles

zaphyra's nixfiles

commit be1815f066803f732325b26a184944997a25974e
parent f027a563323f4b26ab7280a20bc86fec1587e7be
Author: Hannah Izzie Gesser <hannah@totient.eu>
Date: Sat, 8 Nov 2025 16:01:44 +0100

STASH
33 files changed, 1810 insertions(+), 495 deletions(-)
M
.sops.yaml
|
7
+++++++
M
config/home/common/home.nix
|
1
+
M
config/home/common/programs/gpg.nix
|
4
+++-
M
config/home/common/programs/starship.nix
|
150
-------------------------------------------------------------------------------
M
config/home/void/home.nix
|
16
+++++++++++++++-
A
config/home/void/impermanence.nix
|
28
++++++++++++++++++++++++++++
A
config/home/void/programs/fuzzel.nix
|
33
+++++++++++++++++++++++++++++++++
M
config/home/void/programs/kitty.nix
|
6
+++++-
M
config/home/void/programs/sway.nix
|
195
+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
M
config/home/void/programs/swaylock.nix
|
4
++--
M
config/home/void/programs/waybar.nix
|
230
++-----------------------------------------------------------------------------
M
config/home/void/services/gpg-agent.nix
|
9
+++++++++
M
config/home/void/services/swayidle.nix
|
33
++++++++++++++++++++++++++-------
A
config/home/void/services/syncthing.nix
|
12
++++++++++++
M
config/nixos/modules/boot/plymouth.nix
|
2
+-
A
config/nixos/modules/filesystem/root.nix.bak
|
138
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M
config/nixos/modules/font.nix
|
4
----
M
config/nixos/modules/hardware/video/intel.nix
|
14
++++++++++++--
M
config/nixos/modules/homeManager.nix
|
1
+
M
config/nixos/modules/presets/base.nix
|
15
++++++++++-----
M
config/nixos/modules/presets/graphical/type.nix
|
1
+
A
config/nixos/modules/presets/graphical/typeSway.nix
|
44
++++++++++++++++++++++++++++++++++++++++++++
M
config/nixos/modules/presets/void/enable.nix
|
5
+++++
A
config/nixos/modules/presets/void/stylix.nix
|
49
+++++++++++++++++++++++++++++++++++++++++++++++++
M
config/nixos/modules/services/greetd.nix
|
84
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
M
config/nixos/modules/users/void.nix
|
10
++++++----
M
flake.lock
|
630
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
M
flake.nix
|
22
+++++++++++++++-------
A
hosts/eximius/configuration.nix
|
82
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
hosts/eximius/default.nix
|
184
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
hosts/eximius/hardware-configuration.nix
|
73
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
resources/void/programs/waybar/style.css
|
191
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
secrets/eximius.yaml
|
28
++++++++++++++++++++++++++++
diff --git a/.sops.yaml b/.sops.yaml
@@ -1,6 +1,7 @@
 keys:
     - &void AB27F5D1136B20D3149FBCC00389451731A3ADDD
     - &zaphyra BFE6386C8D66BCD4DAE14FC895F0FE7CD7E6A022
+    - &eximius age1lkdpl26w3wyaes75hg6wwc2p3puqv24d4xyuf5xc9q9u9we0jq6q8lvz8f
     - &huntii age1laajqafnm4ft2m73wq7yqug4ts04ddn59wlqs4t30upeqa35dpdqu8fu3n
     - &morio age1wpffcr5p88a2x9dzx5v3sq4jqurvygu94fx773n229fqk4p95qzs840cmn
     - &novus age1tud4lvpmpx5nqceyp09ls9ej8l80zlh29d8cpjxcajfnnyy85fvqs63snm

@@ -18,6 +19,12 @@ creation_rules:
                 - *pratorum
             pgp:
                 - *zaphyra
+    - path_regex: secrets/eximius\.yaml$
+      key_groups:
+         - age:
+               - *eximius
+           pgp:
+               - *void
     - path_regex: secrets/huntii\.yaml$
       key_groups:
           - age:
diff --git a/config/home/common/home.nix b/config/home/common/home.nix
@@ -8,6 +8,7 @@
 
   imports = [
     inputs.impermanence.homeManagerModules.impermanence
+    #inputs.stylix.homeModules.stylix
     #inputs.niriFlake.homeModules.config
     inputs.sopsNix.homeManagerModules.sops
     #inputs.sherlock.homeManagerModules.default
diff --git a/config/home/common/programs/gpg.nix b/config/home/common/programs/gpg.nix
@@ -19,11 +19,12 @@
         {
           # emilyyy@jagudev.net
           source = inputs.self.resources.pgp."A9D363EA211BA9CB03D1B773AA59E255A3896073";
+          trust = 4;
         }
         {
           # hannah@totient.eu
           source = inputs.self.resources.pgp."AB27F5D1136B20D3149FBCC00389451731A3ADDD";
-          trust = 4;
+          #trust = 4;
         }
         {
           #izzie@haaien.xyz

@@ -58,6 +59,7 @@
         {
           # lmv@lmv.me
           source = inputs.self.resources.pgp."2C754046341AB6A0C3F0EF6F23100DF8D68F4FA6";
+          trust = 4;
         }
       ];
     };
diff --git a/config/home/common/programs/starship.nix b/config/home/common/programs/starship.nix
@@ -8,156 +8,6 @@
   config = {
     programs.starship = {
       enable = true;
-
-      settings =
-        let
-          lang = symbol: style: format: { inherit symbol style format; };
-
-        in
-        {
-          format = lib.concatStrings [
-            "[](color_orange)"
-            "$os"
-            "$username"
-            "[](bg:color_yellow fg:color_orange)"
-            "$directory"
-            "[](fg:color_yellow bg:color_aqua)"
-            "$git_branch"
-            "$git_status"
-            "[](fg:color_aqua bg:color_blue)"
-            "$c"
-            "$rust"
-            "$golang"
-            "$nodejs"
-            "$php"
-            "$java"
-            "$kotlin"
-            "$haskell"
-            "$python"
-            "[](fg:color_blue bg:color_bg3)"
-            "$docker_context"
-            "$conda"
-            "[](fg:color_bg3 bg:color_bg1)"
-            "$time"
-            "[ ](fg:color_bg1)"
-            "$line_break$character"
-          ];
-
-          add_newline = false;
-
-          palette = "gruvbox_dark";
-
-          palettes.gruvbox_dark = {
-            color_fg0 = "#fbf1c7";
-            color_bg1 = "#3c3836";
-            color_bg3 = "#665c54";
-            color_blue = "#458588";
-            color_aqua = "#689d6a";
-            color_green = "#98971a";
-            color_orange = "#d65d0e";
-            color_purple = "#b16286";
-            color_red = "#cc241d";
-            color_yellow = "#d79921";
-          };
-
-          os = {
-            disabled = false;
-            style = "bg:color_orange fg:color_fg0";
-
-            symbols = {
-              Windows = "󰍲";
-              Ubuntu = "󰕈";
-              SUSE = "";
-              Raspbian = "󰐿";
-              Mint = "󰣭";
-              Macos = "󰀵";
-              Manjaro = "";
-              Linux = "󰌽";
-              Gentoo = "󰣨";
-              Fedora = "󰣛";
-              Alpine = "";
-              Amazon = "";
-              Android = "";
-              Arch = "󰣇";
-              Artix = "󰣇";
-              CentOS = "";
-              Debian = "󰣚";
-              Redhat = "󱄛";
-              RedHatEnterprise = "󱄛";
-            };
-          };
-
-          username = {
-            show_always = true;
-            style_user = "bg:color_orange fg:color_fg0";
-            style_root = "bg:color_orange fg:color_fg0";
-            format = "[ $user ]($style)";
-          };
-
-          directory = {
-            style = "fg:color_fg0 bg:color_yellow";
-            format = "[ $path ]($style)";
-            truncation_length = 3;
-            truncation_symbol = "…/";
-
-            substitutions = {
-              "Documents" = "󰈙 ";
-              "Downloads" = " ";
-              "Music" = "󰝚 ";
-              "Pictures" = " ";
-              "Developer" = "󰲋 ";
-            };
-          };
-
-          line_break.disabled = false;
-          status.disabled = false;
-
-          git_branch = {
-            symbol = "";
-            style = "bg:color_aqua";
-            format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
-          };
-
-          git_status = {
-            style = "bg:color_aqua";
-            format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
-          };
-
-          conda = {
-            style = "bg:color_bg3";
-            format = "[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)";
-          };
-
-          time = {
-            disabled = false;
-            time_format = "%R";
-            style = "bg:color_bg1";
-            format = "[[  $time ](fg:color_fg0 bg:color_bg1)]($style)";
-          };
-
-          character = {
-            disabled = false;
-            success_symbol = "[](bold fg:color_green)";
-            error_symbol = "[](bold fg:color_red)";
-            vimcmd_symbol = "[](bold fg:color_green)";
-            vimcmd_replace_one_symbol = "[](bold fg:color_purple)";
-            vimcmd_replace_symbol = "[](bold fg:color_purple)";
-            vimcmd_visual_symbol = "[](bold fg:color_yellow)";
-          };
-
-          nodejs = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          c = lang " " "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          rust = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          golang = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          php = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          java = lang " " "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          kotlin = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          haskell = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          python = lang "" "bg:color_blue" "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
-          docker_context =
-            lang "" "bg:color_bg3"
-              "[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)";
-        };
     };
   };
 
diff --git a/config/home/void/home.nix b/config/home/void/home.nix
@@ -1,6 +1,9 @@
 {
-  lib,
+  config,
   homeManagerModules,
+  inputs,
+  lib,
+  pkgs,
   ...
 }:
 

@@ -15,4 +18,15 @@
       (lib.attrValues void.services)
     ];
 
+  home = {
+    packages = with pkgs; [
+      thunderbird
+    ];
+    shellAliases = {
+      ",," = "comma -s";
+    };
+  };
+  programs.nh.enable = true;
+  programs.librewolf.enable = true;
+
 }
diff --git a/config/home/void/impermanence.nix b/config/home/void/impermanence.nix
@@ -0,0 +1,28 @@
+{ ... }:
+
+{
+
+  home.persistence."/nix/persist/home/void" = {
+    enable = false;
+    allowOther = true;
+    removePrefixDirectory = true;
+    directories =
+      let
+        symlink = path: {
+          method = "symlink";
+          directory = path;
+        };
+      in
+      [
+        (symlink "syncthing/Documents")
+        (symlink "syncthing/Bahn-Richtlinien")
+        (symlink "syncthing/Videos")
+        (symlink "syncthing/Pictures")
+        (symlink "syncthing/Music")
+        (symlink "syncthing/Audiobooks")
+        (symlink "data/Downloads")
+        (symlink "data/proj")
+      ];
+  };
+
+}
diff --git a/config/home/void/programs/fuzzel.nix b/config/home/void/programs/fuzzel.nix
@@ -0,0 +1,33 @@
+{ ... }:
+
+{
+
+  programs.fuzzel = {
+    enable = true;
+    settings = {
+      main = {
+        launch-prefix = "app2unit --fuzzel-compat --";
+        dpi-aware = false;
+        horizontal-pad = 15;
+        vertical-pad = 15;
+        inner-pad = 5;
+      };
+      border = {
+        width = 2;
+        radius = 6;
+      };
+      #colors = {
+      #  background = "#000000f0"; # Background color
+      #  text = "#d8daddff"; # Text (foreground) color of unselected entries
+      #  prompt = "#d8daddff"; # Text (foreground) color of prompt character(s)
+      #  input = "#d8daddff"; # Text (foreground) color of input string
+      #  match = "#d8daddff"; # Text (foreground) color of the matched substring
+      #  selection = "#b2a4d4ff"; # Background color of the selected entry
+      #  selection-text = "#000000ff"; # Text (foreground) color of the selected entry
+      #  selection-match = "#b7d4edf2"; # Text (foreground) color of the matched substring of the selected entry
+      #  border = "#b2a4d4ff"; # The color of the match count stats printed at the right-hand side of the input prompt
+      #};
+    };
+  };
+
+}
diff --git a/config/home/void/programs/kitty.nix b/config/home/void/programs/kitty.nix
@@ -1,10 +1,14 @@
 {
+  lib,
+  ...
+}:
+
+{
   config = {
     programs.kitty = {
       enable = true;
       settings = {
         term = "xterm-256color";
-        background_opacity = "0.75";
         enableGitIntegration = true;
       };
     };
diff --git a/config/home/void/programs/sway.nix b/config/home/void/programs/sway.nix
@@ -12,9 +12,9 @@ let
   DOCK_R = "Lenovo Group Limited T23d-10 V90B7ALM";
   DOCK_L = "Lenovo Group Limited T23d-10 V90B7AL8";
 
-  ws_2 = "'2: code'";
-  ws_3 = "'3: librewolf'";
-  ws_4 = "'4: matrix'";
+  ws_2 = "'2 dev'";
+  ws_3 = "'3 web'";
+  ws_4 = "'4 com'";
 
   inherit (wayland.windowManager.sway.config) modifier;
 

@@ -22,10 +22,31 @@ in
 {
 
   config = {
+    #gtk = {
+      #enable = true;
+      #cursorTheme = {
+      #  name = "adwaita";
+      #  size = 20;
+      #};
+      #iconTheme = {
+      #  name = "Papirus-Dark";
+      #  package = pkgs.papirus-icon-theme;
+      #};
+      #theme = {
+      #  name = "adwaita";
+      #  package = pkgs.gnome-themes-extra;
+      #};
+    #};
+
+    #qt = {
+    #  enable = true;
+    #  platformTheme.name = "adwaita";
+    #  style.name = "adwaita";
+    #};
+
     home = {
       packages = with pkgs; [
         grim
-        pulseaudio # for pactl
         slurp
         wl-clipboard
       ];

@@ -38,84 +59,110 @@ in
       feh.enable = true;
     };
 
-    wayland.windowManager.sway = {
-      enable = true;
-      extraConfig = ''
-        exec element-desktop
-      '';
-      extraOptions = [ "--unsupported-gpu" ];
-      config = {
-        assigns = {
-          "${ws_2}" = [ { "app_id" = "code"; } ];
-          "${ws_3}" = [ { "app_id" = "librewolf"; } ];
-          "${ws_4}" = [ { "app_id" = "Element"; } ];
-        };
-        bars = [
-          {
-            command = "waybar";
-            mode = "hide";
-          }
-        ];
-        gaps = {
-          inner = 8;
-          outer = 3;
-        };
-        input."*" = {
-          xkb_layout = "de";
-        };
-        keybindings = mkOptionDefault {
-          "${modifier}+2" = "workspace ${ws_2}";
-          "${modifier}+3" = "workspace ${ws_3}";
-          "${modifier}+4" = "workspace ${ws_4}";
+    wayland = {
+      systemd.target = "sway-session.target";
+      windowManager.sway = {
+        enable = true;
+        extraConfig = ''
+          exec element-desktop
+        '';
+        #extraOptions = [ "--unsupported-gpu" ];
+        config = {
+          assigns = {
+            "${ws_2}" = [ { "app_id" = "code"; } ];
+            "${ws_3}" = [ { "app_id" = "librewolf"; } ];
+            "${ws_4}" = [ { "app_id" = "Element"; } ];
+          };
+          bars = [
+            {
+              command = "waybar";
+              mode = "hide";
+            }
+          ];
+          #colors = {
+          #  focused = {
+          #    background = "#B2A4D4";
+          #    border = "#B2A4D4";
+          #    indicator = "#ffffff";
+          #    childBorder = "#B2A4D4";
+          #    text = "#000000";
+          #  };
+          #};
+          gaps = {
+            inner = 2;
+            #outer = 2;
+          };
+          input = {
+            "12951:6505:ZSA_Technology_Labs_Moonlander_Mark_I".xkb_variant = "''";
+            "type:keyboard" = {
+              xkb_layout = "gb";
+              xkb_variant = "colemak_dh";
+            };
+            "type:touchpad" = {
+              tap = "enabled";
+              natural_scroll = "enabled";
+            };
+          };
+          keybindings = mkOptionDefault {
+            "${modifier}+2" = "workspace ${ws_2}";
+            "${modifier}+3" = "workspace ${ws_3}";
+            "${modifier}+4" = "workspace ${ws_4}";
 
-          "${modifier}+Shift+2" = "move container to workspace ${ws_2}";
-          "${modifier}+Shift+3" = "move container to workspace ${ws_3}";
-          "${modifier}+Shift+4" = "move container to workspace ${ws_4}";
+            "${modifier}+Shift+2" = "move container to workspace ${ws_2}";
+            "${modifier}+Shift+3" = "move container to workspace ${ws_3}";
+            "${modifier}+Shift+4" = "move container to workspace ${ws_4}";
 
-          "${modifier}+Shift+Delete" = "exec 'swaymsg exit'";
-          "${modifier}+L" = "exec 'swaylock -f --grace 0'";
-          "XF86MonBrightnessDown" = "exec brightnessctl 10%-";
-          "XF86MonBrightnessUp" = "exec brightnessctl +10%";
-          "XF86AudioRaiseVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ +1%'";
-          "XF86AudioLowerVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ -1%'";
-          "XF86AudioMute" = "exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'";
-        };
-        modifier = "Mod4";
-        output."*" = {
-          bg = "${inputs.self.resources.void.background} fill";
-        };
-        terminal = "kitty";
-        window.titlebar = false;
-        workspaceOutputAssign = (
-          (map
-            (n: {
-              output = DOCK_L;
-              workspace = n;
-            })
-            [
-              "6"
-              "7"
-              "8"
-              "9"
-              "10"
-            ]
-          )
-          ++
-            map
+            "${modifier}+Shift+Delete" = "exec 'swaymsg exit'";
+            "${modifier}+Delete" = "exec 'swaylock -f --grace 0'";
+            "--locked XF86MonBrightnessDown" = "exec '${pkgs.brightnessctl}/bin/brightnessctl set --min-value=19200 10%-'";
+            "--locked XF86MonBrightnessUp" = "exec '${pkgs.brightnessctl}/bin/brightnessctl set 10%+'";
+            "--locked XF86AudioRaiseVolume" =
+              "exec '${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 5%+'";
+            "--locked XF86AudioLowerVolume" =
+              "exec '${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 5%-'";
+            "--locked XF86AudioMute" = "exec '${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle'";
+            "Print" = "exec '${pkgs.slurp}/bin/slurp | ${pkgs.grim}/bin/grim'";
+            "${modifier}+Tab" = "exec ${pkgs.swayr}/bin/swayr switch-window";
+          };
+          menu = "${pkgs.fuzzel}/bin/fuzzel";
+          modifier = "Mod4";
+          output."*" = {
+            bg = "${inputs.self.resources.void.background} fill";
+          };
+          terminal = "kitty";
+          window.titlebar = false;
+          workspaceOutputAssign = (
+            (map
               (n: {
-                output = DOCK_R;
+                output = DOCK_L;
                 workspace = n;
               })
               [
-                "1"
-                ws_2
-                ws_3
-                ws_4
-                "5"
+                "6"
+                "7"
+                "8"
+                "9"
+                "10"
               ]
-        );
+            )
+            ++
+              map
+                (n: {
+                  output = DOCK_R;
+                  workspace = n;
+                })
+                [
+                  "1"
+                  ws_2
+                  ws_3
+                  ws_4
+                  "5"
+                ]
+          );
+        };
+        wrapperFeatures.gtk = true;
+        #xwayland = false;
       };
-      wrapperFeatures.gtk = true;
     };
   };
 
diff --git a/config/home/void/programs/swaylock.nix b/config/home/void/programs/swaylock.nix
@@ -13,10 +13,10 @@
         clock = true;
         fade-in = 5;
         grace = 5;
-        image = inputs.self.resources.void.background;
+        #image = inputs.self.resources.void.background;
         indicator = true;
         indicator-radius = 100;
-        ring-color = "00497A";
+        #ring-color = "00497A";
         show-failed-attempts = true;
       };
     };
diff --git a/config/home/void/programs/waybar.nix b/config/home/void/programs/waybar.nix
@@ -45,6 +45,7 @@
             "backlight"
             "battery"
             "tray"
+            "power-profiles-daemon"
             "custom/power"
           ];
           "sway/workspaces" = {

@@ -146,7 +147,7 @@
           battery = {
             states = {
               warning = 30;
-              critical = 15;
+              critical = 20;
             };
             format = "{capacity}% {icon}";
             format-charging = "{capacity}% ";

@@ -164,12 +165,13 @@
               ""
               ""
             ];
+            full-at = 80;
             on-update = pkgs.writeShellScript "check-battery" ''
               #!/usr/bin/env sh
 
               PATH=$PATH:${pkgs.coreutils-full}/bin:${pkgs.libnotify}/bin
 
-              bat=/sys/class/power_supply/BAT0
+              bat=/sys/class/power_supply/BAT1
               CRIT=''${1:-15}
 
               FILE=~/.config/waybar/scripts/notified

@@ -205,229 +207,7 @@
           };
         }
       ];
-      style = ''
-        * {
-            border: none;
-            border-radius: 0;
-            font-family: MesloLGS NF;
-            min-height: 20px;
-            padding: 5px;
-        }
-
-        window#waybar {
-            background: transparent;
-        }
-
-        window#waybar.hidden {
-            opacity: 0.2;
-        }
-
-        #workspaces {
-            margin-right: 8px;
-            border-radius: 10px;
-            transition: none;
-            background: #383c4a;
-        }
-
-        #workspaces button {
-            transition: none;
-            color: #7c818c;
-            background: transparent;
-            padding: 0px;
-            font-size: 18px;
-        }
-
-        #workspaces button.persistent {
-            color: #7c818c;
-            font-size: 12px;
-        }
-
-        /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
-        #workspaces button:hover {
-            transition: none;
-            box-shadow: inherit;
-            text-shadow: inherit;
-            border-radius: inherit;
-            color: #383c4a;
-            background: #7c818c;
-        }
-
-        #workspaces button.focused {
-            color: white;
-        }
-
-        #idle_inhibitor {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #idle_inhibitor.activated {
-            color: #383c4a;
-            background: #ffffff;
-        }
-
-        #keyboard-state {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 8px;
-            border-radius: 10px 10px 10px 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #mode {
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #network {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #clock {
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px 10px 10px 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #pulseaudio {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #pulseaudio.muted {
-            background-color: #90b1b1;
-            color: #2a5c45;
-        }
-
-        #cpu {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #memory {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #temperature {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #temperature.critical {
-            background-color: #eb4d4b;
-        }
-
-        #backlight {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #battery {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #battery.charging {
-            color: #ffffff;
-            background-color: #26A65B;
-        }
-
-        #battery.warning:not(.charging) {
-            background-color: #ffbe61;
-            color: black;
-        }
-
-        #battery.critical:not(.charging) {
-            background-color: #f53c3c;
-            color: #ffffff;
-            animation-name: blink;
-            animation-duration: 0.5s;
-            animation-timing-function: linear;
-            animation-iteration-count: infinite;
-            animation-direction: alternate;
-        }
-
-        #tray {
-            margin-right: 8px;
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        #custom-power {
-            padding-left: 16px;
-            padding-right: 16px;
-            border-radius: 10px;
-            transition: none;
-            color: #ffffff;
-            background: #383c4a;
-        }
-
-        @keyframes blink {
-            to {
-                background-color: #ffffff;
-                color: #000000;
-            }
-        }
-      '';
-      systemd = {
-        enable = true;
-        target = "sway-session.target";
-      };
+      style = builtins.readFile inputs.self.resources.void.programs.waybar.style;
     };
   };
 
diff --git a/config/home/void/services/gpg-agent.nix b/config/home/void/services/gpg-agent.nix
@@ -1,4 +1,9 @@
 {
+  pkgs,
+  ...
+}:
+
+{
 
   config = {
     services.gpg-agent = {

@@ -8,6 +13,10 @@
         "333BB4DAF37CAE63207F463D32EBD69BE5C74E75"
         "E6EE9F928448B4CBFE3BC4D7ED86FD11FD70C867"
       ];
+      pinentry = {
+        package = pkgs.pinentry-all;
+        program = "pinentry-gnome3";
+      };
     };
   };
 
diff --git a/config/home/void/services/swayidle.nix b/config/home/void/services/swayidle.nix
@@ -1,29 +1,48 @@
 {
   config,
+  lib,
+  pkgs,
   ...
 }:
+
+let
+  inherit (lib) getExe getExe';
+in
+
 {
 
   config = {
     services.swayidle = {
       enable = true;
-      systemdTarget = "sway-session.target";
       timeouts = [
         {
+          timeout = 30;
+          command = "${getExe pkgs.brightnessctl} set -s $[ $(${getExe pkgs.brightnessctl} get) / 10 ]";
+          resumeCommand = "${getExe pkgs.brightnessctl} -r";
+        }
+        {
           timeout = 90;
-          command = "${config.programs.swaylock.package}/bin/swaylock -f";
+          command = "${getExe' config.wayland.windowManager.sway.package "swaymsg"} 'output * power off'";
+          resumeCommand = "${getExe' config.wayland.windowManager.sway.package "swaymsg"} 'output * power on'";
         }
         {
-          timeout = 95;
-          command = "${config.wayland.windowManager.sway.package}/bin/swaymsg 'output * power off'";
-          resumeCommand = "${config.wayland.windowManager.sway.package}/bin/swaymsg 'output * power on'";
+          timeout = 120;
+          command = "${getExe' pkgs.systemd "loginctl"} lock-session";
         }
       ];
       events = [
         {
           event = "before-sleep";
-          # Invoke swaylock instantaneously and without animations that inhibit sleep.
-          command = "${config.programs.swaylock.package}/bin/swaylock -f --grace 0 --fade-in 0";
+          # Invoke swaylock instantaneously and without animations that delay sleep.
+          command = "${getExe config.programs.swaylock.package} -f --grace 0 --fade-in 0";
+        }
+        {
+          event = "lock";
+          command = "${getExe config.programs.swaylock.package} -f --grace 0";
+        }
+        {
+          event = "unlock";
+          command = "${getExe' pkgs.procps "pkill"} -10 swaylock";
         }
       ];
     };
diff --git a/config/home/void/services/syncthing.nix b/config/home/void/services/syncthing.nix
@@ -0,0 +1,12 @@
+{ config, ... }:
+
+{
+
+  services.syncthing = {
+    enable = true;
+    overrideDevices = false;
+    overrideFolders = false;
+    tray.enable = true;
+  };
+
+}
diff --git a/config/nixos/modules/boot/plymouth.nix b/config/nixos/modules/boot/plymouth.nix
@@ -32,7 +32,7 @@ in
       ];
       plymouth = {
         enable = true;
-        inherit (cfg) theme;
+        #inherit (cfg) theme;
       };
     };
   };
diff --git a/config/nixos/modules/filesystem/root.nix.bak b/config/nixos/modules/filesystem/root.nix.bak
@@ -0,0 +1,138 @@
+{
+  povSelf,
+  hostConfig,
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+
+let
+  inherit (lib) types;
+  cfg = lib.getAttrFromPath povSelf config;
+  users = lib.pipe config.modules.users [
+    (lib.mapAttrsToList (name: value: if value.enable then name else null))
+    (lib.filter (element: !builtins.isNull element))
+  ];
+  part =
+    name: content:
+    if cfg.encrypt then
+      {
+        type = "luks";
+        settings.allowDiscards = true;
+        inherit name content;
+      }
+    else
+      content;
+in
+{
+
+  options = {
+    enable = {
+      type = types.bool;
+      default = false;
+    };
+    disks = {
+      type = types.listOf types.path;
+    };
+    type = {
+      type = types.enum [
+        "lvm"
+        "zfs"
+      ];
+    };
+    encrypt = {
+      type = types.bool;
+      default = false;
+    };
+    parts = {
+      home = {
+        type = types.bool;
+        default = false;
+      };
+      homePerUser = {
+        type = types.bool;
+        default = cfg.parts.home;
+      };
+      nix = {
+        type = types.bool;
+        default = true;
+      };
+      tmp = {
+        type = types.bool;
+        default = false;
+      };
+      system = {
+        type = types.bool;
+        default = false;
+      };
+    };
+    reservedSpace = {
+      type = types.nullOr types.str;
+      default = "8G";
+    };
+    swap = {
+      enable = {
+        type = types.bool;
+        default = false;
+      };
+      size = {
+        type = types.strMatching "[0-9]+[KMGTP]";
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    disko.devices = {
+      disk = listToAttrs (imap0 (i: device: { name = "${hostConfig.hostName}-dsk${toString i}"; value = {
+        inherit device;
+        content = {
+          type = "gpt";
+          partitions = {
+            boot = {
+              size = "512M";
+              type = "EF00";
+              content = {
+                type = "filesystem";
+                format = "vfat";
+                # FIXME: Multidisk?
+                mountpoint = "/boot";
+                mountOptions = [
+                  "umask=0077"
+                  "dmask=0077"
+                  "nofail"
+                ];
+              };
+            };
+            cryptroot = {
+              size = "100%";
+              content = {
+                type = "luks";
+                settings = {
+                  allowDiscards = true; # FIXME: If disk is an SSD??
+                };
+                content = {
+                  type = "lvm_pv"; # FIXME: Or ZFS?
+                  vg = hostConfig.hostName;
+                };
+              };
+            };
+          };
+        };
+      }) cfg.disks);
+      lvm_vg = {
+        ${hostConfig.hostName} = {
+          lvs = {
+            swap = {
+              size = cfg.swap.size;
+              content.type = "swap";
+            };
+            root = {};
+            nix = {};
+            persist = {};
+            home = {};
+          };
+        };
+      };
+  };
+}
diff --git a/config/nixos/modules/font.nix b/config/nixos/modules/font.nix
@@ -24,10 +24,6 @@ in
       fontDir.enable = true;
       enableGhostscriptFonts = true;
       enableDefaultPackages = true;
-      packages = with pkgs; [
-        dejavu_fonts
-        meslo-lgs-nf
-      ];
     };
   };
 
diff --git a/config/nixos/modules/hardware/video/intel.nix b/config/nixos/modules/hardware/video/intel.nix
@@ -18,13 +18,23 @@ in
   };
 
   config = lib.mkIf cfg.enable {
-    boot.initrd.kernelModules = [ "i915" ];
+    boot.blacklistedKernelModules = [ "xe" ];
+    #boot.initrd.kernelModules = [ "i915" ];
+
+    hardware.intelgpu.driver = "i915";
+
+    #services.xserver.videoDrivers = [ "intel" ];
+
+    environment.systemPackages = [ pkgs.vulkan-validation-layers ];  
+    environment.sessionVariables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json:/run/opengl-driver-32/share/vulkan/icd.d/intel_icd.i686.json";
 
     hardware.graphics = {
       enable = true;
+      enable32Bit = true;
       extraPackages = with pkgs; [
+        #libvdpau-va-gl
         vpl-gpu-rt
-        intel-media-driver
+        #libva
       ];
     };
   };
diff --git a/config/nixos/modules/homeManager.nix b/config/nixos/modules/homeManager.nix
@@ -26,6 +26,7 @@ in
     {
       home-manager = {
         useGlobalPkgs = true;
+        useUserPackages = true;
         extraSpecialArgs = {
           inherit (inputs.self) homeManagerModules;
 
diff --git a/config/nixos/modules/presets/base.nix b/config/nixos/modules/presets/base.nix
@@ -24,8 +24,8 @@ in
     boot.kernel.sysctl."kernel.sysrq" = lib.mkDefault 1;
 
     # make things more declerative
-    services.userborn.enable = lib.mkDefault true;
-    users.mutableUsers = lib.mkForce false;
+    #services.userborn.enable = lib.mkDefault true;
+    #users.mutableUsers = lib.mkForce false;
 
     networking = {
       hostId = builtins.substring 0 8 (builtins.hashString "sha256" hostConfig.hostName);

@@ -42,8 +42,10 @@ in
     hardware.enableRedistributableFirmware = true;
 
     modules = {
-      boot.enable = lib.mkDefault true;
-      boot.type = lib.mkDefault "uefi";
+      boot = {
+        enable = lib.mkDefault true;
+        type = lib.mkDefault "uefi";
+      };
 
       locale.enable = lib.mkDefault true;
       unfree.enable = lib.mkDefault true;

@@ -77,6 +79,10 @@ in
       };
     };
 
+    programs = {
+      command-not-found.enable = false; # Not usable without channels; use nix-index instead.
+    };
+
     services = {
       dbus.implementation = "broker";
       #fstrim.enable = lib.mkDefault true;

@@ -85,7 +91,6 @@ in
     security.sudo.extraConfig = "Defaults lecture=\"never\""; # "We trust you have received the usual lecture from the local System Administrator."
 
     system = {
-      switch.enableNg = true;
       # thanks piegames (https://git.darmstadt.ccc.de/piegames/home-config/-/blob/master/modules/generic.nix#L84)
       activationScripts = {
         diff = {
diff --git a/config/nixos/modules/presets/graphical/type.nix b/config/nixos/modules/presets/graphical/type.nix
@@ -16,6 +16,7 @@ in
       types.enum [
         "gnomeMinimal"
         "niri"
+        "sway"
       ]
     );
     default = null;
diff --git a/config/nixos/modules/presets/graphical/typeSway.nix b/config/nixos/modules/presets/graphical/typeSway.nix
@@ -0,0 +1,44 @@
+{
+  pov,
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+let
+  cfg = lib.getAttrFromPath pov config;
+
+in
+{
+
+  config = lib.mkIf (cfg.enable && (cfg.type == "sway")) {
+    modules = {
+      #hardware.bluetooth.enable = true;
+      networking.NetworkManager.enable = true; # TODO: why is this *here*?
+
+      services = {
+        #udisks2.enable = true;
+        #gvfs.enable = true;
+
+        upower.enable = true;
+        power-profiles-daemon.enable = true;
+
+        #swaylock.enable = lib.mkDefault true;
+        greetd = {
+          enable = lib.mkDefault true;
+          greeter = lib.mkDefault "regreet";
+          autoLogin.command = lib.mkDefault "sway";
+        };
+      };
+    };
+
+    security.polkit.enable = true;
+
+    programs = {
+      #dconf.enable = true;
+      #niri.enable = true;
+      #niri.package = pkgs.unstable.niri;
+    };
+  };
+
+}
diff --git a/config/nixos/modules/presets/void/enable.nix b/config/nixos/modules/presets/void/enable.nix
@@ -19,9 +19,14 @@ in
   };
 
   config = lib.mkIf cfg {
+    boot.bcache.enable = false;
     fonts.fontconfig.defaultFonts = {
       monospace = [ "MesloLGS NF" ];
     };
+    modules.hardware.smartcard.enable = lib.mkDefault config.modules.presets.graphical.enable;
+    programs = {
+      nix-index.enable = true;
+    };
   };
 
 }
diff --git a/config/nixos/modules/presets/void/stylix.nix b/config/nixos/modules/presets/void/stylix.nix
@@ -0,0 +1,49 @@
+{
+  config,
+  inputs,
+  lib,
+  pkgs,
+  ...
+}:
+
+{
+
+  config = lib.mkIf (config.modules.presets.void.enable && config.modules.presets.graphical.enable) {
+    home-manager.sharedModules = [
+      {
+        dconf.settings."org/gnome/desktop/interface".color-scheme = lib.mkForce "prefer-dark";
+        stylix.targets.librewolf = {
+          #colorTheme.enable = true;
+          profileNames = [ "default" ];
+        };
+      }
+    ];
+    stylix = {
+      enable = true;
+      base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
+      image = inputs.self.resources.void.background;
+      fonts = {
+        serif = {
+          #package = pkgs.roboto;
+          #name = "Roboto Serif";
+        };
+        sansSerif = {
+          #package = pkgs.roboto;
+          #name = "Roboto Sans";
+        };
+        monospace = {
+          package = pkgs.meslo-lgs-nf;
+          name = "Fira Code";
+        };
+      };
+      iconTheme = {
+        enable = true;
+        package = pkgs.papirus-icon-theme;
+        dark = "Papirus-Dark";
+        light = "Papirus-Light";
+      };
+      opacity.terminal = 0.9;
+    };
+  };
+
+}
diff --git a/config/nixos/modules/services/greetd.nix b/config/nixos/modules/services/greetd.nix
@@ -1,8 +1,9 @@
 {
-  povSelf,
   config,
+  inputs,
   lib,
   pkgs,
+  povSelf,
   ...
 }:
 

@@ -20,6 +21,7 @@ in
     };
     greeter = {
       type = types.enum [
+        "regreet"
         "tuigreet"
       ];
       default = "tuigreet";

@@ -40,7 +42,7 @@ in
         security.pam.services.greetd = {
           fprintAuth = false; # This would break gnome-keyring auto unlocking
           fprintAuthSkipLidClose = false;
-          enableGnomeKeyring = true;
+          #enableGnomeKeyring = true;
         };
 
         services.greetd = {

@@ -57,6 +59,84 @@ in
           };
         };
       })
+      (lib.mkIf (cfg.greeter == "regreet") {
+        modules.filesystem.impermanence.system.dirs = [
+          {
+            directory = "/var/cache/regreet";
+            mode = "755";
+            user = "greeter";
+            group = "greeter";
+          }
+        ];
+
+        systemd.tmpfiles.settings."greetd" = {
+          "/var/cache/regreet" = {
+            d = {
+              mode = "755";
+              user = "greeter";
+              group = "greeter";
+            };
+          };
+        };
+
+        programs.regreet = {
+          enable = true;
+          cageArgs = [ ];
+          settings = {
+            env = {
+              XKB_DEFAULT_LAYOUT = "gb";
+              XKB_DEFAULT_VARIANT = "colemak_dh";
+            };
+            GTK = {
+              # Whether to use the dark theme
+              application_prefer_dark_theme = lib.mkForce true;
+            };
+
+            commands = {
+              # The command used to reboot the system
+              reboot = [
+                "systemctl"
+                "reboot"
+              ];
+
+              # The command used to shut down the system
+              poweroff = [
+                "systemctl"
+                "poweroff"
+              ];
+            };
+
+            appearance = {
+              # The message that initially displays on startup
+              greeting_msg = "Welcome back to ${config.networking.hostName}!";
+            };
+          };
+        };
+
+        services.greetd = {
+          enable = true;
+          settings =
+            let
+              swayConfig = pkgs.writeText "greetd-sway-config" ''
+                input "type:keyboard" {
+                  xkb_layout gb
+                  xkb_variant colemak_dh
+                }
+                include /etc/sway/config.d/*
+                exec "${config.programs.regreet.package}/bin/regreet; swaymsg exit"
+              '';
+            in
+            {
+              default_session = {
+                #command = ''
+                #  ${pkgs.sway}/bin/sway --config ${swayConfig}
+                #'';
+                user = "greeter";
+              };
+            };
+        };
+
+      })
       (lib.mkIf (cfg.greeter == "tuigreet") {
         modules.filesystem.impermanence.system.dirs = [
           {
diff --git a/config/nixos/modules/users/void.nix b/config/nixos/modules/users/void.nix
@@ -23,7 +23,7 @@ in
       {
         sops.secrets.voidPassword = {
           neededForUsers = true;
-          sopsFile = inputs.self.sopsSecrets.common;
+          #sopsFile = inputs.self.sopsSecrets.common;
         };
 
         users.users.void = {

@@ -37,6 +37,7 @@ in
             "docker"
             "input"
             "networkmanager"
+            "seat"
             "ssh"
             "tss"
             "video"

@@ -49,13 +50,14 @@ in
       }
 
       (lib.mkIf config.modules.homeManager.enable {
-        home-manager.users.void.imports = lib.concatLists [
+        home-manager.users.void.imports = with homeManagerModules.void; lib.concatLists [
           [
-            homeManagerModules.void.home
+            home
+            impermanence # FIXME
           ]
 
           (lib.optionals config.modules.filesystem.impermanence.home.enable [
-            #homeManagerModules.void.impermanence # FIXME: implement impermanence
+            homeManagerModules.void.impermanence # FIXME: implement impermanence
           ])
         ];
       })
diff --git a/flake.lock b/flake.lock
@@ -44,6 +44,142 @@
         "type": "github"
       }
     },
+    "base16": {
+      "inputs": {
+        "fromYaml": "fromYaml"
+      },
+      "locked": {
+        "lastModified": 1746562888,
+        "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
+        "owner": "SenchoPens",
+        "repo": "base16.nix",
+        "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
+        "type": "github"
+      },
+      "original": {
+        "owner": "SenchoPens",
+        "repo": "base16.nix",
+        "type": "github"
+      }
+    },
+    "base16-fish": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1754405784,
+        "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
+        "owner": "tomyun",
+        "repo": "base16-fish",
+        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tomyun",
+        "repo": "base16-fish",
+        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+        "type": "github"
+      }
+    },
+    "base16-fish_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1754405784,
+        "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
+        "owner": "tomyun",
+        "repo": "base16-fish",
+        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tomyun",
+        "repo": "base16-fish",
+        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+        "type": "github"
+      }
+    },
+    "base16-helix": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1748408240,
+        "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
+        "owner": "tinted-theming",
+        "repo": "base16-helix",
+        "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-helix",
+        "type": "github"
+      }
+    },
+    "base16-helix_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1752979451,
+        "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
+        "owner": "tinted-theming",
+        "repo": "base16-helix",
+        "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-helix",
+        "type": "github"
+      }
+    },
+    "base16-vim": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1732806396,
+        "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
+        "owner": "tinted-theming",
+        "repo": "base16-vim",
+        "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-vim",
+        "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+        "type": "github"
+      }
+    },
+    "base16-vim_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1732806396,
+        "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
+        "owner": "tinted-theming",
+        "repo": "base16-vim",
+        "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-vim",
+        "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+        "type": "github"
+      }
+    },
+    "base16_2": {
+      "inputs": {
+        "fromYaml": "fromYaml_2"
+      },
+      "locked": {
+        "lastModified": 1755819240,
+        "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
+        "owner": "SenchoPens",
+        "repo": "base16.nix",
+        "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
+        "type": "github"
+      },
+      "original": {
+        "owner": "SenchoPens",
+        "repo": "base16.nix",
+        "type": "github"
+      }
+    },
     "blobs": {
       "flake": false,
       "locked": {

@@ -268,6 +404,38 @@
         "type": "github"
       }
     },
+    "firefox-gnome-theme": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1748383148,
+        "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
+        "owner": "rafaelmardojai",
+        "repo": "firefox-gnome-theme",
+        "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
+        "type": "github"
+      },
+      "original": {
+        "owner": "rafaelmardojai",
+        "repo": "firefox-gnome-theme",
+        "type": "github"
+      }
+    },
+    "firefox-gnome-theme_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1758112371,
+        "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
+        "owner": "rafaelmardojai",
+        "repo": "firefox-gnome-theme",
+        "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
+        "type": "github"
+      },
+      "original": {
+        "owner": "rafaelmardojai",
+        "repo": "firefox-gnome-theme",
+        "type": "github"
+      }
+    },
     "firefoxGnomeTheme": {
       "flake": false,
       "locked": {

@@ -323,6 +491,48 @@
         "type": "github"
       }
     },
+    "flake-parts_2": {
+      "inputs": {
+        "nixpkgs-lib": [
+          "stylix",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1749398372,
+        "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
+        "type": "github"
+      },
+      "original": {
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "type": "github"
+      }
+    },
+    "flake-parts_3": {
+      "inputs": {
+        "nixpkgs-lib": [
+          "stylixUnstable",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1756770412,
+        "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "rev": "4524271976b625a4a605beefd893f270620fd751",
+        "type": "github"
+      },
+      "original": {
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "type": "github"
+      }
+    },
     "flakeCompat": {
       "locked": {
         "lastModified": 1747046372,

@@ -413,6 +623,38 @@
         "url": "https://git.zaphyra.eu/flauschehorn.sexy"
       }
     },
+    "fromYaml": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1731966426,
+        "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
+        "owner": "SenchoPens",
+        "repo": "fromYaml",
+        "rev": "106af9e2f715e2d828df706c386a685698f3223b",
+        "type": "github"
+      },
+      "original": {
+        "owner": "SenchoPens",
+        "repo": "fromYaml",
+        "type": "github"
+      }
+    },
+    "fromYaml_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1731966426,
+        "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
+        "owner": "SenchoPens",
+        "repo": "fromYaml",
+        "rev": "106af9e2f715e2d828df706c386a685698f3223b",
+        "type": "github"
+      },
+      "original": {
+        "owner": "SenchoPens",
+        "repo": "fromYaml",
+        "type": "github"
+      }
+    },
     "git-hooks": {
       "inputs": {
         "flake-compat": [

@@ -531,6 +773,40 @@
         "type": "github"
       }
     },
+    "gnome-shell": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1744584021,
+        "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
+        "owner": "GNOME",
+        "repo": "gnome-shell",
+        "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
+        "type": "github"
+      },
+      "original": {
+        "owner": "GNOME",
+        "ref": "48.1",
+        "repo": "gnome-shell",
+        "type": "github"
+      }
+    },
+    "gnome-shell_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1748186689,
+        "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
+        "owner": "GNOME",
+        "repo": "gnome-shell",
+        "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
+        "type": "github"
+      },
+      "original": {
+        "owner": "GNOME",
+        "ref": "48.2",
+        "repo": "gnome-shell",
+        "type": "github"
+      }
+    },
     "gpxMap": {
       "inputs": {
         "nixpkgs": [

@@ -632,11 +908,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1756679287,
-        "narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
+        "lastModified": 1758463745,
+        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
+        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
         "type": "github"
       },
       "original": {

@@ -653,11 +929,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1757578556,
-        "narHash": "sha256-w1PGkTGow5XzsjccV364No46rkuGxTqo7m/4cfhnkIk=",
+        "lastModified": 1761666354,
+        "narHash": "sha256-fHr+tIYBJccNF8QWqgowfRmEAtAMSt1deZIRNKL8A7c=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "b7112b12ea5b8c3aa6af344498ed9ca27dd03ba3",
+        "rev": "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9",
         "type": "github"
       },
       "original": {

@@ -904,11 +1180,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1758663926,
-        "narHash": "sha256-6CFdj7Xs616t1W4jLDH7IohAAvl5Dyib3qEv/Uqw1rk=",
+        "lastModified": 1761669189,
+        "narHash": "sha256-INBZnPA9JzyDn+Fnni2250PbRzKx7Eafz0T2c7NhXiQ=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "170ff93c860b2a9868ed1e1102d4e52cb3d934e1",
+        "rev": "9c0ee5dfa186e10efe9b53505b65d22c81860fde",
         "type": "github"
       },
       "original": {

@@ -1013,6 +1289,57 @@
         "type": "github"
       }
     },
+    "nur": {
+      "inputs": {
+        "flake-parts": [
+          "stylix",
+          "flake-parts"
+        ],
+        "nixpkgs": [
+          "stylix",
+          "nixpkgs"
+        ],
+        "treefmt-nix": "treefmt-nix"
+      },
+      "locked": {
+        "lastModified": 1751320053,
+        "narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
+        "owner": "nix-community",
+        "repo": "NUR",
+        "rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "NUR",
+        "type": "github"
+      }
+    },
+    "nur_2": {
+      "inputs": {
+        "flake-parts": [
+          "stylixUnstable",
+          "flake-parts"
+        ],
+        "nixpkgs": [
+          "stylixUnstable",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1758998580,
+        "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
+        "owner": "nix-community",
+        "repo": "NUR",
+        "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "NUR",
+        "type": "github"
+      }
+    },
     "oeffisearch": {
       "inputs": {
         "nixpkgs": [

@@ -1111,6 +1438,8 @@
         "simpleNixosMailserverUnstable": "simpleNixosMailserverUnstable",
         "sopsNix": "sopsNix",
         "stagit": "stagit",
+        "stylix": "stylix",
+        "stylixUnstable": "stylixUnstable",
         "tgcNUR": "tgcNUR",
         "things": "things",
         "zaphyraWebsite": "zaphyraWebsite"

@@ -1299,6 +1628,105 @@
         "url": "https://git.zaphyra.eu/stagit"
       }
     },
+    "stylix": {
+      "inputs": {
+        "base16": "base16",
+        "base16-fish": "base16-fish",
+        "base16-helix": "base16-helix",
+        "base16-vim": "base16-vim",
+        "firefox-gnome-theme": "firefox-gnome-theme",
+        "flake-parts": "flake-parts_2",
+        "gnome-shell": "gnome-shell",
+        "nixpkgs": [
+          "nixpkgs"
+        ],
+        "nur": "nur",
+        "systems": "systems",
+        "tinted-foot": "tinted-foot",
+        "tinted-kitty": "tinted-kitty",
+        "tinted-schemes": "tinted-schemes",
+        "tinted-tmux": "tinted-tmux",
+        "tinted-zed": "tinted-zed"
+      },
+      "locked": {
+        "lastModified": 1761668239,
+        "narHash": "sha256-b0+7/5hBUsLjd/gMY9/LSEsvuWFFolHdpUAOlG73zmw=",
+        "owner": "nix-community",
+        "repo": "stylix",
+        "rev": "a149a557dc306e76d53e7dd488826e61ef9c6289",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "ref": "release-25.05",
+        "repo": "stylix",
+        "type": "github"
+      }
+    },
+    "stylixUnstable": {
+      "inputs": {
+        "base16": "base16_2",
+        "base16-fish": "base16-fish_2",
+        "base16-helix": "base16-helix_2",
+        "base16-vim": "base16-vim_2",
+        "firefox-gnome-theme": "firefox-gnome-theme_2",
+        "flake-parts": "flake-parts_3",
+        "gnome-shell": "gnome-shell_2",
+        "nixpkgs": [
+          "nixpkgsUnstable"
+        ],
+        "nur": "nur_2",
+        "systems": "systems_2",
+        "tinted-foot": "tinted-foot_2",
+        "tinted-kitty": "tinted-kitty_2",
+        "tinted-schemes": "tinted-schemes_2",
+        "tinted-tmux": "tinted-tmux_2",
+        "tinted-zed": "tinted-zed_2"
+      },
+      "locked": {
+        "lastModified": 1761666531,
+        "narHash": "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs=",
+        "owner": "nix-community",
+        "repo": "stylix",
+        "rev": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "stylix",
+        "type": "github"
+      }
+    },
+    "systems": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    },
+    "systems_2": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    },
     "tgcNUR": {
       "inputs": {
         "emacs-overlay": "emacs-overlay",

@@ -1343,6 +1771,190 @@
         "url": "https://git.zaphyra.eu/things"
       }
     },
+    "tinted-foot": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1726913040,
+        "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
+        "owner": "tinted-theming",
+        "repo": "tinted-foot",
+        "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-foot",
+        "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+        "type": "github"
+      }
+    },
+    "tinted-foot_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1726913040,
+        "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
+        "owner": "tinted-theming",
+        "repo": "tinted-foot",
+        "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-foot",
+        "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+        "type": "github"
+      }
+    },
+    "tinted-kitty": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1735730497,
+        "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
+        "owner": "tinted-theming",
+        "repo": "tinted-kitty",
+        "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-kitty",
+        "type": "github"
+      }
+    },
+    "tinted-kitty_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1735730497,
+        "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
+        "owner": "tinted-theming",
+        "repo": "tinted-kitty",
+        "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-kitty",
+        "type": "github"
+      }
+    },
+    "tinted-schemes": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1750770351,
+        "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
+        "owner": "tinted-theming",
+        "repo": "schemes",
+        "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "schemes",
+        "type": "github"
+      }
+    },
+    "tinted-schemes_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1757716333,
+        "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
+        "owner": "tinted-theming",
+        "repo": "schemes",
+        "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "schemes",
+        "type": "github"
+      }
+    },
+    "tinted-tmux": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1751159871,
+        "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
+        "owner": "tinted-theming",
+        "repo": "tinted-tmux",
+        "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-tmux",
+        "type": "github"
+      }
+    },
+    "tinted-tmux_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1757811970,
+        "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
+        "owner": "tinted-theming",
+        "repo": "tinted-tmux",
+        "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "tinted-tmux",
+        "type": "github"
+      }
+    },
+    "tinted-zed": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1751158968,
+        "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
+        "owner": "tinted-theming",
+        "repo": "base16-zed",
+        "rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-zed",
+        "type": "github"
+      }
+    },
+    "tinted-zed_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1757811247,
+        "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
+        "owner": "tinted-theming",
+        "repo": "base16-zed",
+        "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "tinted-theming",
+        "repo": "base16-zed",
+        "type": "github"
+      }
+    },
+    "treefmt-nix": {
+      "inputs": {
+        "nixpkgs": [
+          "stylix",
+          "nur",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1733222881,
+        "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
+        "owner": "numtide",
+        "repo": "treefmt-nix",
+        "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "treefmt-nix",
+        "type": "github"
+      }
+    },
     "xwayland-satellite-stable": {
       "flake": false,
       "locked": {
diff --git a/flake.nix b/flake.nix
@@ -98,17 +98,19 @@
             }
 
             (
-              if !hostConfig.nixpkgsStable then
-                [
-                  inputs.homeManagerUnstable.nixosModules.default
-                  inputs.diskoUnstable.nixosModules.default
-                  inputs.simpleNixosMailserverUnstable.nixosModules.default
-                ]
-              else
+              if hostConfig.nixpkgsStable then
                 [
                   inputs.homeManager.nixosModules.default
                   inputs.disko.nixosModules.default
                   inputs.simpleNixosMailserver.nixosModules.default
+                  inputs.stylix.nixosModules.stylix
+                ]
+              else
+                [
+                  inputs.homeManagerUnstable.nixosModules.default
+                  inputs.diskoUnstable.nixosModules.default
+                  inputs.simpleNixosMailserverUnstable.nixosModules.default
+                  inputs.stylixUnstable.nixosModules.stylix
                 ]
             )
 

@@ -242,6 +244,12 @@
     sopsNix.url = "github:Mic92/sops-nix";
     sopsNix.inputs.nixpkgs.follows = "nixpkgs";
 
+    stylix.url = "github:nix-community/stylix/release-25.05";
+    stylix.inputs.nixpkgs.follows = "nixpkgs";
+
+    stylixUnstable.url = "github:nix-community/stylix";
+    stylixUnstable.inputs.nixpkgs.follows = "nixpkgsUnstable";
+    
     disko.url = "github:nix-community/disko";
     disko.inputs.nixpkgs.follows = "nixpkgs";
 
diff --git a/hosts/eximius/configuration.nix b/hosts/eximius/configuration.nix
@@ -0,0 +1,82 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page, on
+# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
+
+{ config, lib, pkgs, ... }:
+
+{
+  # Use latest kernel.
+  boot.kernelPackages = pkgs.linuxPackages_latest;
+
+  hardware.bluetooth = {
+    enable = true;
+    powerOnBoot = false;
+  };
+
+  #networking.hostName = "eximius"; # Define your hostname.
+  # Pick only one of the below networking options.
+  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
+  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
+
+  # Set your time zone.
+  #time.timeZone = "Europe/Berlin";
+
+  # Configure network proxy if necessary
+  # networking.proxy.default = "http://user:password@proxy:port/";
+  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+
+  # Select internationalisation properties.
+  #i18n.defaultLocale = "en_GB.UTF-8";
+  console = {
+  #   font = "Lat2-Terminus16";
+    keyMap = "mod-dh-iso-uk";
+  #   useXkbConfig = true; # use xkb.options in tty.
+  };
+
+  powerManagement.powertop.enable = true;
+
+  virtualisation.podman.enable = true;
+
+  services.blueman.enable = true;
+  services.upower.enable = true;
+  services.power-profiles-daemon.enable = true;
+  services.seatd.enable = true;
+  services.mullvad-vpn = {
+    enable = true;
+    package = pkgs.mullvad-vpn;
+  };
+  services.syncthing = {
+    enable = false;
+    user = "void";
+    group = "users";
+    dataDir = "/home/void";
+    openDefaultPorts = true;
+  };
+
+  users.defaultUserShell = pkgs.fish;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.void = {
+    isNormalUser = true;
+    extraGroups = [ "networkmanager" "wheel" ]; # Enable ‘sudo’ for the user.
+    packages = with pkgs; [
+      comma
+      kitty
+      librewolf
+      keepassxc
+      monero-cli
+      monero-gui
+      element-desktop
+    ];
+  };
+
+  programs.fish.enable = true;
+  programs.sway = {
+    enable = true;
+    extraPackages = [];
+    wrapperFeatures.gtk = true;
+  };
+
+  #environment.systemPackages = [pkgs.swaylock];
+}
+
diff --git a/hosts/eximius/default.nix b/hosts/eximius/default.nix
@@ -0,0 +1,184 @@
+{
+
+  system = "x86_64-linux";
+  nixpkgsStable = false;
+
+  domain = "eukaryote.eu";
+
+  #sshPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBGgd/59d8wyU9kE6iRSMvTmev8z5dq4YtjeBlEoAI4S";
+
+  hardware = {
+    cpuVendor = "intel";
+    allowHibernation = true;
+  };
+
+  networking = {
+    #hasDN42 = true;
+    dn42Address = "fd49:7a7a:6965:c0::6cd4";
+  };
+
+  configuration =
+    {
+      config,
+      lib,
+      pkgs,
+      inputs,
+      ...
+    }:
+    {
+
+      imports = [
+        ./configuration.nix
+        ./hardware-configuration.nix
+        inputs.nixos-hardware.nixosModules.framework-intel-core-ultra-series1
+      ];
+
+      home-manager.sharedModules = [
+        {
+          wayland.windowManager.sway.config = {
+            seat."*".xcursor_theme = "Adwaita 20";
+            output."eDP-1".scale = "1.5";
+          };
+        }
+      ];
+
+
+      boot.initrd.systemd.emergencyAccess = true;
+      boot.kernelParams = [
+        "resume=/dev/eximius/swap"
+      ];
+
+      #sops.secrets."environments/networkManagerProfiles/cccdaWifi" = { };
+
+      sops.age.keyFile = "/var/lib/sops-nix/age/keys.txt";
+
+      modules = {
+
+        filesystem = {
+          #impermanence.system.enable = true;
+          #impermanence.home.enable = true;
+          rootDisk = {
+            #enable = true;
+            encrypt = true;
+            type = "btrfs";
+            path = "/dev/disk/by-id/nvme-CT1000P3PSSD8_2342444001E2";
+            #reservedSpace = "3G";
+            parts = {
+              nix = true;
+            };
+            swap = {
+              enable = true;
+              size = "24G";
+            };
+          };
+        };
+
+        hardware = {
+          bluetooth.enable = true;
+          cpu.updateMicrocode = true;
+          fprint.enable = true;
+          fprint.disableOnLidClose = true;
+          thunderbolt.enable = true;
+          #quirks.thinkpad.enable = true;
+          video.intel.enable = true;
+        };
+
+        presets = {
+          base.enable = true;
+          graphical.enable = true;
+          graphical.type = "sway";
+          void.enable = true;
+
+          #networkManagerProfiles = {
+          #  voidPhoneWifi.enable = true;
+          #  voidHomeWifi.enable = true;
+          #  zaphyraPhoneWifi.enable = true;
+          #  zaphyraHomeWifi.enable = true;
+          #  grogHomeWifi.enable = true;
+          #  cccdaWifi = {
+          #    enable = true;
+          #    username = "zaphyra";
+          #    envFile = config.sops.secrets."environments/networkManagerProfiles/cccdaWifi".path;
+          #  };
+          #};
+        };
+
+        services = {
+          earlyoom.enable = true;
+          greetd.autoLogin = {
+            enable = true;
+            user = "void";
+          };
+          systemd-oomd.enable = true;
+        };
+
+        programs = {
+          #AusweisApp.enable = true;
+          steam.enable = true;
+          yubikey.enable = true;
+        };
+
+        users.void.enable = true;
+      };
+
+      networking = {
+        useNetworkd = false;
+        #hosts."127.0.0.1" = [ config.networking.fqdn ];
+      };
+
+#      nixpkgs.overlays = [
+#        (self: super: { mesa = pkgs.callPackage inputs.self.resources.mesa {}; })
+#      ];
+
+      programs.steam = {
+        enable = true;
+        remotePlay.openFirewall = true;
+        localNetworkGameTransfers.openFirewall = true;
+        gamescopeSession.enable = true;
+        protontricks.enable = true;
+      };
+
+      services = {
+        hardware.bolt.enable = true;
+        resolved.enable = true;
+        logind.settings.Login.HandlePowerKey = "hibernate";
+        keyd = {
+          enable = true;
+          keyboards.builtin = {
+            ids = ["0001:0001"];
+            settings = {
+              main = {
+                capslock = "layer(shift)";
+                leftshift = "capslock";
+                rightcontrol = "layer(rightcontrol)";
+              };
+              rightcontrol = {
+                q = "!";
+                w = "@";
+                e = "#";
+                r = "$";
+                t = "%";
+
+                y = "^";
+                u = "&";
+                i = "*";
+                o = "(";
+                p = ")";
+              };
+            };
+          };
+        };
+        printing.enable = true;
+        avahi = {
+          enable = true;
+          nssmdns4 = true;
+          publish.enable = true;
+          publish.userServices = true;
+        };
+      };
+
+      system.stateVersion = "25.11";
+      home-manager.users.void.home.stateVersion = "25.11";
+    };
+
+}
diff --git a/hosts/eximius/hardware-configuration.nix b/hosts/eximius/hardware-configuration.nix
@@ -0,0 +1,73 @@
+# 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 = [ "xhci_pci" "nvme" ];
+  boot.initrd.kernelModules = [ "dm-snapshot" ];
+  boot.kernelModules = [ "kvm-intel" ];
+  boot.extraModulePackages = [ ];
+
+  boot.initrd.luks.devices.cryptroot = {
+    device = "/dev/disk/by-partlabel/disk-eximius-root";
+  };
+
+  fileSystems."/" =
+    { device = "/dev/eximius/root";
+      fsType = "btrfs";
+      options = [ "subvol=nixos" ];
+    };
+
+  fileSystems."/nix" =
+    { device = "/dev/eximius/nix";
+      fsType = "xfs";
+    };
+
+  fileSystems."/data" =
+    { device = "/dev/eximius/persist";
+      fsType = "btrfs";
+    };
+
+  fileSystems."/home" =
+    { device = "/dev/eximius/home";
+      fsType = "btrfs";
+      options = [ "acl" "nofail" ];
+    };
+
+  fileSystems."/boot" =
+    { device = "/dev/disk/by-partlabel/disk-eximius-boot";
+      fsType = "vfat";
+      options = [ "fmask=0077" "dmask=0077" ];
+    };
+
+  fileSystems."/etc/nixos" =
+    { device = "/dev/eximius/persist";
+      fsType = "btrfs";
+      options = [ "subvol=etc/nixos" ];
+    };
+
+  fileSystems."/var/lib/sbctl" =
+    { device = "/dev/eximius/persist";
+      fsType = "btrfs";
+      options = [ "subvol=var/lib/sbctl" ];
+    };
+
+  swapDevices =
+    [ { device = "/dev/eximius/swap"; options = [ "nofail" ]; }
+    ];
+
+  # 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.wlp170s0.useDHCP = lib.mkDefault true;
+
+  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/resources/void/programs/waybar/style.css b/resources/void/programs/waybar/style.css
@@ -0,0 +1,191 @@
+* {
+  border: none;
+  border-radius: 0;
+  /* font-family: Fira Code; */
+  min-height: 20px;
+  padding: 5px;
+}
+window#waybar {
+  background: transparent;
+}
+window#waybar.hidden {
+  opacity: 0.2;
+}
+#workspaces {
+  margin-right: 8px;
+  border-radius: 10px;
+  transition: none;
+  background: #383c4a;
+}
+#workspaces button {
+  transition: none;
+  color: #7c818c;
+  background: transparent;
+  padding: 0px;
+  font-size: 18px;
+}
+#workspaces button.persistent {
+  color: #7c818c;
+  font-size: 12px;
+}
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+#workspaces button:hover {
+  transition: none;
+  box-shadow: inherit;
+  text-shadow: inherit;
+  border-radius: inherit;
+  color: #383c4a;
+  background: #7c818c;
+}
+#workspaces button.focused {
+  color: white;
+}
+#idle_inhibitor {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#idle_inhibitor.activated {
+  color: #383c4a;
+  background: #ffffff;
+}
+#keyboard-state {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 8px;
+  border-radius: 10px 10px 10px 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#mode {
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#network {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#clock {
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px 10px 10px 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#wireplumber {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#wireplumber.muted {
+  background-color: #90b1b1;
+  color: #2a5c45;
+}
+#cpu {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#memory {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#temperature {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#temperature.critical {
+  background-color: #eb4d4b;
+}
+#backlight {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#battery {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#battery.charging {
+  color: #ffffff;
+  background-color: #26a65b;
+}
+#battery.warning:not(.charging) {
+  background-color: #ffbe61;
+  color: black;
+}
+#battery.critical:not(.charging) {
+  background-color: #f53c3c;
+  color: #ffffff;
+  animation-name: blink;
+  animation-duration: 0.5s;
+  animation-timing-function: linear;
+  animation-iteration-count: infinite;
+  animation-direction: alternate;
+}
+#tray {
+  margin-right: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+#custom-power {
+  padding-left: 16px;
+  padding-right: 16px;
+  border-radius: 10px;
+  transition: none;
+  color: #ffffff;
+  background: #383c4a;
+}
+@keyframes blink {
+  to {
+    background-color: #ffffff;
+    color: #000000;
+  }
+}
+
diff --git a/secrets/eximius.yaml b/secrets/eximius.yaml
@@ -0,0 +1,28 @@
+voidPassword: ENC[AES256_GCM,data:iaZ7Tilcrmc7JdKSFxpJ55lXtSOqTnw8Y8zzxzgJoj+rDXsEVz9ilxVvw6RRE3bhCYsP7lvOXc8oFLX2MQOGavF7rlIRHO6T8g==,iv:yvV+GOCCWF3IGRMqXeRK6Oi1F5yqq/Jj6ZkyrPHGaHE=,tag:NigKN87jGjedsecf16zQhg==,type:str]
+sops:
+    age:
+        - recipient: age1lkdpl26w3wyaes75hg6wwc2p3puqv24d4xyuf5xc9q9u9we0jq6q8lvz8f
+          enc: |
+            -----BEGIN AGE ENCRYPTED FILE-----
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOT1dvdVlqaGV0MjNUSVhj
+            Q3ZJMGR2OHhYYUVXSUFLTEZuNTBnaWtUb3dBClVXS2tsSzgvUEJkVlNiNlk1S1RI
+            czJQV09LcHJNOU5WZHN2TFRyNmtlR3MKLS0tIENsL2h5SjFTUnVLd3lCejVDZnJk
+            YVFQRGZRK3lVWlZrWm9KU3BHOElkK3MKORf4RgUNw4XdagWzBh/k6lqf3Zv6C+Vo
+            VbAmIsW6zJe3WPR/kZleUD92SnZA73skCLy6CaJKVgKU0jQFWSxUBA==
+            -----END AGE ENCRYPTED FILE-----
+    lastmodified: "2025-10-01T10:23:50Z"
+    mac: ENC[AES256_GCM,data:/SrARrT5kOZJsAUuP7wIxfgF4iYJW0q+6Wd6P/GR4a+6mz640IFCvjC6RbfRHUOmYMB9Hf9cWnxgZaMaqBkQf96J/GGIgTardxwMh917C8iiAR8wtOcx3ndBQCgg5vU7XdWm1GlCGs+PJ3vgeL6pumz2ZhFthkpEY+eCtMHxJ1k=,iv:wxpTioCp8t4NNNR7SDgCGel2EveSqAnye2A7wD4d1U8=,tag:F8Xe/LYFoRVHygEvrjd7Kw==,type:str]
+    pgp:
+        - created_at: "2025-10-01T10:43:14Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            hF4D3Q9NEB9zpDESAQdAW+m/XozTtV23R02QxTxpH6Now+yT4dVaL3NFsFs1YCYw
+            VL2s5EEM4keAuyn1ZexBci1r5I/ActQxq/NC1PyvNvHjUxWGbqnKNe6kDuU69lNO
+            0l4Bsid2JwX5DWPg6SiC/Cg8L4Rnlw5sRe3moYKvyg3LdXTip2PpkRTt1wTKPxqh
+            dQ/7V7NI4qBaE0pW5aHR708S+JZC9Uh0EGLeulbkGMAGKTEuzlSLyJX8SZgka+91
+            =q/NN
+            -----END PGP MESSAGE-----
+          fp: AB27F5D1136B20D3149FBCC00389451731A3ADDD
+    unencrypted_suffix: _unencrypted
+    version: 3.10.2