diff --git a/flake.lock b/flake.lock index 46ed4cc..aeb7758 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1737038063, - "narHash": "sha256-rMEuiK69MDhjz1JgbaeQ9mBDXMJ2/P8vmOYRbFndXsk=", + "lastModified": 1738148035, + "narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=", "owner": "nix-community", "repo": "disko", - "rev": "bf0abfde48f469c256f2b0f481c6281ff04a5db2", + "rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54", "type": "github" }, "original": { @@ -245,11 +245,11 @@ }, "impermanence": { "locked": { - "lastModified": 1736688610, - "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", + "lastModified": 1737831083, + "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", "owner": "nix-community", "repo": "impermanence", - "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", + "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", "type": "github" }, "original": { @@ -314,11 +314,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1737251398, - "narHash": "sha256-Rgy+nVKpMnklhWJlnEyo/0v3a6bLfkUyH7B7sd1eMdQ=", + "lastModified": 1738287839, + "narHash": "sha256-Vh060kC/aTX+e8Ru195wo+QySd0z91wJ++JZNSDJxy8=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "d94b6e59e8e49dc1261f04921be171e07e48bc90", + "rev": "58f1ae4ac2620cbcef912e32b17f9a64fcb372ad", "type": "github" }, "original": { @@ -344,11 +344,11 @@ }, "nixpkgs-24_11": { "locked": { - "lastModified": 1737299813, - "narHash": "sha256-Qw2PwmkXDK8sPQ5YQ/y/icbQ+TYgbxfjhgnkNJyT1X8=", + "lastModified": 1734083684, + "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "107d5ef05c0b1119749e381451389eded30fb0d5", + "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84", "type": "github" }, "original": { @@ -375,11 +375,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1717602782, - "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=", + "lastModified": 1732014248, + "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6", + "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", "type": "github" }, "original": { @@ -406,11 +406,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1737299813, - "narHash": "sha256-Qw2PwmkXDK8sPQ5YQ/y/icbQ+TYgbxfjhgnkNJyT1X8=", + "lastModified": 1738163270, + "narHash": "sha256-B/7Y1v4y+msFFBW1JAdFjNvVthvNdJKiN6EGRPnqfno=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "107d5ef05c0b1119749e381451389eded30fb0d5", + "rev": "59e618d90c065f55ae48446f307e8c09565d5ab0", "type": "github" }, "original": { @@ -421,11 +421,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1737062831, - "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", + "lastModified": 1738142207, + "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", + "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", "type": "github" }, "original": { @@ -442,11 +442,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1737387847, - "narHash": "sha256-HQrhtz8ZBkLgAO4svIb34So375hQCD5Gq57FkfLatf8=", + "lastModified": 1738294692, + "narHash": "sha256-duOW9V6P7nh+zI2/leRe3A48xN3XLtkMTcTfNVTCzsg=", "owner": "nix-community", "repo": "NUR", - "rev": "50fd3406c6a2bc23654d87f9093fce072e3614cb", + "rev": "39e50429407e20eb76c3dca357a88a10e50b72b6", "type": "github" }, "original": { @@ -574,11 +574,11 @@ }, "unstable": { "locked": { - "lastModified": 1737062831, - "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", + "lastModified": 1738142207, + "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", + "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index dc00231..178a7e0 100644 --- a/flake.nix +++ b/flake.nix @@ -58,6 +58,7 @@ tower = mkNix [ ./hosts/tower ]; # Main Desktop envy = mkNix [ ./hosts/envy ]; # HP Convertable + lacros = mkNix [ ./hosts/lacros ]; # HP ChromeBook redmond = mkNix [ ./hosts/redmond ]; # Lenovo Dual-Boot extern = mkNix [ ./hosts/extern ]; # External Drive/USB diff --git a/hosts/lacros/boot/default.nix b/hosts/lacros/boot/default.nix new file mode 100644 index 0000000..50d146f --- /dev/null +++ b/hosts/lacros/boot/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + boot.kernelPackages = pkgs.linuxPackages_latest; +} diff --git a/hosts/lacros/default.nix b/hosts/lacros/default.nix new file mode 100644 index 0000000..a2fb343 --- /dev/null +++ b/hosts/lacros/default.nix @@ -0,0 +1,25 @@ +{ ... }: +{ + imports = [ + ./boot + ./disko + ./filesystems + ./hardware + ./users + ../../modules/system + ]; + + networking = { + hostName = "lacros"; + hostId = "eb3a2dd3"; + wg-quick.interfaces.wgc.address = [ "10.100.0.26/24" ]; + }; + + system = { + desktop.enable = true; + lanzaboote.enable = true; + wireguard.client.enable = true; + libvirtd.enable = true; + stateVersion = "24.11"; + }; +} diff --git a/hosts/lacros/disko/default.nix b/hosts/lacros/disko/default.nix new file mode 100644 index 0000000..22e38bc --- /dev/null +++ b/hosts/lacros/disko/default.nix @@ -0,0 +1,90 @@ +{ disko, config, ... }: +{ + imports = [ disko.nixosModules.disko ]; + + disko.devices = { + disk = { + "${config.networking.hostName}" = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + size = "2G"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + luks = { + size = "100%"; + content = { + type = "luks"; + name = "${config.networking.hostName}-disk"; + settings.allowDiscards = true; + passwordFile = "/tmp/secret.key"; + content = { + type = "lvm_pv"; + vg = "${config.networking.hostName}"; + }; + }; + }; + }; + }; + }; + }; + + lvm_vg = { + "${config.networking.hostName}" = { + type = "lvm_vg"; + lvs = { + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; + subvolumes = { + "/root" = { + mountpoint = "/"; + mountOptions = [ "compress=zstd" "noatime" "ssd" ]; + }; + "/prev" = { + mountpoint = "/prev"; + mountOptions = [ "compress=zstd" "noatime" "ssd" ]; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ "compress=zstd" "noatime" "ssd" ]; + }; + + # Impermanence + "/persist" = { + mountpoint = "/persist"; + mountOptions = [ "compress=zstd" "noatime" "ssd" ]; + }; + "/persist/.snapshots" = { }; + "/persist/home/${config.sysusers.main}" = { }; + "/persist/home/${config.sysusers.main}/.snapshots" = { }; + }; + }; + }; + swap = { + size = "4G"; + content = { + type = "swap"; + discardPolicy = "both"; + }; + }; + }; + }; + }; + }; + + # Needed for impermanence + fileSystems."/persist".neededForBoot = true; +} diff --git a/hosts/lacros/filesystems/default.nix b/hosts/lacros/filesystems/default.nix new file mode 100644 index 0000000..96d47e1 --- /dev/null +++ b/hosts/lacros/filesystems/default.nix @@ -0,0 +1,11 @@ +{ config, ... }: +{ + fileSystems = { + # Network mounts + "/home/${config.sysusers.main}/KittyNFS" = { + device = "10.100.0.1:/export/KittyNFS"; + fsType = "nfs4"; + options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; + }; + }; +} diff --git a/hosts/lacros/hardware/default.nix b/hosts/lacros/hardware/default.nix new file mode 100644 index 0000000..265bcd7 --- /dev/null +++ b/hosts/lacros/hardware/default.nix @@ -0,0 +1,12 @@ +# nixos-generate-config --root ./ --no-filesystems +{ config, lib, modulesPath, ... }: +{ + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "usb_storage" "sd_mod" "sdhci_pci" ]; + boot.kernelModules = [ "kvm-intel" "dm-snapshot" ]; + + networking.useDHCP = lib.mkDefault true; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/lacros/users/default.nix b/hosts/lacros/users/default.nix new file mode 100644 index 0000000..57e7f20 --- /dev/null +++ b/hosts/lacros/users/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + imports = [ ./main ]; +} diff --git a/hosts/lacros/users/main/default.nix b/hosts/lacros/users/main/default.nix new file mode 100644 index 0000000..d8b8d24 --- /dev/null +++ b/hosts/lacros/users/main/default.nix @@ -0,0 +1,10 @@ +{ config, lib, ... }: +{ + home-manager.users."${config.sysusers.main}" = { + home = { + desktop.enable = true; + remote-desktop.enable = true; + stateVersion = lib.mkForce "24.11"; + }; + }; +} diff --git a/modules/home/wms/niri/autostart/default.nix b/modules/home/wms/niri/autostart/default.nix index c638a64..8f76b65 100644 --- a/modules/home/wms/niri/autostart/default.nix +++ b/modules/home/wms/niri/autostart/default.nix @@ -8,14 +8,13 @@ spawn-at-startup "wl-paste" "-t" "text" "--watch" "clipman" "store" "-P" spawn-at-startup "wl-copy" spawn-at-startup "mako" - spawn-at-startup "sunshine" spawn-at-startup "rot8" spawn-at-startup "wlsunset" "-s" "23:00" "-S" "06:30" spawn-at-startup "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1" spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite" // Foreground - spawn-at-startup "librewolf" "-p" "Misc" "--name" "MiscBrowser" + //spawn-at-startup "librewolf" "-p" "Misc" "--name" "MiscBrowser" spawn-at-startup "thunderbird" spawn-at-startup "vesktop" spawn-at-startup "telegram-desktop" diff --git a/modules/home/wms/niri/rules/default.nix b/modules/home/wms/niri/rules/default.nix index 4e8a28c..d412754 100644 --- a/modules/home/wms/niri/rules/default.nix +++ b/modules/home/wms/niri/rules/default.nix @@ -20,6 +20,7 @@ } window-rule { match app-id="org.telegram.desktop" + open-maximized true open-on-workspace "${config.ws.w8}" } window-rule {