diff options
Diffstat (limited to 'hosts/sif/default.nix')
-rw-r--r-- | hosts/sif/default.nix | 152 |
1 files changed, 38 insertions, 114 deletions
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index 6b710f2b..6214569a 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 | ./email ./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 |
@@ -26,9 +26,6 @@ in { | |||
26 | allowUnfree = true; | 26 | allowUnfree = true; |
27 | pulseaudio = true; | 27 | pulseaudio = true; |
28 | }; | 28 | }; |
29 | extraOverlays = [ | ||
30 | flakeInputs.niri-flake.overlays.niri | ||
31 | ]; | ||
32 | }; | 29 | }; |
33 | 30 | ||
34 | time.timeZone = null; | 31 | time.timeZone = null; |
@@ -55,6 +52,7 @@ in { | |||
55 | systemd-boot = { | 52 | systemd-boot = { |
56 | enable = true; | 53 | enable = true; |
57 | configurationLimit = 15; | 54 | configurationLimit = 15; |
55 | netbootxyz.enable = true; | ||
58 | }; | 56 | }; |
59 | efi.canTouchEfiVariables = true; | 57 | efi.canTouchEfiVariables = true; |
60 | timeout = null; | 58 | timeout = null; |
@@ -128,40 +126,16 @@ in { | |||
128 | rulesetFile = ./ruleset.nft; | 126 | rulesetFile = ./ruleset.nft; |
129 | }; | 127 | }; |
130 | 128 | ||
131 | # firewall = { | ||
132 | # enable = true; | ||
133 | # allowedTCPPorts = [ 22 # ssh | ||
134 | # 8000 # quickserve | ||
135 | # ]; | ||
136 | # }; | ||
137 | |||
138 | # wlanInterfaces = { | ||
139 | # wlan0 = { | ||
140 | # device = "wlp82s0"; | ||
141 | # }; | ||
142 | # }; | ||
143 | |||
144 | # bonds = { | ||
145 | # "lan" = { | ||
146 | # interfaces = [ "wlan0" "enp0s31f6" "dock0" ]; | ||
147 | # driverOptions = { | ||
148 | # miimon = "1000"; | ||
149 | # mode = "active-backup"; | ||
150 | # primary_reselect = "always"; | ||
151 | # }; | ||
152 | # }; | ||
153 | # }; | ||
154 | |||
155 | useDHCP = false; | 129 | useDHCP = false; |
156 | useNetworkd = true; | 130 | useNetworkd = true; |
157 | |||
158 | # interfaces."tinc.yggdrasil" = { | ||
159 | # virtual = true; | ||
160 | # virtualType = config.services.tinc.networks.yggdrasil.interfaceType; | ||
161 | # macAddress = "5c:93:21:c3:61:39"; | ||
162 | # }; | ||
163 | }; | 131 | }; |
164 | 132 | ||
133 | environment.etc."NetworkManager/dnsmasq.d/dnssec.conf" = { | ||
134 | text = '' | ||
135 | conf-file=${pkgs.dnsmasq}/share/dnsmasq/trust-anchors.conf | ||
136 | dnssec | ||
137 | ''; | ||
138 | }; | ||
165 | environment.etc."NetworkManager/dnsmasq.d/libvirt_dnsmasq.conf" = { | 139 | environment.etc."NetworkManager/dnsmasq.d/libvirt_dnsmasq.conf" = { |
166 | text = '' | 140 | text = '' |
167 | except-interface=virbr0 | 141 | except-interface=virbr0 |
@@ -404,19 +378,6 @@ in { | |||
404 | ]; | 378 | ]; |
405 | 379 | ||
406 | services = { | 380 | services = { |
407 | uucp = { | ||
408 | enable = true; | ||
409 | nodeName = "sif"; | ||
410 | remoteNodes = { | ||
411 | "ymir" = { | ||
412 | publicKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG6KNtsCOl5fsZ4rV7udTulGMphJweLBoKapzerWNoLY root@ymir"]; | ||
413 | hostnames = ["ymir.yggdrasil.li" "ymir.niflheim.yggdrasil"]; | ||
414 | }; | ||
415 | }; | ||
416 | |||
417 | defaultCommands = lib.mkForce []; | ||
418 | }; | ||
419 | |||
420 | avahi.enable = true; | 381 | avahi.enable = true; |
421 | 382 | ||
422 | fwupd.enable = true; | 383 | fwupd.enable = true; |
@@ -435,8 +396,8 @@ in { | |||
435 | 396 | ||
436 | logind = { | 397 | logind = { |
437 | lidSwitch = "suspend"; | 398 | lidSwitch = "suspend"; |
438 | lidSwitchDocked = "lock"; | 399 | lidSwitchDocked = "ignore"; |
439 | lidSwitchExternalPower = "lock"; | 400 | lidSwitchExternalPower = "ignore"; |
440 | }; | 401 | }; |
441 | 402 | ||
442 | atd = { | 403 | atd = { |
@@ -471,47 +432,18 @@ in { | |||
471 | }; | 432 | }; |
472 | libinput.enable = true; | 433 | libinput.enable = true; |
473 | 434 | ||
474 | greetd = { | 435 | envfs.enable = false; |
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 | 436 | ||
481 | # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package} | 437 | displayManager.defaultSession = "Niri"; |
482 | # ''; | ||
483 | }; | ||
484 | }; | ||
485 | |||
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 | }; | 438 | }; |
506 | programs.niri.enable = true; | ||
507 | 439 | ||
508 | systemd.tmpfiles.settings = { | 440 | systemd.tmpfiles.settings = { |
509 | "10-localtime"."/etc/localtime".L.argument = "/.bcachefs/etc/localtime"; | 441 | "10-localtime"."/etc/localtime".L.argument = "/.bcachefs/etc/localtime"; |
510 | 442 | ||
511 | "10-regreet"."/var/cache/regreet/cache.toml".C.argument = toString ((pkgs.formats.toml {}).generate "cache.toml" { | 443 | # "10-regreet"."/var/cache/regreet/cache.toml".C.argument = toString ((pkgs.formats.toml {}).generate "cache.toml" { |
512 | last_user = "gkleen"; | 444 | # last_user = "gkleen"; |
513 | user_to_last_sess.gkleen = "Niri"; | 445 | # user_to_last_sess.gkleen = "Niri"; |
514 | }); | 446 | # }); |
515 | }; | 447 | }; |
516 | 448 | ||
517 | users = { | 449 | users = { |
@@ -620,15 +552,15 @@ in { | |||
620 | }; | 552 | }; |
621 | 553 | ||
622 | nvidia = { | 554 | nvidia = { |
623 | open = true; | 555 | open = false; |
624 | modesetting.enable = true; | 556 | modesetting.enable = true; |
625 | powerManagement.enable = false; | 557 | powerManagement.enable = true; |
626 | prime = { | 558 | # prime = { |
627 | nvidiaBusId = "PCI:1:0:0"; | 559 | # nvidiaBusId = "PCI:1:0:0"; |
628 | intelBusId = "PCI:0:2:0"; | 560 | # intelBusId = "PCI:0:2:0"; |
629 | reverseSync.enable = true; | 561 | # reverseSync.enable = true; |
630 | offload.enableOffloadCmd = true; | 562 | # offload.enableOffloadCmd = true; |
631 | }; | 563 | # }; |
632 | }; | 564 | }; |
633 | 565 | ||
634 | graphics = { | 566 | graphics = { |
@@ -671,25 +603,6 @@ in { | |||
671 | 603 | ||
672 | environment.etc."X11/xorg.conf.d/50-wacom.conf".source = lib.mkForce ./wacom.conf; | 604 | environment.etc."X11/xorg.conf.d/50-wacom.conf".source = lib.mkForce ./wacom.conf; |
673 | 605 | ||
674 | systemd.services."ac-plugged" = { | ||
675 | description = "Inhibit handling of lid-switch and sleep"; | ||
676 | |||
677 | path = with pkgs; [ systemd coreutils ]; | ||
678 | |||
679 | script = '' | ||
680 | exec systemd-inhibit --what=handle-lid-switch --why="AC is connected" --mode=block sleep infinity | ||
681 | ''; | ||
682 | |||
683 | serviceConfig = { | ||
684 | Type = "simple"; | ||
685 | }; | ||
686 | }; | ||
687 | |||
688 | services.udev.extraRules = with pkgs; lib.mkAfter '' | ||
689 | SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="${systemd}/bin/systemctl --no-block stop ac-plugged.service" | ||
690 | SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="${systemd}/bin/systemctl --no-block start ac-plugged.service" | ||
691 | ''; | ||
692 | |||
693 | systemd.services."nix-daemon".serviceConfig = { | 606 | systemd.services."nix-daemon".serviceConfig = { |
694 | MemoryAccounting = true; | 607 | MemoryAccounting = true; |
695 | MemoryHigh = "50%"; | 608 | MemoryHigh = "50%"; |
@@ -702,6 +615,7 @@ in { | |||
702 | 615 | ||
703 | services.dbus.packages = with pkgs; | 616 | services.dbus.packages = with pkgs; |
704 | [ dbus dconf | 617 | [ dbus dconf |
618 | xdg-desktop-portal-gtk | ||
705 | ]; | 619 | ]; |
706 | 620 | ||
707 | services.udisks2.enable = true; | 621 | services.udisks2.enable = true; |
@@ -710,6 +624,8 @@ in { | |||
710 | light.enable = true; | 624 | light.enable = true; |
711 | wireshark.enable = true; | 625 | wireshark.enable = true; |
712 | dconf.enable = true; | 626 | dconf.enable = true; |
627 | niri.enable = true; | ||
628 | fuse.userAllowOther = true; | ||
713 | }; | 629 | }; |
714 | 630 | ||
715 | services.pcscd.enable = true; | 631 | services.pcscd.enable = true; |
@@ -729,6 +645,16 @@ in { | |||
729 | environment.sessionVariables."GTK_USE_PORTAL" = "1"; | 645 | environment.sessionVariables."GTK_USE_PORTAL" = "1"; |
730 | xdg.portal = { | 646 | xdg.portal = { |
731 | enable = true; | 647 | enable = true; |
648 | extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; | ||
649 | config.niri = { | ||
650 | default = ["gnome" "gtk"]; | ||
651 | "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; | ||
652 | "org.freedesktop.impl.portal.OpenFile" = ["gtk"]; | ||
653 | "org.freedesktop.impl.portal.Access" = ["gtk"]; | ||
654 | "org.freedesktop.impl.portal.Notification" = ["gtk"]; | ||
655 | "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; | ||
656 | "org.freedesktop.impl.portal.Inhibit" = ["none"]; | ||
657 | }; | ||
732 | }; | 658 | }; |
733 | 659 | ||
734 | environment.persistence."/.bcachefs" = { | 660 | environment.persistence."/.bcachefs" = { |
@@ -736,19 +662,17 @@ in { | |||
736 | directories = [ | 662 | directories = [ |
737 | "/nix" | 663 | "/nix" |
738 | "/root" | 664 | "/root" |
665 | "/home" | ||
739 | "/var/log" | 666 | "/var/log" |
740 | "/var/lib/sops-nix" | 667 | "/var/lib/sops-nix" |
741 | "/var/lib/nixos" | 668 | "/var/lib/nixos" |
742 | "/var/lib/systemd" | 669 | "/var/lib/systemd" |
743 | "/home" | ||
744 | "/var/lib/chrony" | 670 | "/var/lib/chrony" |
745 | "/var/lib/fprint" | 671 | "/var/lib/fprint" |
746 | "/var/lib/bluetooth" | 672 | "/var/lib/bluetooth" |
747 | "/var/lib/upower" | 673 | "/var/lib/upower" |
748 | "/var/lib/postfix" | 674 | "/var/lib/postfix" |
749 | "/etc/NetworkManager/system-connections" | 675 | "/etc/NetworkManager/system-connections" |
750 | { directory = "/var/uucp"; user = "uucp"; group = "uucp"; mode = "0700"; } | ||
751 | { directory = "/var/spool/uucp"; user = "uucp"; group = "uucp"; mode = "0750"; } | ||
752 | ]; | 676 | ]; |
753 | files = [ | 677 | files = [ |
754 | ]; | 678 | ]; |