commit be1815f066803f732325b26a184944997a25974e
parent f027a563323f4b26ab7280a20bc86fec1587e7be
Author: Hannah Izzie Gesser <hannah@totient.eu>
Date: Sat, 8 Nov 2025 16:01:44 +0100
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
|
150
-------------------------------------------------------------------------------
M
|
195
+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
M
|
230
++-----------------------------------------------------------------------------
A
|
138
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M
|
84
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
A
|
82
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
|
184
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
|
73
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A
|
191
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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