From 8e3d5896981df7edd67be5b4ecdb62a3c243482d Mon Sep 17 00:00:00 2001 From: twoneis Date: Wed, 13 Mar 2024 15:29:41 +0100 Subject: [PATCH] updated options structure --- devices/desktop/default.nix | 15 +--- devices/desktop/nvidia.nix | 14 ++++ devices/desktop/options.nix | 3 +- modules/system/default.nix | 163 +++++++++++++++++------------------- options.nix | 10 +++ outputs.nix | 7 +- 6 files changed, 110 insertions(+), 102 deletions(-) create mode 100644 devices/desktop/nvidia.nix create mode 100644 options.nix diff --git a/devices/desktop/default.nix b/devices/desktop/default.nix index a4f37aa..c5ca13d 100644 --- a/devices/desktop/default.nix +++ b/devices/desktop/default.nix @@ -1,6 +1,7 @@ -{ config, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./hardware-config.nix + ./nvidia.nix ./options.nix ]; @@ -28,18 +29,6 @@ driSupport32Bit = true; }; - # Load nvidia driver - services.xserver.videoDrivers = ["nvidia"]; - - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = false; - powerManagement.finegrained = false; - open = false; - nvidiaSettings = false; - package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta; - }; - hardware.bluetooth = { enable = true; powerOnBoot = true; diff --git a/devices/desktop/nvidia.nix b/devices/desktop/nvidia.nix new file mode 100644 index 0000000..5c5c7be --- /dev/null +++ b/devices/desktop/nvidia.nix @@ -0,0 +1,14 @@ +{ config, ... }: { + # Load nvidia driver + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = false; + powerManagement.finegrained = false; + open = false; + nvidiaSettings = false; + package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta; + }; + +} diff --git a/devices/desktop/options.nix b/devices/desktop/options.nix index 7169a55..990e00e 100644 --- a/devices/desktop/options.nix +++ b/devices/desktop/options.nix @@ -1,7 +1,8 @@ { ... }: { withNiri = false; withGnome = true; + withNvidia = true; withVM = false; - withDistrobox = false; + withDistrobox = true; withGames = false; } diff --git a/modules/system/default.nix b/modules/system/default.nix index 64369c7..6e08a4d 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -2,15 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ pkgs, lib, ... }: { - options = { - withNiri = with lib; mkEnableOption "Enable Niri"; - withGnome = with lib; mkEnableOption "Enable Gnome"; - withVM = with lib; mkEnableOption "Enable VM related configuration"; - withDistrobox = with lib; mkEnableOption "Enable Distrobox"; - withGames = with lib; mkEnableOption "Enable games"; - }; - +{ pkgs, ... }: { imports = [ ./audio.nix ./containers.nix @@ -22,83 +14,80 @@ ./virt.nix ]; - config = { - - networking.extraHosts = - '' - 10.10.11.245 surveillance.htb - ''; - # Allow packages from nixpkgs - nixpkgs.config = { - allowUnfree = true; - }; - - #Optimise nix store - nix = { - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 1w"; - }; - settings.auto-optimise-store = true; - }; - - # Enable nix flakes - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - # Disable documentation - documentation.nixos.enable = false; - - # Enable networking - networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "Europe/Amsterdam"; - - # Select internationalisation properties. - i18n = { - defaultLocale = "en_US.UTF-8"; - - 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"; - }; - }; - - # Configure xserver - services.xserver = { - enable = true; - excludePackages = [ pkgs.xterm ]; - }; - - # Configure xkb - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - - # Enable CUPS to print documents. - services.printing.enable = false; - - # Security - security.rtkit.enable = true; - - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.twoneis = { - isNormalUser = true; - description = "twoneis"; - extraGroups = [ "networkmanager" "wheel" ]; - }; - - # Use zsh - programs.zsh.enable = true; - users.defaultUserShell = pkgs.zsh; + networking.extraHosts = + '' + 10.10.11.245 surveillance.htb + ''; + # Allow packages from nixpkgs + nixpkgs.config = { + allowUnfree = true; }; + + #Optimise nix store + nix = { + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 1w"; + }; + settings.auto-optimise-store = true; + }; + + # Enable nix flakes + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Disable documentation + documentation.nixos.enable = false; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Amsterdam"; + + # Select internationalisation properties. + i18n = { + defaultLocale = "en_US.UTF-8"; + + 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"; + }; + }; + + # Configure xserver + services.xserver = { + enable = true; + excludePackages = [ pkgs.xterm ]; + }; + + # Configure xkb + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = false; + + # Security + security.rtkit.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.twoneis = { + isNormalUser = true; + description = "twoneis"; + extraGroups = [ "networkmanager" "wheel" ]; + }; + + # Use zsh + programs.zsh.enable = true; + users.defaultUserShell = pkgs.zsh; } diff --git a/options.nix b/options.nix new file mode 100644 index 0000000..264f767 --- /dev/null +++ b/options.nix @@ -0,0 +1,10 @@ +{ lib, ... }: { + options = { + withNiri = with lib; mkEnableOption "Enable niri compositor"; + withGnome = with lib; mkEnableOption "Enable gnome DE"; + withNvidia = with lib; mkEnableOption "Enable proprietary nvidia drivers"; + withVM = with lib; mkEnableOption "Enable VM related configuration"; + withDistrobox = with lib; mkEnableOption "Enable Distrobox"; + withGames = with lib; mkEnableOption "Enable games"; + }; +} diff --git a/outputs.nix b/outputs.nix index dbc4949..f25f43f 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,7 +1,9 @@ -{ nixpkgs, home-manager, nixos-hardware, nur, niri, ... }@inputs: { +{ nixpkgs, home-manager, nixos-hardware, nur, niri, ... }: { nixosConfigurations = let + clientModules = [ ./modules/system + ./options.nix niri.nixosModules.niri home-manager.nixosModules.home-manager { nixpkgs.overlays = [ @@ -14,8 +16,10 @@ }; } ]; + serverModules = [ ./modules/server + ./options.nix home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; @@ -24,6 +28,7 @@ }; } ]; + in { desktop = nixpkgs.lib.nixosSystem { system = "x86_64-linux";