From f94627e858388deea13c5314cd44d31ee7f1c2a6 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 23 Aug 2025 11:14:17 -0500 Subject: [PATCH] top level config --- .../configuration/android/default.nix | 34 +- .../configuration/homebox/default.nix | 359 +++++++++--------- .../configuration/jesstop/default.nix | 204 +++++----- .../configuration/laptop/default.nix | 250 ++++++------ .../configuration/sandbox-nathan/default.nix | 264 ++++++------- system-config/default.nix | 2 +- 6 files changed, 562 insertions(+), 551 deletions(-) diff --git a/system-config/configuration/android/default.nix b/system-config/configuration/android/default.nix index a8ea417..446b4e6 100644 --- a/system-config/configuration/android/default.nix +++ b/system-config/configuration/android/default.nix @@ -1,26 +1,28 @@ { config, lib, pkgs, ... }: { - home-manager = { - backupFileExtension = ".backup"; - config = { config, lib, pkgs, inputs }: { - imports = [ - inputs.nix-on-droid-home-manager - ]; - config.homeconfig = { - wal.enable = true; - calcurse.enable = true; + config = { + home-manager = { + backupFileExtension = ".backup"; + config = { config, lib, pkgs, inputs }: { + imports = [ + inputs.nix-on-droid-home-manager + ]; + config.homeconfig = { + wal.enable = true; + calcurse.enable = true; + }; }; }; - }; - terminal.font = "${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf"; + terminal.font = "${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf"; - user.shell = "${pkgs.zsh}/bin/zsh"; + user.shell = "${pkgs.zsh}/bin/zsh"; - system.stateVersion = "24.05"; + system.stateVersion = "24.05"; - environment = { - etcBackupExtension = ".backup"; - motd = ""; + environment = { + etcBackupExtension = ".backup"; + motd = ""; + }; }; } diff --git a/system-config/configuration/homebox/default.nix b/system-config/configuration/homebox/default.nix index 2d3496b..95fffb4 100644 --- a/system-config/configuration/homebox/default.nix +++ b/system-config/configuration/homebox/default.nix @@ -15,194 +15,197 @@ ]; - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_6_16; - loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ]; - }; - - nix.settings.trusted-users = lib.mkIf config.sysconfig.remoteBuildHost [ "remote-builder" ]; - - users.users."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost { - isNormalUser = true; - createHome = false; - }; - - sops.templates."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost { - content = builtins.concatStringsSep ''''\n'' (builtins.map - (y: config.sops.placeholder.${y}) - (builtins.partition - (x: (builtins.match "^remoteBuildClientKeys/.+" x) != null) - (builtins.attrNames config.sops.secrets) - ).right - ); - path = "/etc/ssh/authorized_keys.d/remote-builder"; - owner = "remote-builder"; - }; - - hardware = { - - graphics.enable = true; - - nvidia = { - modesetting.enable = true; - open = false; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - - bluetooth.enable = true; - - }; - - services = { - xserver = { - #enable = true; - videoDrivers = ["nvidia"]; - }; - displayManager = { - enable = true; - defaultSession = "hyprland"; - autoLogin = { - enable = true; - user = "nathan"; - }; - }; - pulseaudio.enable = false; - }; - - systemd.extraConfig = "DefaultLimitNOFILE=2048"; - - environment.sessionVariables = { - WLR_BACKENDS = "headless"; - WLR_LIBINPUT_NO_DEVICES = "1"; - }; - - programs.zsh.enable = true; - environment.shells = with pkgs; [ zsh bashInteractive ]; - - nixpkgs.config.allowUnfree = true; - - services.displayManager.sddm.settings.AutoLogin = { - User = "nathan"; - Session = "hyprland"; - Relogin = true; - }; - - networking = { - nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ]; - networkmanager = { - enable = true; - dns = "none"; - }; - - nftables = {}; - nat = { - enable = true; - internalInterfaces = [ "ve-+" ]; - externalInterface = "enp6s0"; - }; - }; - - system.stateVersion = "23.05"; # Did you read the comment? - - sops = { - age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; - defaultSopsFile = ./secrets.yaml; - defaultSopsFormat = "yaml"; - - secrets = { - "nathan/pass" = { - neededForUsers = true; + config = { + boot = { + kernelPackages = pkgs.linuxKernel.packages.linux_6_16; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; }; + binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ]; }; - }; - sysconfig = { - remoteBuildHost = true; - host = "homebox"; - graphical = true; - users = { - nathan = { - extraGroups = [ "wheel" "networkmanager" ]; - sshKeys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop" - ]; - shell = pkgs.zsh; - hashedPasswordFile = config.sops.secrets."nathan/pass".path; - home-manager = { - enable = true; - extraModules = [ - { - homeconfig = { - minimal = false; - wayvnc.enable = false; - hyprland.enable = true; - swaylock.enable = true; - wal.enable = true; - mpd.enable = true; - ags.enable = true; - calcurse.enable = true; - rofi.enable = true; - firefox.enable = true; - git.enable = true; - nh.enable = true; - }; + nix.settings.trusted-users = lib.mkIf config.sysconfig.remoteBuildHost [ "remote-builder" ]; - home.packages = [ - pkgs.wayvnc - ]; - } - ]; - }; + users.users."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost { + isNormalUser = true; + createHome = false; + }; + + sops.templates."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost { + content = builtins.concatStringsSep ''''\n'' (builtins.map + (y: config.sops.placeholder.${y}) + (builtins.partition + (x: (builtins.match "^remoteBuildClientKeys/.+" x) != null) + (builtins.attrNames config.sops.secrets) + ).right + ); + path = "/etc/ssh/authorized_keys.d/remote-builder"; + owner = "remote-builder"; + }; + + hardware = { + + graphics.enable = true; + + nvidia = { + modesetting.enable = true; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; }; + + bluetooth.enable = true; + }; services = { - sddm.enable = true; - openssh.enable = true; - pipewire.enable = true; - netbird.enable = true; - minecraft.enable = false; - }; - - programs = { - hyprland.enable = true; - ags.enable = true; - steam.enable = false; - }; - - virtualization = { - traefik.enable = true; - jellyfin.enable = true; - "blunkall.us".enable = true; - nextcloud.enable = true; - ntfy.enable = false; - gitea.enable = true; - n8n.enable = true; - keycloak.enable = true; - netbird.enable = true; - ollama.enable = true; - homeassistant.enable = true; - wyoming = { - enable = true; - piper = true; - openwakeword = true; - faster-whisper = true; + xserver = { +#enable = true; + videoDrivers = ["nvidia"]; }; - rustdesk.enable = false; #broken - pihole.enable = false; #broken - code-server.enable = false; - novnc.enable = true; - minecraft.enable = true; - - sandbox.enable = false; + displayManager = { + enable = true; + defaultSession = "hyprland"; + autoLogin = { + enable = true; + user = "nathan"; + }; + }; + pulseaudio.enable = false; }; + + systemd.extraConfig = "DefaultLimitNOFILE=2048"; + + environment.sessionVariables = { + WLR_BACKENDS = "headless"; + WLR_LIBINPUT_NO_DEVICES = "1"; + }; + + programs.zsh.enable = true; + environment.shells = with pkgs; [ zsh bashInteractive ]; + + nixpkgs.config.allowUnfree = true; + + services.displayManager.sddm.settings.AutoLogin = { + User = "nathan"; + Session = "hyprland"; + Relogin = true; + }; + + networking = { + nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ]; + networkmanager = { + enable = true; + dns = "none"; + }; + + nftables = {}; + nat = { + enable = true; + internalInterfaces = [ "ve-+" ]; + externalInterface = "enp6s0"; + }; + }; + + system.stateVersion = "23.05"; # Did you read the comment? + + sops = { + age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; + defaultSopsFile = ./secrets.yaml; + defaultSopsFormat = "yaml"; + + secrets = { + "nathan/pass" = { + neededForUsers = true; + }; + }; + }; + + sysconfig = { + remoteBuildHost = true; + host = "homebox"; + graphical = true; + users = { + nathan = { + extraGroups = [ "wheel" "networkmanager" ]; + sshKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop" + ]; + shell = pkgs.zsh; + hashedPasswordFile = config.sops.secrets."nathan/pass".path; + home-manager = { + enable = true; + extraModules = [ + { + homeconfig = { + minimal = false; + wayvnc.enable = false; + hyprland.enable = true; + swaylock.enable = true; + wal.enable = true; + mpd.enable = true; + ags.enable = true; + calcurse.enable = true; + rofi.enable = true; + firefox.enable = true; + git.enable = true; + nh.enable = true; + }; + + home.packages = [ + pkgs.wayvnc + ]; + } + ]; + }; + }; + }; + + services = { + sddm.enable = true; + openssh.enable = true; + pipewire.enable = true; + netbird.enable = true; + minecraft.enable = false; + }; + + programs = { + hyprland.enable = true; + ags.enable = true; + steam.enable = false; + }; + + virtualization = { + traefik.enable = true; + jellyfin.enable = true; + "blunkall.us".enable = true; + nextcloud.enable = true; + ntfy.enable = false; + gitea.enable = true; + n8n.enable = true; + keycloak.enable = true; + netbird.enable = true; + ollama.enable = true; + homeassistant.enable = true; + wyoming = { + enable = true; + piper = true; + openwakeword = true; + faster-whisper = true; + }; + rustdesk.enable = false; #broken + pihole.enable = false; #broken + code-server.enable = false; + novnc.enable = true; + minecraft.enable = true; + + sandbox.enable = false; + }; + }; + + fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; + }; - fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; - } diff --git a/system-config/configuration/jesstop/default.nix b/system-config/configuration/jesstop/default.nix index a440849..fb03952 100644 --- a/system-config/configuration/jesstop/default.nix +++ b/system-config/configuration/jesstop/default.nix @@ -10,131 +10,133 @@ inputs.sops-nix.nixosModules.sops ]; + config = { - nixpkgs.config = { - allowUnfree = true; - }; + nixpkgs.config = { + allowUnfree = true; + }; # Bootloader. - boot = { - loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; + boot = { + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; }; - }; - - systemd.extraConfig = "DefaultLimitNOFILE=2048"; - hardware = { - graphics.enable = true; + systemd.extraConfig = "DefaultLimitNOFILE=2048"; + + hardware = { + graphics.enable = true; #enable bluetooth - bluetooth.enable = true; + bluetooth.enable = true; - }; - - services.pulseaudio.enable = false; + }; - environment.systemPackages = with pkgs; [ - alsa-utils - ]; + services.pulseaudio.enable = false; - sysconfig.opts = { - sddm.enable = true; - openssh.enable = false; - steam.enable = true; - pipewire.enable = true; - ags.enable = false; - hyprland.enable = false; - git.enable = false; - nh.enable = true; + environment.systemPackages = with pkgs; [ + alsa-utils + ]; + + sysconfig.opts = { + sddm.enable = true; + openssh.enable = false; + steam.enable = true; + pipewire.enable = true; + ags.enable = false; + hyprland.enable = false; + git.enable = false; + nh.enable = true; + + }; - }; - # Enable the X11 windowing system. - services.xserver = { - enable = true; - desktopManager.enlightenment.enable = true; - }; + services.xserver = { + enable = true; + desktopManager.enlightenment.enable = true; + }; - services.acpid.enable = true; + services.acpid.enable = true; - services.displayManager.enable = true; + services.displayManager.enable = true; - services.avahi = { + services.avahi = { - enable = true; - ipv4 = true; - ipv6 = true; - openFirewall = true; - nssmdns4 = true; - wideArea = true; + enable = true; + ipv4 = true; + ipv6 = true; + openFirewall = true; + nssmdns4 = true; + wideArea = true; - }; + }; # Enable CUPS to print documents. - services.printing.enable = true; + services.printing.enable = true; - system.stateVersion = "23.05"; # Did you read the comment? + system.stateVersion = "23.05"; # Did you read the comment? - # Set your time zone. - time.timeZone = "America/Chicago"; +# Set your time zone. + time.timeZone = "America/Chicago"; - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; +# Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - - networking = { - hostName = "jesstop"; - nameservers = [ "1.1.1.1" "1.0.0.1" ]; - networkmanager.enable = true; - }; - - - users.users."nickelback" = { - isNormalUser = true; - description = "Thomas Jefferson"; - initialPassword = "89453712"; - #hashedPasswordFile = config.sops.secrets."nathan/pass".path; - extraGroups = [ - "wheel" - "networkmanager" - ]; # Enable ‘sudo’ for the user. - openssh.authorizedKeys.keys = []; - - packages = with pkgs; [ - (writeShellScriptBin "beets" '' - bluetoothctl connect A4:16:C0:74:1F:55 - '') - - spotify - gnome-network-displays - discord - krita - rpcs3 - ]; - }; - - nix = { - nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; - settings = { - experimental-features = [ "nix-command" "flakes" ]; + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; }; + + networking = { + hostName = "jesstop"; + nameservers = [ "1.1.1.1" "1.0.0.1" ]; + networkmanager.enable = true; + }; + + + users.users."nickelback" = { + isNormalUser = true; + description = "Thomas Jefferson"; + initialPassword = "89453712"; +#hashedPasswordFile = config.sops.secrets."nathan/pass".path; + extraGroups = [ + "wheel" + "networkmanager" + ]; # Enable ‘sudo’ for the user. + openssh.authorizedKeys.keys = []; + + packages = with pkgs; [ + (writeShellScriptBin "beets" '' + bluetoothctl connect A4:16:C0:74:1F:55 + '') + + spotify + gnome-network-displays + discord + krita + rpcs3 + ]; + }; + + nix = { + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + settings = { + experimental-features = [ "nix-command" "flakes" ]; + }; + }; + + fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; + + }; - - fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; - - } diff --git a/system-config/configuration/laptop/default.nix b/system-config/configuration/laptop/default.nix index 8ee98e5..a6b048f 100644 --- a/system-config/configuration/laptop/default.nix +++ b/system-config/configuration/laptop/default.nix @@ -10,165 +10,167 @@ inputs.sops-nix.nixosModules.sops ]; + config = { - nixpkgs.config = { - allowUnfree = true; - }; + nixpkgs.config = { + allowUnfree = true; + }; # Bootloader. - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_6_16; - loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; + boot = { + kernelPackages = pkgs.linuxKernel.packages.linux_6_16; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ]; }; - kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ]; - }; - - systemd.extraConfig = "DefaultLimitNOFILE=2048"; - hardware = { - graphics.enable = true; + systemd.extraConfig = "DefaultLimitNOFILE=2048"; - nvidia = { - modesetting.enable = true; - powerManagement.enable = true; - powerManagement.finegrained = false; - open = false; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; + hardware = { + graphics.enable = true; - prime = { + nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + powerManagement.finegrained = false; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + + prime = { # Make sure to use the correct Bus ID values for your system! - intelBusId = "PCI:0:2:0"; - nvidiaBusId = "PCI:1:0:0"; + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; # WARNING: sync and offload are mutually exclusive. # You can only pick one!! #sync.enable = true; - offload = { - enable = true; - enableOffloadCmd = true; + offload = { + enable = true; + enableOffloadCmd = true; + }; }; }; - }; #enable bluetooth - bluetooth.enable = true; + bluetooth.enable = true; - }; - - services.pulseaudio.enable = false; + }; - environment.systemPackages = with pkgs; [ - alsa-utils - ]; + services.pulseaudio.enable = false; - sysconfig = { - remoteBuildClient = true; - host = "laptop"; - graphical = true; - users = { - nathan = { - extraGroups = [ "wheel" "networkmanager" ]; - hashedPasswordFile = config.sops.secrets."nathan/pass".path; - shell = pkgs.zsh; - home-manager = { - enable = true; - standalone = false; - extraModules = [ - { - homeconfig = { - minimal = false; - wayvnc.enable = false; - hyprland.enable = true; - swaylock.enable = true; - wal.enable = true; - mpd.enable = true; - ags.enable = true; - calcurse.enable = true; - rofi.enable = true; - firefox.enable = true; - git.enable = true; - nh.enable = true; - }; - } - ]; + environment.systemPackages = with pkgs; [ + alsa-utils + ]; + + sysconfig = { + remoteBuildClient = true; + host = "laptop"; + graphical = true; + users = { + nathan = { + extraGroups = [ "wheel" "networkmanager" ]; + hashedPasswordFile = config.sops.secrets."nathan/pass".path; + shell = pkgs.zsh; + home-manager = { + enable = true; + standalone = false; + extraModules = [ + { + homeconfig = { + minimal = false; + wayvnc.enable = false; + hyprland.enable = true; + swaylock.enable = true; + wal.enable = true; + mpd.enable = true; + ags.enable = true; + calcurse.enable = true; + rofi.enable = true; + firefox.enable = true; + git.enable = true; + nh.enable = true; + }; + } + ]; + }; + }; + }; + + services = { + sddm.enable = true; + openssh.enable = false; + pipewire.enable = true; + kdePlasma6.enable = true; + netbird.enable = true; + ollama.enable = true; + }; + + programs = { + steam.enable = true; + ags.enable = true; + hyprland.enable = true; + }; + + + virtualization = { + + wyoming = { + enable = false; + }; + + homeassistant = { + enable = false; }; }; }; - services = { - sddm.enable = true; - openssh.enable = false; - pipewire.enable = true; - kdePlasma6.enable = true; - netbird.enable = true; - ollama.enable = true; - }; - programs = { - steam.enable = true; - ags.enable = true; - hyprland.enable = true; - }; - - - virtualization = { - - wyoming = { - enable = false; - }; - - homeassistant = { - enable = false; - }; - }; - }; - - # Enable the X11 windowing system. - services.xserver = { - enable = true; - videoDrivers = ["nvidia"]; - }; + services.xserver = { + enable = true; + videoDrivers = ["nvidia"]; + }; - services.displayManager.enable = true; + services.displayManager.enable = true; - services.avahi = { + services.avahi = { - enable = true; - ipv4 = true; - ipv6 = true; - openFirewall = true; - nssmdns4 = true; - wideArea = true; + enable = true; + ipv4 = true; + ipv6 = true; + openFirewall = true; + nssmdns4 = true; + wideArea = true; - }; + }; - environment.shells = with pkgs; [ zsh bashInteractive ]; + environment.shells = with pkgs; [ zsh bashInteractive ]; # Enable CUPS to print documents. - services.printing.enable = true; + services.printing.enable = true; - programs.adb.enable = true; + programs.adb.enable = true; - programs.zsh.enable = true; + programs.zsh.enable = true; - system.stateVersion = "23.05"; # Did you read the comment? + system.stateVersion = "23.05"; # Did you read the comment? + + networking = { + nameservers = [ "1.1.1.1" "1.0.0.1" ]; + networkmanager.enable = true; + }; + + sops = { + age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; + defaultSopsFile = ./secrets.yaml; + defaultSopsFormat = "yaml"; + secrets."nathan/pass".neededForUsers = true; + }; + + fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; - networking = { - nameservers = [ "1.1.1.1" "1.0.0.1" ]; - networkmanager.enable = true; }; - sops = { - age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; - defaultSopsFile = ./secrets.yaml; - defaultSopsFormat = "yaml"; - secrets."nathan/pass".neededForUsers = true; - }; - - fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; - - } diff --git a/system-config/configuration/sandbox-nathan/default.nix b/system-config/configuration/sandbox-nathan/default.nix index 44d627b..74200d4 100644 --- a/system-config/configuration/sandbox-nathan/default.nix +++ b/system-config/configuration/sandbox-nathan/default.nix @@ -8,149 +8,151 @@ ]; - hardware.nvidia.open = true; + config = { + hardware.nvidia.open = true; - boot.isContainer = true; + boot.isContainer = true; - services = { - xserver = { - #enable = true; - videoDrivers = ["nvidia"]; - }; - displayManager = { - enable = true; - defaultSession = "plasma"; - autoLogin = { - enable = true; - user = "nathan"; - }; - }; - pulseaudio.enable = false; - }; - - systemd.extraConfig = "DefaultLimitNOFILE=2048"; -/* - environment.sessionVariables = { - WLR_BACKENDS = "headless"; - WLR_LIBINPUT_NO_DEVICES = "1"; - }; -*/ - programs.zsh.enable = true; - environment.shells = with pkgs; [ zsh ]; - users.defaultUserShell = pkgs.zsh; - - nixpkgs = { - config.allowUnfree = true; - hostPlatform = "x86_64-linux"; - }; - - # Set your time zone. - time.timeZone = "America/Chicago"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - - services.displayManager.sddm.settings.AutoLogin = { - User = "nathan"; - Session = "plasmawayland.desktop"; - Relogin = true; - }; - - networking = { - nameservers = [ "1.1.1.1" "1.0.0.1" ]; - networkmanager.enable = true; - firewall.allowedTCPPorts = [ 80 ]; - }; - - system.stateVersion = "25.05"; # Did you read the comment? - - users.users."nathan" = { - isNormalUser = true; - - initialPassword = "7567"; - - #hashedPasswordFile = config.sops.secrets."nathan/pass".path; - - extraGroups = [ - "wheel" - ]; # Enable ‘sudo’ for the user. - - /*openssh.authorizedKeys.keys = [ - ];*/ + services = { + xserver = { +#enable = true; + videoDrivers = ["nvidia"]; + }; + displayManager = { + enable = true; + defaultSession = "plasma"; + autoLogin = { + enable = true; + user = "nathan"; + }; + }; + pulseaudio.enable = false; }; - nix = { - nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; - settings = { - experimental-features = [ "nix-command" "flakes" ]; + systemd.extraConfig = "DefaultLimitNOFILE=2048"; + /* + environment.sessionVariables = { + WLR_BACKENDS = "headless"; + WLR_LIBINPUT_NO_DEVICES = "1"; + }; + */ + programs.zsh.enable = true; + environment.shells = with pkgs; [ zsh ]; + users.defaultUserShell = pkgs.zsh; + + nixpkgs = { + config.allowUnfree = true; + hostPlatform = "x86_64-linux"; }; - }; - /*sops = { - age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; - defaultSopsFile = ./secrets.yaml; - defaultSopsFormat = "yaml"; +# Set your time zone. + time.timeZone = "America/Chicago"; - secrets = { - "nathan/pass" = { - neededForUsers = true; +# Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + services.displayManager.sddm.settings.AutoLogin = { + User = "nathan"; + Session = "plasmawayland.desktop"; + Relogin = true; + }; + + networking = { + nameservers = [ "1.1.1.1" "1.0.0.1" ]; + networkmanager.enable = true; + firewall.allowedTCPPorts = [ 80 ]; + }; + + system.stateVersion = "25.05"; # Did you read the comment? + + users.users."nathan" = { + isNormalUser = true; + + initialPassword = "7567"; + +#hashedPasswordFile = config.sops.secrets."nathan/pass".path; + + extraGroups = [ + "wheel" + ]; # Enable ‘sudo’ for the user. + + /*openssh.authorizedKeys.keys = [ + ];*/ + }; + + nix = { + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + settings = { + experimental-features = [ "nix-command" "flakes" ]; }; }; - };*/ - programs.fuse.userAllowOther = true; + /*sops = { + age.keyFile = "/home/nathan/.config/sops/age/keys.txt"; + defaultSopsFile = ./secrets.yaml; + defaultSopsFormat = "yaml"; - home-manager = { - backupFileExtension = "backup"; - extraSpecialArgs = {inherit inputs;}; - users = { - "nathan" = lib.mkMerge [ - inputs.nathan-home-manager - { - config.homeconfig = { - minimal = false; - wayvnc.enable = true; - hyprland.enable = false; - wal.enable = false; - ags.enable = false; - swaylock.enable = true; - mpd.enable = true; - calcurse.enable = true; - rofi.enable = true; - firefox.enable = true; - }; - } - ]; - }; - }; + secrets = { + "nathan/pass" = { + neededForUsers = true; + }; + }; + };*/ - sysconfig = { - opts = { - novnc.enable = true; - sddm.enable = true; - openssh.enable = true; - pipewire.enable = true; - ags.enable = false; - hyprland.enable = false; - kdePlasma6.enable = true; - git.enable = true; - nh.enable = true; - netbird.enable = true; - }; - }; + programs.fuse.userAllowOther = true; - fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; + home-manager = { + backupFileExtension = "backup"; + extraSpecialArgs = {inherit inputs;}; + users = { + "nathan" = lib.mkMerge [ + inputs.nathan-home-manager + { + config.homeconfig = { + minimal = false; + wayvnc.enable = true; + hyprland.enable = false; + wal.enable = false; + ags.enable = false; + swaylock.enable = true; + mpd.enable = true; + calcurse.enable = true; + rofi.enable = true; + firefox.enable = true; + }; + } + ]; + }; + }; + sysconfig = { + opts = { + novnc.enable = true; + sddm.enable = true; + openssh.enable = true; + pipewire.enable = true; + ags.enable = false; + hyprland.enable = false; + kdePlasma6.enable = true; + git.enable = true; + nh.enable = true; + netbird.enable = true; + }; + }; + + fonts.packages = with pkgs; [ nerd-fonts.fira-code ]; + + }; } diff --git a/system-config/default.nix b/system-config/default.nix index ffe616d..a01d961 100644 --- a/system-config/default.nix +++ b/system-config/default.nix @@ -45,7 +45,7 @@ then (import ./configuration/${z} { config = {}; inherit lib pkgs inputs modulesPath; - }) + }).config else null; test = if cfg == null then false else if !(cfg ? sysconfig) then false