diff --git a/hosts/default.nix b/hosts/default.nix index ca99cfc..1766d35 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -88,7 +88,9 @@ let specialConfig = lib.mkMerge [ (lib.optionalAttrs (configOverrides ? extraUsers) { # Enable each user in the extraUsers list - ugaif.users = lib.genAttrs configOverrides.extraUsers (_: { enable = true; }); + ugaif.users = lib.genAttrs configOverrides.extraUsers (_: { + enable = true; + }); }) (lib.optionalAttrs (configOverrides ? buildMethods) { ugaif.host.buildMethods = configOverrides.buildMethods; diff --git a/hosts/types/nix-desktop.nix b/hosts/types/nix-desktop.nix index c30f5e0..70e146b 100644 --- a/hosts/types/nix-desktop.nix +++ b/hosts/types/nix-desktop.nix @@ -20,20 +20,20 @@ # ========== Boot Configuration ========== boot.initrd.availableKernelModules = [ - "xhci_pci" # USB 3.0 support - "nvme" # NVMe SSD support + "xhci_pci" # USB 3.0 support + "nvme" # NVMe SSD support "usb_storage" # USB storage devices - "sd_mod" # SD card support - "sdhci_pci" # SD card host controller + "sd_mod" # SD card support + "sdhci_pci" # SD card host controller ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support boot.extraModulePackages = [ ]; boot.kernelParams = [ - "quiet" # Minimal boot messages - "splash" # Show Plymouth boot splash - "boot.shell_on_fail" # Emergency shell on boot failure - "udev.log_priority=3" # Reduce udev logging + "quiet" # Minimal boot messages + "splash" # Show Plymouth boot splash + "boot.shell_on_fail" # Emergency shell on boot failure + "udev.log_priority=3" # Reduce udev logging "rd.systemd.show_status=auto" # Show systemd status during boot ]; diff --git a/hosts/types/nix-ephemeral.nix b/hosts/types/nix-ephemeral.nix index c3363ee..3943433 100644 --- a/hosts/types/nix-ephemeral.nix +++ b/hosts/types/nix-ephemeral.nix @@ -20,20 +20,20 @@ # ========== Boot Configuration ========== boot.initrd.availableKernelModules = [ - "xhci_pci" # USB 3.0 support - "nvme" # NVMe support + "xhci_pci" # USB 3.0 support + "nvme" # NVMe support "usb_storage" # USB storage devices - "sd_mod" # SD card support - "sdhci_pci" # SD card host controller + "sd_mod" # SD card support + "sdhci_pci" # SD card host controller ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support boot.extraModulePackages = [ ]; boot.kernelParams = [ - "quiet" # Minimal boot messages - "splash" # Show Plymouth boot splash - "boot.shell_on_fail" # Emergency shell on boot failure - "udev.log_priority=3" # Reduce udev logging + "quiet" # Minimal boot messages + "splash" # Show Plymouth boot splash + "boot.shell_on_fail" # Emergency shell on boot failure + "udev.log_priority=3" # Reduce udev logging "rd.systemd.show_status=auto" # Show systemd status during boot ]; @@ -42,8 +42,8 @@ ugaif.host.filesystem.swapSize = lib.mkForce "0G"; ugaif.host.filesystem.device = lib.mkForce "/dev/null"; # Dummy device ugaif.host.buildMethods = lib.mkDefault [ - "iso" # Live ISO image - "ipxe" # Network boot + "iso" # Live ISO image + "ipxe" # Network boot ]; # Disable disk management for RAM-only systems diff --git a/hosts/types/nix-laptop.nix b/hosts/types/nix-laptop.nix index 54c2e0a..6426f04 100644 --- a/hosts/types/nix-laptop.nix +++ b/hosts/types/nix-laptop.nix @@ -20,25 +20,25 @@ # ========== Boot Configuration ========== boot.initrd.availableKernelModules = [ - "xhci_pci" # USB 3.0 support + "xhci_pci" # USB 3.0 support "thunderbolt" # Thunderbolt support - "nvme" # NVMe SSD support + "nvme" # NVMe SSD support "usb_storage" # USB storage devices - "sd_mod" # SD card support - "sdhci_pci" # SD card host controller + "sd_mod" # SD card support + "sdhci_pci" # SD card host controller ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support boot.extraModulePackages = [ ]; boot.kernelParams = [ - "quiet" # Minimal boot messages - "splash" # Show Plymouth boot splash - "boot.shell_on_fail" # Emergency shell on boot failure - "udev.log_priority=3" # Reduce udev logging + "quiet" # Minimal boot messages + "splash" # Show Plymouth boot splash + "boot.shell_on_fail" # Emergency shell on boot failure + "udev.log_priority=3" # Reduce udev logging "rd.systemd.show_status=auto" # Show systemd status during boot - "i915.enable_psr=0" # Disable Panel Self Refresh (stability) - "i915.enable_dc=0" # Disable display power saving - "i915.enable_fbc=0" # Disable framebuffer compression + "i915.enable_psr=0" # Disable Panel Self Refresh (stability) + "i915.enable_dc=0" # Disable display power saving + "i915.enable_fbc=0" # Disable framebuffer compression ]; # ========== Hardware Configuration ========== diff --git a/hosts/types/nix-lxc.nix b/hosts/types/nix-lxc.nix index b19ec02..cc8790d 100644 --- a/hosts/types/nix-lxc.nix +++ b/hosts/types/nix-lxc.nix @@ -31,30 +31,30 @@ # ========== Container-Specific Configuration ========== boot.isContainer = true; boot.loader.systemd-boot.enable = lib.mkForce false; # No bootloader in container - disko.enableConfig = lib.mkForce false; # No disk management in container + disko.enableConfig = lib.mkForce false; # No disk management in container console.enable = true; - + # Allow getty to work in containers systemd.services."getty@".unitConfig.ConditionPathExists = [ "" "/dev/%I" ]; - + # Suppress unnecessary systemd units for containers systemd.suppressedSystemUnits = [ "dev-mqueue.mount" "sys-kernel-debug.mount" "sys-fs-fuse-connections.mount" ]; - + # ========== Remote Development ========== services.vscode-server.enable = true; - + # ========== System Configuration ========== system.stateVersion = "25.11"; ugaif.host.buildMethods = lib.mkDefault [ - "lxc" # LXC container tarball - "proxmox" # Proxmox VMA archive + "lxc" # LXC container tarball + "proxmox" # Proxmox VMA archive ]; ugaif.sw.enable = lib.mkDefault true; diff --git a/hosts/types/nix-surface.nix b/hosts/types/nix-surface.nix index 95cb49a..7d05478 100644 --- a/hosts/types/nix-surface.nix +++ b/hosts/types/nix-surface.nix @@ -30,26 +30,26 @@ in # ========== Boot Configuration ========== boot.initrd.availableKernelModules = [ - "xhci_pci" # USB 3.0 support - "nvme" # NVMe support (though Surface uses eMMC) + "xhci_pci" # USB 3.0 support + "nvme" # NVMe support (though Surface uses eMMC) "usb_storage" # USB storage devices - "sd_mod" # SD card support - "sdhci_pci" # SD card host controller + "sd_mod" # SD card support + "sdhci_pci" # SD card host controller ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support boot.extraModulePackages = [ ]; boot.kernelParams = [ - "quiet" # Minimal boot messages - "splash" # Show Plymouth boot splash - "boot.shell_on_fail" # Emergency shell on boot failure - "udev.log_priority=3" # Reduce udev logging + "quiet" # Minimal boot messages + "splash" # Show Plymouth boot splash + "boot.shell_on_fail" # Emergency shell on boot failure + "udev.log_priority=3" # Reduce udev logging "rd.systemd.show_status=auto" # Show systemd status during boot - "intel_ipu3_imgu" # Intel camera image processing - "intel_ipu3_isys" # Intel camera sensor interface - "fbcon=map:1" # Framebuffer console mapping - "i915.enable_psr=0" # Disable Panel Self Refresh (breaks resume) - "i915.enable_dc=0" # Disable display power saving + "intel_ipu3_imgu" # Intel camera image processing + "intel_ipu3_isys" # Intel camera sensor interface + "fbcon=map:1" # Framebuffer console mapping + "i915.enable_psr=0" # Disable Panel Self Refresh (breaks resume) + "i915.enable_dc=0" # Disable display power saving ]; # Use older kernel for better Surface hardware support diff --git a/installer/modules.nix b/installer/modules.nix index bf8af99..c9bcb5a 100644 --- a/installer/modules.nix +++ b/installer/modules.nix @@ -19,10 +19,10 @@ # home-manager.users.myuser.imports = [ inputs.nixos-systems.homeManagerModules.theme ]; # # # Neovim module (requires user parameter): -# home-manager.users.myuser.imports = [ -# (inputs.nixos-systems.homeManagerModules.nvim { +# home-manager.users.myuser.imports = [ +# (inputs.nixos-systems.homeManagerModules.nvim { # user = config.ugaif.users.accounts.myuser; -# }) +# }) # ]; { inputs }: @@ -39,8 +39,8 @@ let }: { imports = [ - ../sw/ghostty.nix # Terminal emulator - ../sw/python.nix # Python environment + ../sw/ghostty.nix # Terminal emulator + ../sw/python.nix # Python environment (import ../sw/${swType} { inherit config @@ -60,32 +60,30 @@ let # Helper to create a Home Manager module for nvim (requires user context) # External users can import this with their user data - mkNvimModule = - user: - (import ../sw/nvim.nix { inherit user; }); + mkNvimModule = user: (import ../sw/nvim.nix { inherit user; }); in { # ========== Full Host Type Modules ========== # Complete system configurations including hardware, boot, and software - nix-desktop = import ../hosts/types/nix-desktop.nix { inherit inputs; }; # Desktop workstations - nix-laptop = import ../hosts/types/nix-laptop.nix { inherit inputs; }; # Laptop systems - nix-surface = import ../hosts/types/nix-surface.nix { inherit inputs; }; # Surface tablets - nix-lxc = import ../hosts/types/nix-lxc.nix { inherit inputs; }; # Proxmox containers - nix-wsl = import ../hosts/types/nix-wsl.nix { inherit inputs; }; # WSL2 systems + nix-desktop = import ../hosts/types/nix-desktop.nix { inherit inputs; }; # Desktop workstations + nix-laptop = import ../hosts/types/nix-laptop.nix { inherit inputs; }; # Laptop systems + nix-surface = import ../hosts/types/nix-surface.nix { inherit inputs; }; # Surface tablets + nix-lxc = import ../hosts/types/nix-lxc.nix { inherit inputs; }; # Proxmox containers + nix-wsl = import ../hosts/types/nix-wsl.nix { inherit inputs; }; # WSL2 systems nix-ephemeral = import ../hosts/types/nix-ephemeral.nix { inherit inputs; }; # Diskless/RAM-only # ========== Software-Only Modules (NixOS) ========== # For use with custom hardware configurations - sw-desktop = mkSwModule "desktop"; # Full desktop environment - sw-headless = mkSwModule "headless"; # CLI-only systems - sw-stateless-kiosk = mkSwModule "stateless-kiosk"; # Netboot kiosk - sw-tablet-kiosk = mkSwModule "tablet-kiosk"; # Touch-based kiosk + sw-desktop = mkSwModule "desktop"; # Full desktop environment + sw-headless = mkSwModule "headless"; # CLI-only systems + sw-stateless-kiosk = mkSwModule "stateless-kiosk"; # Netboot kiosk + sw-tablet-kiosk = mkSwModule "tablet-kiosk"; # Touch-based kiosk # ========== Home Manager Modules ========== # User-level configuration modules # Usage: home-manager.users.myuser.imports = [ (inputs.nixos-systems.homeManagerModules.nvim { user = ; }) ]; homeModules = { - theme = ../sw/theme.nix; # Zsh theme (no params needed) - nvim = mkNvimModule; # Neovim (requires user param) + theme = ../sw/theme.nix; # Zsh theme (no params needed) + nvim = mkNvimModule; # Neovim (requires user param) }; } diff --git a/sw/default.nix b/sw/default.nix index 790a794..7576bf6 100644 --- a/sw/default.nix +++ b/sw/default.nix @@ -71,10 +71,10 @@ in environment.systemPackages = with pkgs; subtractLists cfg.excludePackages [ - htop # System monitor - binutils # Binary utilities - zsh # Z shell - git # Version control + htop # System monitor + binutils # Binary utilities + zsh # Z shell + git # Version control oh-my-posh # Shell prompt theme inputs.agenix.packages.${stdenv.hostPlatform.system}.default # Secret management ];