diff --git a/bathtub/default.nix b/bathtub/default.nix index c30a682..c1b0470 100644 --- a/bathtub/default.nix +++ b/bathtub/default.nix @@ -2,6 +2,7 @@ lib, config, pkgs, + modulesPath, ... }: { @@ -10,6 +11,7 @@ ./services.nix ./programs.nix ./specialisation.nix + (modulesPath + "/installer/scan/not-detected.nix") ]; sops = { @@ -25,14 +27,6 @@ networking.hostId = "2f38e783"; networking.networkmanager.enable = true; - time.timeZone = "Australia/Melbourne"; - i18n.defaultLocale = "en_AU.UTF-8"; - console = { - font = "solar24x32"; - keyMap = lib.mkDefault "us"; - useXkbConfig = true; - }; - users.defaultUserShell = pkgs.zsh; users.users = { root.hashedPasswordFile = config.sops.secrets."passwords/root".path; @@ -52,13 +46,8 @@ hashedPasswordFile = config.sops.secrets."passwords/monke".path; }; }; - home-manager.users.monke = import ./home.nix; - security.pki.certificateFiles = [ - ../files/forest.pem - ]; - networking.firewall = rec { allowedTCPPortRanges = [ { @@ -70,4 +59,5 @@ }; system.stateVersion = "25.11"; + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; } diff --git a/bathtub/hardware.nix b/bathtub/hardware.nix index 098e392..677d6d0 100644 --- a/bathtub/hardware.nix +++ b/bathtub/hardware.nix @@ -1,15 +1,9 @@ { - lib, - modulesPath, pkgs, ... }: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - hardware = { graphics.enable = true; asahi = { @@ -18,43 +12,38 @@ }; }; - boot.loader.systemd-boot.enable = true; - boot.supportedFilesystems = [ "zfs" ]; - boot.zfs = { - package = pkgs.zfs_unstable; - forceImportRoot = false; - }; - boot.loader.efi = { - canTouchEfiVariables = false; - efiSysMountPoint = "/boot/efi"; + boot = { + loader = { + efi = { + canTouchEfiVariables = false; + efiSysMountPoint = "/boot/efi"; + }; + systemd-boot.enable = true; + }; + supportedFilesystems = [ "zfs" ]; + zfs = { + package = pkgs.zfs_unstable; + forceImportRoot = false; + }; + initrd.availableKernelModules = [ + "usb_storage" + "sdhci_pci" + ]; + kernelParams = [ "appledrm.show_notch=1" ]; }; - boot.initrd.availableKernelModules = [ - "usb_storage" - "sdhci_pci" - ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.kernelParams = [ - "appledrm.show_notch=1" - ]; - boot.extraModulePackages = [ ]; - fileSystems."/" = { device = "bathtub/root/nixos"; fsType = "zfs"; }; - fileSystems."/home" = { device = "bathtub/home"; fsType = "zfs"; }; - fileSystems."/boot" = { device = "/dev/disk/by-uuid/70838fa1-5372-49e5-afc8-81d08fd5f7f7"; fsType = "ext2"; }; - fileSystems."/boot/efi" = { device = "/dev/disk/by-uuid/068B-1C01"; fsType = "vfat"; @@ -67,7 +56,4 @@ swapDevices = [ { device = "/dev/disk/by-uuid/e97db0d7-9b58-454e-905e-d21f7b4bc50f"; } ]; - - networking.useDHCP = lib.mkDefault true; - nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; } diff --git a/bathtub/programs.nix b/bathtub/programs.nix index aa9d304..c4f7fc1 100644 --- a/bathtub/programs.nix +++ b/bathtub/programs.nix @@ -9,12 +9,5 @@ git ]; - programs = { - zsh.enable = true; - niri = { - enable = true; - package = pkgs.niri-unstable; - }; - dconf.enable = true; - }; + programs.dconf.enable = true; } diff --git a/bathtub/services.nix b/bathtub/services.nix index cb59f0c..f797cf8 100644 --- a/bathtub/services.nix +++ b/bathtub/services.nix @@ -6,10 +6,8 @@ }: { - security.rtkit.enable = true; services = { libinput.enable = true; - pipewire = { enable = true; alsa.enable = lib.mkForce false; @@ -17,12 +15,6 @@ pulse.enable = true; jack.enable = true; }; - - udisks2.enable = true; - xserver.xkb = { - layout = "us"; - variant = "colemak_dh_ortho"; - }; }; systemd.services."getty@tty1" = { diff --git a/forest/default.nix b/forest/default.nix index 0abba08..de7d8d7 100644 --- a/forest/default.nix +++ b/forest/default.nix @@ -2,6 +2,7 @@ config, lib, pkgs, + modulesPath, ... }: { @@ -9,39 +10,30 @@ lib.fileset.toList (lib.fileset.fileFilter (file: file.hasExt "nix") ../nixos/core) ++ lib.fileset.toList (lib.fileset.fileFilter (file: file.hasExt "nix") ../nixos/server) ++ [ - ./hardware.nix ./programs.nix ./disk-config.nix + (modulesPath + "/installer/scan/not-detected.nix") ]; sops = { defaultSopsFile = ../secrets/forest.yaml; age.keyFile = "/var/lib/sops-nix/forest.txt"; secrets = { - "passwords/root".neededForUsers = true; "passwords/monke".neededForUsers = true; + "passwords/root".neededForUsers = true; "passwords/taro".neededForUsers = true; }; }; - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; - boot.kexec.enable = true; - networking.hostName = "forest"; networking.hostId = "bca37001"; - networking.networkmanager.enable = true; - - time.timeZone = "Australia/Melbourne"; - - console = { - font = "Lat2-Terminus16"; - keyMap = lib.mkDefault "us"; - useXkbConfig = true; - }; - - services.xserver.xkb.layout = "us"; + systemd.network = { + enable = true; + networks."50-lan" = { + matchConfig.Name = "enp5s0"; + networkConfig.DHCP = "ipv4"; + }; + }; users.defaultUserShell = pkgs.zsh; users.users = { @@ -78,9 +70,30 @@ ]; }; }; - home-manager.users.monke = import ./home.nix; home-manager.users.taro = import ./home-taro.nix; + boot = { + initrd.availableKernelModules = [ + "mpt3sas" + "xhci_pci" + "ahci" + "nvme" + "usbhid" + "usb_storage" + "sd_mod" + ]; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + kernelModules = [ "kvm-amd" ]; + kernelParams = [ "panic=30" ]; + binfmt.emulatedSystems = [ "aarch64-linux" ]; + kexec.enable = true; + }; + system.stateVersion = "25.11"; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/forest/hardware.nix b/forest/hardware.nix deleted file mode 100644 index d1a9ece..0000000 --- a/forest/hardware.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - config, - lib, - modulesPath, - ... -}: - -{ - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ - "mpt3sas" - "xhci_pci" - "ahci" - "nvme" - "usbhid" - "usb_storage" - "sd_mod" - ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - boot.kernelParams = [ - "panic=30" - ]; - - networking.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/forest/programs.nix b/forest/programs.nix index 9404959..00ab167 100644 --- a/forest/programs.nix +++ b/forest/programs.nix @@ -1,32 +1,6 @@ { pkgs, ... }: { - security.rtkit.enable = true; - programs = { - zsh.enable = true; - niri = { - enable = true; - package = pkgs.niri-unstable; - }; - steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - extraCompatPackages = with pkgs; [ - proton-ge-bin - ]; - extraPackages = with pkgs; [ - gamescope - mangohud - ]; - }; - }; services = { - scx = { - enable = true; - scheduler = "scx_lavd"; - extraArgs = [ "--performance" ]; - }; pipewire = { enable = true; alsa.enable = true; diff --git a/modules/desktop/eww.nix b/modules/desktop/eww.nix index 2d831e5..1c0c306 100644 --- a/modules/desktop/eww.nix +++ b/modules/desktop/eww.nix @@ -1,6 +1,6 @@ { programs.eww = { - enable = true; + enable = false; enableZshIntegration = true; configDir = ../../files/eww; }; diff --git a/nixos/core/certs.nix b/nixos/core/certs.nix new file mode 100644 index 0000000..8769833 --- /dev/null +++ b/nixos/core/certs.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + security.pki.certificateFiles = [ + ../../files/forest.pem + ]; +} diff --git a/nixos/core/console.nix b/nixos/core/console.nix new file mode 100644 index 0000000..4784bba --- /dev/null +++ b/nixos/core/console.nix @@ -0,0 +1,8 @@ +{ lib, ... }: +{ + console = { + font = "solar24x32"; + keyMap = lib.mkDefault "us"; + useXkbConfig = true; + }; +} diff --git a/nixos/core/locale.nix b/nixos/core/locale.nix new file mode 100644 index 0000000..03bbf44 --- /dev/null +++ b/nixos/core/locale.nix @@ -0,0 +1,5 @@ +{ ... }: +{ + time.timeZone = "Australia/Melbourne"; + i18n.defaultLocale = "en_AU.UTF-8"; +} diff --git a/nixos/core/niri.nix b/nixos/core/niri.nix new file mode 100644 index 0000000..91602c1 --- /dev/null +++ b/nixos/core/niri.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + programs.niri = { + enable = true; + package = pkgs.niri-unstable; + }; +} diff --git a/nixos/core/rtkit.nix b/nixos/core/rtkit.nix new file mode 100644 index 0000000..2198a04 --- /dev/null +++ b/nixos/core/rtkit.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + security.rtkit.enable = true; +} diff --git a/nixos/core/scx.nix b/nixos/core/scx.nix new file mode 100644 index 0000000..e96e7cd --- /dev/null +++ b/nixos/core/scx.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + services.scx = { + enable = true; + scheduler = "scx_lavd"; + extraArgs = [ "--performance" ]; + }; +} diff --git a/nixos/core/steam.nix b/nixos/core/steam.nix new file mode 100644 index 0000000..cd1ab97 --- /dev/null +++ b/nixos/core/steam.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: +{ + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + extraPackages = with pkgs; [ + gamescope + mangohud + ]; + }; +} diff --git a/nixos/core/udisks2.nix b/nixos/core/udisks2.nix new file mode 100644 index 0000000..066f4c7 --- /dev/null +++ b/nixos/core/udisks2.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + services.udisks2.enable = true; +} diff --git a/nixos/core/layouts.nix b/nixos/core/xkb.nix similarity index 70% rename from nixos/core/layouts.nix rename to nixos/core/xkb.nix index 2d57404..5577120 100644 --- a/nixos/core/layouts.nix +++ b/nixos/core/xkb.nix @@ -1,5 +1,10 @@ { ... }: { + services.xserver.xkb = { + layout = "us"; + variant = "colemak_dh_ortho"; + }; + services.xserver.xkb.extraLayouts = { sturdy = { description = "Sturdy keyboard layout"; diff --git a/nixos/core/zsh.nix b/nixos/core/zsh.nix new file mode 100644 index 0000000..c6b1132 --- /dev/null +++ b/nixos/core/zsh.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + programs.zsh.enable = true; +} diff --git a/nixos/server/nginx.nix b/nixos/server/nginx.nix index d56348f..af31308 100644 --- a/nixos/server/nginx.nix +++ b/nixos/server/nginx.nix @@ -111,12 +111,14 @@ sslCertificateKey = config.sops.secrets."ssl/key".path; locations."/".proxyPass = "http://127.0.0.1:4533"; }; - /*"search.monke.moe" = { - onlySSL = true; - useACMEHost = "monke.moe"; - http2 = true; - locations."/".proxyPass = "http://127.0.0.1:8086"; - };*/ + /* + "search.monke.moe" = { + onlySSL = true; + useACMEHost = "monke.moe"; + http2 = true; + locations."/".proxyPass = "http://127.0.0.1:8086"; + }; + */ "ms.monke.moe" = { onlySSL = true; useACMEHost = "monke.moe"; diff --git a/tundra/default.nix b/tundra/default.nix index b74ae47..b4cec3a 100644 --- a/tundra/default.nix +++ b/tundra/default.nix @@ -2,14 +2,15 @@ lib, pkgs, config, + modulesPath, ... }: { imports = lib.fileset.toList (lib.fileset.fileFilter (file: file.hasExt "nix") ../nixos/core) ++ [ - ./hardware.nix ./programs.nix ./disk-config.nix ./specialisation.nix + (modulesPath + "/installer/scan/not-detected.nix") ]; sops = { @@ -25,14 +26,6 @@ networking.hostId = "b9a8fced"; networking.networkmanager.enable = true; - time.timeZone = "Australia/Melbourne"; - i18n.defaultLocale = "en_AU.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = lib.mkDefault "us"; - useXkbConfig = true; - }; - users.defaultUserShell = pkgs.zsh; users.users = { root.hashedPasswordFile = config.sops.secrets."passwords/root".path; @@ -53,18 +46,8 @@ hashedPasswordFile = config.sops.secrets."passwords/monke".path; }; }; - home-manager.users.monke = import ./home.nix; - services.xserver.xkb = { - layout = "us"; - variant = "colemak_dh_ortho"; - }; - - security.pki.certificateFiles = [ - ../files/forest.pem - ]; - virtualisation = { spiceUSBRedirection.enable = true; libvirtd = { @@ -94,5 +77,27 @@ calib-data-file = ../files/calib-data.bin; }; + boot = { + initrd.availableKernelModules = [ + "xhci_pci" + "nvme" + "usb_storage" + "sd_mod" + ]; + loader.grub = { + enable = true; + device = "nodev"; + }; + kernelModules = [ + "kvm-intel" + "thinkpad_acpi" + ]; + extraModprobeConfig = '' + options thinkpad_acpi force_load=1 fan_control=1 + ''; + }; + system.stateVersion = "25.11"; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/tundra/hardware.nix b/tundra/hardware.nix deleted file mode 100644 index 81517fe..0000000 --- a/tundra/hardware.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - config, - lib, - modulesPath, - ... -}: - -{ - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ - "xhci_pci" - "nvme" - "usb_storage" - "sd_mod" - ]; - boot.initrd.kernelModules = [ ]; - boot.loader.grub = { - enable = true; - device = "nodev"; - }; - boot.kernelModules = [ - "kvm-intel" - "thinkpad_acpi" - ]; - boot.extraModprobeConfig = '' - options thinkpad_acpi force_load=1 fan_control=1 - ''; - boot.extraModulePackages = [ ]; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/tundra/programs.nix b/tundra/programs.nix index d1f4968..1a9b0dd 100644 --- a/tundra/programs.nix +++ b/tundra/programs.nix @@ -3,41 +3,14 @@ ... }: { - security.rtkit.enable = true; - programs = { - zsh.enable = true; - niri = { - enable = true; - package = pkgs.niri-unstable; - }; - virt-manager.enable = true; - steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - extraCompatPackages = with pkgs; [ - proton-ge-bin - ]; - extraPackages = with pkgs; [ - gamescope - mangohud - ]; - }; - }; + programs.virt-manager.enable = true; services = { - scx = { - enable = true; - scheduler = "scx_lavd"; - extraArgs = [ "--performance" ]; - }; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; - udisks2.enable = true; thinkfan = { enable = true; settings = {