summaryrefslogtreecommitdiff
path: root/hosts/sif
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/sif')
-rw-r--r--hosts/sif/default.nix102
-rw-r--r--hosts/sif/greetd/default.nix44
-rw-r--r--hosts/sif/greetd/wallpaper.pngbin0 -> 6073128 bytes
-rw-r--r--hosts/sif/hw.nix19
-rw-r--r--hosts/sif/libvirt/default.nix1
-rw-r--r--hosts/sif/mail/default.nix2
6 files changed, 106 insertions, 62 deletions
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix
index 7c8da63a..32651e14 100644
--- a/hosts/sif/default.nix
+++ b/hosts/sif/default.nix
@@ -12,9 +12,8 @@ let
12in { 12in {
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 16 tmpfs-root bcachefs initrd-all-crypto-modules default-locale openssh rebuild-machines niri-unstable networkmanager
17 networkmanager
18 flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1 17 flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1
19 flakeInputs.impermanence.nixosModules.impermanence 18 flakeInputs.impermanence.nixosModules.impermanence
20 flakeInputs.nixVirt.nixosModules.default 19 flakeInputs.nixVirt.nixosModules.default
@@ -27,6 +26,9 @@ in {
27 allowUnfree = true; 26 allowUnfree = true;
28 pulseaudio = true; 27 pulseaudio = true;
29 }; 28 };
29 extraOverlays = [
30 flakeInputs.niri-flake.overlays.niri
31 ];
30 }; 32 };
31 33
32 time.timeZone = null; 34 time.timeZone = null;
@@ -34,7 +36,6 @@ in {
34 boot = { 36 boot = {
35 initrd = { 37 initrd = {
36 systemd = { 38 systemd = {
37 enable = false;
38 emergencyAccess = config.users.users.root.hashedPassword; 39 emergencyAccess = config.users.users.root.hashedPassword;
39 }; 40 };
40 luks.devices = { 41 luks.devices = {
@@ -62,15 +63,20 @@ in {
62 plymouth.enable = true; 63 plymouth.enable = true;
63 64
64 kernelPackages = pkgs.linuxPackages_latest; 65 kernelPackages = pkgs.linuxPackages_latest;
65 extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
66 kernelModules = ["v4l2loopback"];
67 kernelPatches = [ 66 kernelPatches = [
68 { name = "edac-config"; 67 { name = "edac-config";
69 patch = null; 68 patch = null;
70 extraConfig = '' 69 extraStructuredConfig = with lib.kernel; {
71 EDAC y 70 EDAC = yes;
72 EDAC_IE31200 y 71 EDAC_IE31200 = yes;
73 ''; 72 };
73 }
74 { name = "zswap-default";
75 patch = null;
76 extraStructuredConfig = with lib.kernel; {
77 ZSWAP_DEFAULT_ON = yes;
78 ZSWAP_SHRINKER_DEFAULT_ON = yes;
79 };
74 } 80 }
75 ]; 81 ];
76 82
@@ -439,7 +445,7 @@ in {
439 }; 445 };
440 446
441 xserver = { 447 xserver = {
442 enable = true; 448 enable = false;
443 449
444 xkb = { 450 xkb = {
445 layout = "us"; 451 layout = "us";
@@ -465,46 +471,15 @@ in {
465 }; 471 };
466 libinput.enable = true; 472 libinput.enable = true;
467 473
468 greetd = { 474 envfs.enable = false;
469 enable = true;
470 # settings.default_session.command = let
471 # cfg = config.programs.regreet;
472 # in pkgs.writeShellScript "greeter" ''
473 # modprobe -r nvidia_drm
474
475 # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package}
476 # '';
477 };
478 };
479
480 programs.regreet = {
481 enable = true;
482 theme = {
483 package = pkgs.equilux-theme;
484 name = "Equilux-compact";
485 };
486 iconTheme = {
487 package = pkgs.paper-icon-theme;
488 name = "Paper-Mono-Dark";
489 };
490 font = {
491 package = pkgs.fira;
492 name = "Fira Sans";
493 # size = 6;
494 };
495 cageArgs = [ "-s" "-m" "last" ];
496 settings = {
497 GTK.application_prefer_dark_theme = true;
498 };
499 }; 475 };
500 programs.hyprland.enable = true;
501 476
502 systemd.tmpfiles.settings = { 477 systemd.tmpfiles.settings = {
503 "10-localtime"."/etc/localtime".L.argument = "/.bcachefs/etc/localtime"; 478 "10-localtime"."/etc/localtime".L.argument = "/.bcachefs/etc/localtime";
504 479
505 "10-regreet"."/var/cache/regreet/cache.toml".C.argument = toString ((pkgs.formats.toml {}).generate "cache.toml" { 480 "10-regreet"."/var/cache/regreet/cache.toml".C.argument = toString ((pkgs.formats.toml {}).generate "cache.toml" {
506 last_user = "gkleen"; 481 last_user = "gkleen";
507 user_to_last_sess.gkleen = "Hyprland"; 482 user_to_last_sess.gkleen = "niri";
508 }); 483 });
509 }; 484 };
510 485
@@ -614,15 +589,15 @@ in {
614 }; 589 };
615 590
616 nvidia = { 591 nvidia = {
617 open = true; 592 open = false;
618 modesetting.enable = true; 593 modesetting.enable = true;
619 powerManagement.enable = true; 594 powerManagement.enable = true;
620 prime = { 595 # prime = {
621 nvidiaBusId = "PCI:1:0:0"; 596 # nvidiaBusId = "PCI:1:0:0";
622 intelBusId = "PCI:0:2:0"; 597 # intelBusId = "PCI:0:2:0";
623 reverseSync.enable = true; 598 # reverseSync.enable = true;
624 offload.enableOffloadCmd = true; 599 # offload.enableOffloadCmd = true;
625 }; 600 # };
626 }; 601 };
627 602
628 graphics = { 603 graphics = {
@@ -696,6 +671,7 @@ in {
696 671
697 services.dbus.packages = with pkgs; 672 services.dbus.packages = with pkgs;
698 [ dbus dconf 673 [ dbus dconf
674 xdg-desktop-portal-gtk
699 ]; 675 ];
700 676
701 services.udisks2.enable = true; 677 services.udisks2.enable = true;
@@ -704,12 +680,8 @@ in {
704 light.enable = true; 680 light.enable = true;
705 wireshark.enable = true; 681 wireshark.enable = true;
706 dconf.enable = true; 682 dconf.enable = true;
707 }; 683 niri.enable = true;
708 684 fuse.userAllowOther = true;
709 zramSwap = {
710 enable = true;
711 algorithm = "zstd";
712 writebackDevice = "/dev/disk/by-label/swap";
713 }; 685 };
714 686
715 services.pcscd.enable = true; 687 services.pcscd.enable = true;
@@ -729,6 +701,16 @@ in {
729 environment.sessionVariables."GTK_USE_PORTAL" = "1"; 701 environment.sessionVariables."GTK_USE_PORTAL" = "1";
730 xdg.portal = { 702 xdg.portal = {
731 enable = true; 703 enable = true;
704 extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
705 config.niri = {
706 default = ["gnome" "gtk"];
707 "org.freedesktop.impl.portal.FileChooser" = ["gtk"];
708 "org.freedesktop.impl.portal.OpenFile" = ["gtk"];
709 "org.freedesktop.impl.portal.Access" = ["gtk"];
710 "org.freedesktop.impl.portal.Notification" = ["gtk"];
711 "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
712 "org.freedesktop.impl.portal.Inhibit" = ["none"];
713 };
732 }; 714 };
733 715
734 environment.persistence."/.bcachefs" = { 716 environment.persistence."/.bcachefs" = {
@@ -736,11 +718,11 @@ in {
736 directories = [ 718 directories = [
737 "/nix" 719 "/nix"
738 "/root" 720 "/root"
721 "/home"
739 "/var/log" 722 "/var/log"
740 "/var/lib/sops-nix" 723 "/var/lib/sops-nix"
741 "/var/lib/nixos" 724 "/var/lib/nixos"
742 "/var/lib/systemd" 725 "/var/lib/systemd"
743 "/home"
744 "/var/lib/chrony" 726 "/var/lib/chrony"
745 "/var/lib/fprint" 727 "/var/lib/fprint"
746 "/var/lib/bluetooth" 728 "/var/lib/bluetooth"
@@ -769,6 +751,10 @@ in {
769 751
770 home-manager.sharedModules = [ flakeInputs.nixVirt.homeModules.default ]; 752 home-manager.sharedModules = [ flakeInputs.nixVirt.homeModules.default ];
771 753
754 environment.pathsToLink = [
755 "share/zsh"
756 ];
757
772 system.stateVersion = "24.11"; 758 system.stateVersion = "24.11";
773 }; 759 };
774} 760}
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..20fc761a
--- /dev/null
+++ b/hosts/sif/greetd/wallpaper.png
Binary files differ
diff --git a/hosts/sif/hw.nix b/hosts/sif/hw.nix
index fc20ef7c..1bcf0261 100644
--- a/hosts/sif/hw.nix
+++ b/hosts/sif/hw.nix
@@ -8,15 +8,28 @@
8 options = [ "fmask=0033" "dmask=0022" ]; 8 options = [ "fmask=0033" "dmask=0022" ];
9 }; 9 };
10 "/.bcachefs" = 10 "/.bcachefs" =
11 { device = "/dev/mapper/sif-nvm0:/dev/mapper/sif-nvm1"; 11 { options = [
12 "x-systemd.requires=/dev/disk/by-id/dm-name-sif-nvm0"
13 "x-systemd.requires=/dev/disk/by-id/dm-name-sif-nvm1"
14 ];
15 device = "/dev/disk/by-uuid/fe7bdaac-d2f3-4535-a635-e2fb97ef3802";
12 fsType = "bcachefs"; 16 fsType = "bcachefs";
13 neededForBoot = true; 17 neededForBoot = true;
14 }; 18 };
15 "/var/lib/sops-nix".neededForBoot = true; 19 "/var/lib/sops-nix".neededForBoot = true;
16 "/var/lib/systemd".neededForBoot = true; 20 "/var/lib/systemd".neededForBoot = true;
17 }; 21 };
18 system.etc.overlay.enable = false; 22 swapDevices = [
19 systemd.sysusers.enable = false; 23 { label = "swap"; }
24 ];
25 # system.etc.overlay.enable = false;
26
27 boot.initrd.systemd.packages = [
28 (pkgs.writeTextDir "/etc/systemd/system/\\x2ebcachefs.mount.d/block_scan.conf" ''
29 [Mount]
30 Environment=BCACHEFS_BLOCK_SCAN=1
31 '')
32 ];
20 33
21 # boot.initrd.supportedFilesystems.bcachefs = true; 34 # boot.initrd.supportedFilesystems.bcachefs = true;
22 # boot.initrd.systemd.units."dev-sif-nvm0:-dev-sif-nvm1.device".enable = false; 35 # boot.initrd.systemd.units."dev-sif-nvm0:-dev-sif-nvm1.device".enable = false;
diff --git a/hosts/sif/libvirt/default.nix b/hosts/sif/libvirt/default.nix
index d0be7dff..9712d0d9 100644
--- a/hosts/sif/libvirt/default.nix
+++ b/hosts/sif/libvirt/default.nix
@@ -8,6 +8,7 @@ with flakeInputs.nixVirt.lib;
8 qemu.swtpm.enable = true; 8 qemu.swtpm.enable = true;
9 allowedBridges = ["virbr0" "rz-0971" "rz-2403"]; 9 allowedBridges = ["virbr0" "rz-0971" "rz-2403"];
10 }; 10 };
11 virtualisation.spiceUSBRedirection.enable = true;
11 virtualisation.libvirt = { 12 virtualisation.libvirt = {
12 enable = true; 13 enable = true;
13 swtpm.enable = true; 14 swtpm.enable = true;
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;