diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-01-23 14:37:58 +0100 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-01-23 14:37:58 +0100 |
| commit | 11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5 (patch) | |
| tree | c5506cea25ad516d7f28ac8bddb04245b5bd3603 | |
| parent | 07496f4fd71e711859fab2cc858d2c440053f20c (diff) | |
| download | nixos-11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5.tar nixos-11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5.tar.gz nixos-11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5.tar.bz2 nixos-11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5.tar.xz nixos-11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5.zip | |
...
| -rw-r--r-- | accounts/gkleen@sif/default.nix | 5 | ||||
| -rw-r--r-- | accounts/gkleen@sif/niri/default.nix | 33 | ||||
| -rw-r--r-- | accounts/gkleen@sif/niri/mako.nix | 1 | ||||
| -rw-r--r-- | accounts/gkleen@sif/systemd.nix | 30 | ||||
| -rw-r--r-- | flake.lock | 12 | ||||
| -rw-r--r-- | hosts/sif/default.nix | 34 | ||||
| -rw-r--r-- | hosts/sif/greetd/.gitattributes | 1 | ||||
| -rw-r--r-- | hosts/sif/greetd/default.nix | 44 | ||||
| -rw-r--r-- | hosts/sif/greetd/wallpaper.png | 3 | ||||
| -rw-r--r-- | hosts/sif/mail/default.nix | 2 |
10 files changed, 117 insertions, 48 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 10180eca..7f4879f4 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
| @@ -427,6 +427,7 @@ in { | |||
| 427 | pynitrokey gtklock wlrctl remmina openscad spice-record | 427 | pynitrokey gtklock wlrctl remmina openscad spice-record |
| 428 | libguestfs-with-appliance nerd-fonts.fira-mono | 428 | libguestfs-with-appliance nerd-fonts.fira-mono |
| 429 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts | 429 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts |
| 430 | swtpm | ||
| 430 | ]; | 431 | ]; |
| 431 | 432 | ||
| 432 | file = { | 433 | file = { |
| @@ -492,6 +493,10 @@ in { | |||
| 492 | }; | 493 | }; |
| 493 | }; | 494 | }; |
| 494 | "emacs/init.el".source = ./emacs.el; | 495 | "emacs/init.el".source = ./emacs.el; |
| 496 | "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | ||
| 497 | [Unit] | ||
| 498 | After=graphical-session.target | ||
| 499 | ''; | ||
| 495 | }; | 500 | }; |
| 496 | 501 | ||
| 497 | xdg.dataFile = { | 502 | xdg.dataFile = { |
diff --git a/accounts/gkleen@sif/niri/default.nix b/accounts/gkleen@sif/niri/default.nix index 165eb5fa..71870aa4 100644 --- a/accounts/gkleen@sif/niri/default.nix +++ b/accounts/gkleen@sif/niri/default.nix | |||
| @@ -200,6 +200,8 @@ in { | |||
| 200 | DISPLAY = ":0"; | 200 | DISPLAY = ":0"; |
| 201 | }; | 201 | }; |
| 202 | 202 | ||
| 203 | debug.render-drm-device = "/dev/dri/by-path/pci-0000:00:02.0-render"; | ||
| 204 | |||
| 203 | layout = { | 205 | layout = { |
| 204 | gaps = 8; | 206 | gaps = 8; |
| 205 | struts = { left = 0; right = 0; top = 0; bottom = 0; }; | 207 | struts = { left = 0; right = 0; top = 0; bottom = 0; }; |
| @@ -239,6 +241,14 @@ in { | |||
| 239 | 241 | ||
| 240 | cursor.hide-when-typing = true; | 242 | cursor.hide-when-typing = true; |
| 241 | 243 | ||
| 244 | input = { | ||
| 245 | touchpad.enable = false; | ||
| 246 | trackball = { | ||
| 247 | scroll-method = "on-button-down"; | ||
| 248 | scroll-button = 278; | ||
| 249 | }; | ||
| 250 | }; | ||
| 251 | |||
| 242 | workspaces = { | 252 | workspaces = { |
| 243 | "001" = { name = "pwctl"; open-on-output = "eDP-1"; }; | 253 | "001" = { name = "pwctl"; open-on-output = "eDP-1"; }; |
| 244 | "002" = { name = "kpxc"; open-on-output = "eDP-1"; }; | 254 | "002" = { name = "kpxc"; open-on-output = "eDP-1"; }; |
| @@ -250,6 +260,7 @@ in { | |||
| 250 | # "104".name = "read"; | 260 | # "104".name = "read"; |
| 251 | # "105".name = "mon"; | 261 | # "105".name = "mon"; |
| 252 | "110".name = "vid"; | 262 | "110".name = "vid"; |
| 263 | "120".name = "bmr"; | ||
| 253 | }; | 264 | }; |
| 254 | 265 | ||
| 255 | window-rules = [ | 266 | window-rules = [ |
| @@ -356,6 +367,22 @@ in { | |||
| 356 | # ]; | 367 | # ]; |
| 357 | # open-on-workspace = "mon"; | 368 | # open-on-workspace = "mon"; |
| 358 | # } | 369 | # } |
| 370 | { | ||
| 371 | matches = [ { app-id = "^pdfpc$"; } ]; | ||
| 372 | default-column-width.proportion = 1.; | ||
| 373 | } | ||
| 374 | { | ||
| 375 | matches = [ { app-id = "^pdfpc$"; title = "^pdfpc - presentation"; } ]; | ||
| 376 | open-on-workspace = "bmr"; | ||
| 377 | open-fullscreen = true; | ||
| 378 | } | ||
| 379 | { | ||
| 380 | matches = [ | ||
| 381 | { app-id = "^Gimp-"; title = "^Quit GIMP$"; } | ||
| 382 | { app-id = "^org\.kde\.polkit-kde-authentication-agent-1$"; } | ||
| 383 | ]; | ||
| 384 | open-floating = true; | ||
| 385 | } | ||
| 359 | ]; | 386 | ]; |
| 360 | layer-rules = [ | 387 | layer-rules = [ |
| 361 | { matches = [ | 388 | { matches = [ |
| @@ -414,12 +441,14 @@ in { | |||
| 414 | fi | 441 | fi |
| 415 | [[ -n "$QALC_RES" ]] || exit 1 | 442 | [[ -n "$QALC_RES" ]] || exit 1 |
| 416 | EXISTING=false | 443 | EXISTING=false |
| 417 | set +e | 444 | set +o pipefail |
| 418 | grep -Fxrl "$QALC_RES" "$RESULTS_DIR" | xargs -r touch | 445 | grep -Fxrl "$QALC_RES" "$RESULTS_DIR" | xargs -r touch |
| 419 | [[ ''${PIPESTATUS[0]} -eq 0 ]] && EXISTING=true | 446 | [[ ''${PIPESTATUS[0]} -eq 0 ]] && EXISTING=true |
| 420 | set -e | 447 | set -o pipefail |
| 421 | if [[ $QALC_RET -eq 0 ]] && ! $EXISTING; then | 448 | if [[ $QALC_RET -eq 0 ]] && ! $EXISTING; then |
| 449 | set +o pipefail | ||
| 422 | RES_FILE="$RESULTS_DIR"/$(date -uIs).$(tr -Cd 'a-zA-Z0-9' </dev/random | head -c 10) | 450 | RES_FILE="$RESULTS_DIR"/$(date -uIs).$(tr -Cd 'a-zA-Z0-9' </dev/random | head -c 10) |
| 451 | set -o pipefail | ||
| 423 | cat >"$RES_FILE" <<<"$QALC_RES" | 452 | cat >"$RES_FILE" <<<"$QALC_RES" |
| 424 | fi | 453 | fi |
| 425 | [[ "$QALC_RES" =~ .*\ =\ (.*) ]] && QALC_RES="''${BASH_REMATCH[1]}" | 454 | [[ "$QALC_RES" =~ .*\ =\ (.*) ]] && QALC_RES="''${BASH_REMATCH[1]}" |
diff --git a/accounts/gkleen@sif/niri/mako.nix b/accounts/gkleen@sif/niri/mako.nix index 8abf14d8..901ed022 100644 --- a/accounts/gkleen@sif/niri/mako.nix +++ b/accounts/gkleen@sif/niri/mako.nix | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | extraConfig = '' | 13 | extraConfig = '' |
| 14 | outer-margin=1 | 14 | outer-margin=1 |
| 15 | max-history=100 | 15 | max-history=100 |
| 16 | max-icon-size=48 | ||
| 16 | 17 | ||
| 17 | [grouped] | 18 | [grouped] |
| 18 | format=<b>(%g)</b> <i>%s</i>\n%b | 19 | format=<b>(%g)</b> <i>%s</i>\n%b |
diff --git a/accounts/gkleen@sif/systemd.nix b/accounts/gkleen@sif/systemd.nix index 34f52172..bce2f4cd 100644 --- a/accounts/gkleen@sif/systemd.nix +++ b/accounts/gkleen@sif/systemd.nix | |||
| @@ -123,7 +123,8 @@ in { | |||
| 123 | }; | 123 | }; |
| 124 | emacs = { | 124 | emacs = { |
| 125 | Unit = { | 125 | Unit = { |
| 126 | After = ["graphical-session-pre.target"]; | 126 | After = [ "graphical-session.target" ]; |
| 127 | BindsTo = [ "graphical-session.target" ]; | ||
| 127 | }; | 128 | }; |
| 128 | }; | 129 | }; |
| 129 | keepassxc = { | 130 | keepassxc = { |
| @@ -135,8 +136,8 @@ in { | |||
| 135 | Environment = [ "QT_QPA_PLATFORM=wayland" ]; | 136 | Environment = [ "QT_QPA_PLATFORM=wayland" ]; |
| 136 | }; | 137 | }; |
| 137 | Unit = { | 138 | Unit = { |
| 138 | Requires = ["graphical-session-pre.target"]; | 139 | After = [ "graphical-session.target" ]; |
| 139 | After = ["graphical-session-pre.target"]; | 140 | BindsTo = [ "graphical-session.target" ]; |
| 140 | }; | 141 | }; |
| 141 | }; | 142 | }; |
| 142 | mpris-proxy = { | 143 | mpris-proxy = { |
| @@ -184,8 +185,8 @@ in { | |||
| 184 | WantedBy = ["graphical-session.target"]; | 185 | WantedBy = ["graphical-session.target"]; |
| 185 | }; | 186 | }; |
| 186 | Unit = { | 187 | Unit = { |
| 187 | Requires = ["graphical-session-pre.target"]; | 188 | After = [ "graphical-session.target" ]; |
| 188 | After = ["graphical-session-pre.target"]; | 189 | PartOf = [ "graphical-session.target" ]; |
| 189 | }; | 190 | }; |
| 190 | Service = { | 191 | Service = { |
| 191 | ExecStart = lib.getExe pkgs.psi-notify; | 192 | ExecStart = lib.getExe pkgs.psi-notify; |
| @@ -198,6 +199,7 @@ in { | |||
| 198 | gtklock = { | 199 | gtklock = { |
| 199 | Unit = { | 200 | Unit = { |
| 200 | Requisite = ["graphical-session.target"]; | 201 | Requisite = ["graphical-session.target"]; |
| 202 | After = [ "graphical-session.target" ]; | ||
| 201 | PartOf = ["graphical-session.target"]; | 203 | PartOf = ["graphical-session.target"]; |
| 202 | }; | 204 | }; |
| 203 | Service = { | 205 | Service = { |
| @@ -304,8 +306,8 @@ in { | |||
| 304 | WantedBy = ["graphical-session.target"]; | 306 | WantedBy = ["graphical-session.target"]; |
| 305 | }; | 307 | }; |
| 306 | Unit = { | 308 | Unit = { |
| 307 | BindsTo = ["graphical-session-pre.target"]; | 309 | After = [ "graphical-session.target" ]; |
| 308 | After = ["graphical-session-pre.target"]; | 310 | PartOf = [ "graphical-session.target" ]; |
| 309 | }; | 311 | }; |
| 310 | Service = { | 312 | Service = { |
| 311 | ExecStart = lib.getExe cfg.programs.wpaperd.package; | 313 | ExecStart = lib.getExe cfg.programs.wpaperd.package; |
| @@ -314,6 +316,17 @@ in { | |||
| 314 | RestartSec = "2s"; | 316 | RestartSec = "2s"; |
| 315 | }; | 317 | }; |
| 316 | }; | 318 | }; |
| 319 | xembed-sni-proxy = { | ||
| 320 | Unit = { | ||
| 321 | BindsTo = ["xwayland-satellite.service"]; | ||
| 322 | After = ["xwayland-satellite.service"]; | ||
| 323 | }; | ||
| 324 | }; | ||
| 325 | poweralertd = { | ||
| 326 | Unit = { | ||
| 327 | After = ["graphical-session.target"]; | ||
| 328 | }; | ||
| 329 | }; | ||
| 317 | } // listToAttrs (map ({host, port}: nameValuePair "proxy-to-autossh-socks@${toString port}" { | 330 | } // listToAttrs (map ({host, port}: nameValuePair "proxy-to-autossh-socks@${toString port}" { |
| 318 | Unit = { | 331 | Unit = { |
| 319 | Requires = ["autossh-socks@${host}:${toString (port + 1)}.service" "proxy-to-autossh-socks@${toString port}.socket"]; | 332 | Requires = ["autossh-socks@${host}:${toString (port + 1)}.service" "proxy-to-autossh-socks@${toString port}.socket"]; |
| @@ -364,6 +377,9 @@ in { | |||
| 364 | }; | 377 | }; |
| 365 | tray = { | 378 | tray = { |
| 366 | Unit = { | 379 | Unit = { |
| 380 | PartOf = [ "graphical-session.target" ]; | ||
| 381 | Requires = [ "waybar.service" ]; | ||
| 382 | After = [ "graphical-session.target" "waybar.service" ]; | ||
| 367 | Wants = ["blueman-applet.service" "udiskie.service" "network-manager-applet.service"]; | 383 | Wants = ["blueman-applet.service" "udiskie.service" "network-manager-applet.service"]; |
| 368 | }; | 384 | }; |
| 369 | }; | 385 | }; |
| @@ -397,11 +397,11 @@ | |||
| 397 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" | 397 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" |
| 398 | }, | 398 | }, |
| 399 | "locked": { | 399 | "locked": { |
| 400 | "lastModified": 1736855225, | 400 | "lastModified": 1737627930, |
| 401 | "narHash": "sha256-2+ayH/0B37BLPJy4thO1titHIrVCoDdCtdnl0CyV8kc=", | 401 | "narHash": "sha256-oaAatwNVaX36xmI2AKIVu2oG07XJmHq2T+Y66hEprd8=", |
| 402 | "owner": "sodiboo", | 402 | "owner": "sodiboo", |
| 403 | "repo": "niri-flake", | 403 | "repo": "niri-flake", |
| 404 | "rev": "b013bedcff63b5cdbb9cd9841ac339361fc5cfcc", | 404 | "rev": "f79aa307f4bc0bfbabee404e6354fd2a1edfcb01", |
| 405 | "type": "github" | 405 | "type": "github" |
| 406 | }, | 406 | }, |
| 407 | "original": { | 407 | "original": { |
| @@ -630,11 +630,11 @@ | |||
| 630 | }, | 630 | }, |
| 631 | "nixpkgs-stable_2": { | 631 | "nixpkgs-stable_2": { |
| 632 | "locked": { | 632 | "locked": { |
| 633 | "lastModified": 1736684107, | 633 | "lastModified": 1737569578, |
| 634 | "narHash": "sha256-vH5mXxEvZeoGNkqKoCluhTGfoeXCZ1seYhC2pbMN0sg=", | 634 | "narHash": "sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB+f3M=", |
| 635 | "owner": "NixOS", | 635 | "owner": "NixOS", |
| 636 | "repo": "nixpkgs", | 636 | "repo": "nixpkgs", |
| 637 | "rev": "635e887b48521e912a516625eee7df6cf0eba9c1", | 637 | "rev": "47addd76727f42d351590c905d9d1905ca895b82", |
| 638 | "type": "github" | 638 | "type": "github" |
| 639 | }, | 639 | }, |
| 640 | "original": { | 640 | "original": { |
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index 655b2e9c..7db46c67 100644 --- a/hosts/sif/default.nix +++ b/hosts/sif/default.nix | |||
| @@ -12,7 +12,7 @@ let | |||
| 12 | in { | 12 | in { |
| 13 | imports = with flake.nixosModules.systemProfiles; [ | 13 | imports = with flake.nixosModules.systemProfiles; [ |
| 14 | ./hw.nix | 14 | ./hw.nix |
| 15 | ./mail ./libvirt | 15 | ./mail ./libvirt ./greetd |
| 16 | tmpfs-root bcachefs initrd-all-crypto-modules default-locale openssh rebuild-machines niri-unstable networkmanager | 16 | tmpfs-root bcachefs initrd-all-crypto-modules default-locale openssh rebuild-machines niri-unstable networkmanager |
| 17 | flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1 | 17 | flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1 |
| 18 | flakeInputs.impermanence.nixosModules.impermanence | 18 | flakeInputs.impermanence.nixosModules.impermanence |
| @@ -470,39 +470,8 @@ in { | |||
| 470 | exportConfiguration = true; | 470 | exportConfiguration = true; |
| 471 | }; | 471 | }; |
| 472 | libinput.enable = true; | 472 | libinput.enable = true; |
| 473 | |||
| 474 | greetd = { | ||
| 475 | enable = true; | ||
| 476 | # settings.default_session.command = let | ||
| 477 | # cfg = config.programs.regreet; | ||
| 478 | # in pkgs.writeShellScript "greeter" '' | ||
| 479 | # modprobe -r nvidia_drm | ||
| 480 | |||
| 481 | # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package} | ||
| 482 | # ''; | ||
| 483 | }; | ||
| 484 | }; | 473 | }; |
| 485 | 474 | ||
| 486 | programs.regreet = { | ||
| 487 | enable = true; | ||
| 488 | theme = { | ||
| 489 | package = pkgs.equilux-theme; | ||
| 490 | name = "Equilux-compact"; | ||
| 491 | }; | ||
| 492 | iconTheme = { | ||
| 493 | package = pkgs.paper-icon-theme; | ||
| 494 | name = "Paper-Mono-Dark"; | ||
| 495 | }; | ||
| 496 | font = { | ||
| 497 | package = pkgs.fira; | ||
| 498 | name = "Fira Sans"; | ||
| 499 | # size = 6; | ||
| 500 | }; | ||
| 501 | cageArgs = [ "-s" "-m" "last" ]; | ||
| 502 | settings = { | ||
| 503 | GTK.application_prefer_dark_theme = true; | ||
| 504 | }; | ||
| 505 | }; | ||
| 506 | programs.niri.enable = true; | 475 | programs.niri.enable = true; |
| 507 | 476 | ||
| 508 | systemd.tmpfiles.settings = { | 477 | systemd.tmpfiles.settings = { |
| @@ -702,6 +671,7 @@ in { | |||
| 702 | 671 | ||
| 703 | services.dbus.packages = with pkgs; | 672 | services.dbus.packages = with pkgs; |
| 704 | [ dbus dconf | 673 | [ dbus dconf |
| 674 | xdg-desktop-portal-gtk | ||
| 705 | ]; | 675 | ]; |
| 706 | 676 | ||
| 707 | services.udisks2.enable = true; | 677 | services.udisks2.enable = true; |
diff --git a/hosts/sif/greetd/.gitattributes b/hosts/sif/greetd/.gitattributes new file mode 100644 index 00000000..3e1848c2 --- /dev/null +++ b/hosts/sif/greetd/.gitattributes | |||
| @@ -0,0 +1 @@ | |||
| wallpaper.png filter=lfs diff=lfs merge=lfs -text | |||
diff --git a/hosts/sif/greetd/default.nix b/hosts/sif/greetd/default.nix new file mode 100644 index 00000000..f609fc05 --- /dev/null +++ b/hosts/sif/greetd/default.nix | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | { pkgs, ... }: | ||
| 2 | { | ||
| 3 | config = { | ||
| 4 | services.greetd = { | ||
| 5 | enable = true; | ||
| 6 | # settings.default_session.command = let | ||
| 7 | # cfg = config.programs.regreet; | ||
| 8 | # in pkgs.writeShellScript "greeter" '' | ||
| 9 | # modprobe -r nvidia_drm | ||
| 10 | |||
| 11 | # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package} | ||
| 12 | # ''; | ||
| 13 | }; | ||
| 14 | programs.regreet = { | ||
| 15 | enable = true; | ||
| 16 | theme = { | ||
| 17 | package = pkgs.equilux-theme; | ||
| 18 | name = "Equilux-compact"; | ||
| 19 | }; | ||
| 20 | iconTheme = { | ||
| 21 | package = pkgs.paper-icon-theme; | ||
| 22 | name = "Paper-Mono-Dark"; | ||
| 23 | }; | ||
| 24 | font = { | ||
| 25 | package = pkgs.fira; | ||
| 26 | name = "Fira Sans"; | ||
| 27 | # size = 6; | ||
| 28 | }; | ||
| 29 | cageArgs = [ "-s" "-m" "last" ]; | ||
| 30 | settings = { | ||
| 31 | GTK.application_prefer_dark_theme = true; | ||
| 32 | widget.clock.format = "%F %H:%M:%S%:z"; | ||
| 33 | background = { | ||
| 34 | path = pkgs.runCommand "wallpaper.png" { | ||
| 35 | buildInputs = with pkgs; [ imagemagick ]; | ||
| 36 | } '' | ||
| 37 | magick ${./wallpaper.png} -filter Gaussian -resize 6.25% -define filter:sigma=2.5 -resize 1600% "$out" | ||
| 38 | ''; | ||
| 39 | fit = "Cover"; | ||
| 40 | }; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | }; | ||
| 44 | } | ||
diff --git a/hosts/sif/greetd/wallpaper.png b/hosts/sif/greetd/wallpaper.png new file mode 100644 index 00000000..f6f6c818 --- /dev/null +++ b/hosts/sif/greetd/wallpaper.png | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | version https://git-lfs.github.com/spec/v1 | ||
| 2 | oid sha256:fe030fabe1a9adcfc0742e794abe9b595831c1b1b9653f3f9794901297413ffa | ||
| 3 | size 6073128 | ||
diff --git a/hosts/sif/mail/default.nix b/hosts/sif/mail/default.nix index f36cd599..8d6cd705 100644 --- a/hosts/sif/mail/default.nix +++ b/hosts/sif/mail/default.nix | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | { config, pkgs, ... }: | 1 | { config, lib, pkgs, ... }: |
| 2 | { | 2 | { |
| 3 | services.postfix = { | 3 | services.postfix = { |
| 4 | enable = true; | 4 | enable = true; |
