diff --git a/flake.nix b/flake.nix index 28101b0..bf7117f 100644 --- a/flake.nix +++ b/flake.nix @@ -32,7 +32,6 @@ android-nixpkgs = { url = "github:tadfisher/android-nixpkgs/stable"; inputs.nixpkgs.follows = "nixpkgs"; - }; nix-options-search.url = "github:madsbv/nix-options-search"; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index ae5c83f..e2d9f77 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,6 +1,7 @@ { lib, pkgs, + host, ... }: { @@ -10,6 +11,7 @@ ./services.nix ./nvidia.nix ]; + config.networking.hostName = host.name; # make 'shared.darwin' not an error to define. options.shared.darwin = lib.mkOption { type = lib.types.anything; diff --git a/modules/nixos/nvidia.nix b/modules/nixos/nvidia.nix index 88f2252..0801939 100644 --- a/modules/nixos/nvidia.nix +++ b/modules/nixos/nvidia.nix @@ -7,104 +7,4 @@ let nvidiaDriverChannel = config.boot.kernelPackages.nvidiaPackages.latest; in { - services.xserver.videoDrivers = [ - "nvidia" - "amdgpu" - ]; - - nixpkgs.config = { - nvidia.acceptLicense = true; - allowUnfree = true; - }; - # Kernel parameters for better Wayland and Hyprland integration - boot.kernelParams = [ - "nvidia-drm.modeset=1" # Enable mode setting for Wayland - "nvidia.NVreg_PreserveVideoMemoryAllocations=1" # Improves resume after sleep - ]; - - # Blacklist nouveau to avoid conflicts - boot.blacklistedKernelModules = [ "nouveau" ]; - environment.variables = { - LIBVA_DRIVER_NAME = "nvidia"; # Hardware video acceleration - XDG_SESSION_TYPE = "wayland"; # Force Wayland - GBM_BACKEND = "nvidia-drm"; # Graphics backend for Wayland - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; # Use Nvidia driver for GLX - WLR_NO_HARDWARE_CURSORS = "1"; # Fix for cursors on Wayland - NIXOS_OZONE_WL = "1"; # Wayland support for Electron apps - __GL_GSYNC_ALLOWED = "1"; # Enable G-Sync if available - __GL_VRR_ALLOWED = "1"; # Enable VRR (Variable Refresh Rate) - WLR_DRM_NO_ATOMIC = "1"; # Fix for some issues with Hyprland - NVD_BACKEND = "direct"; # Configuration for new driver - MOZ_ENABLE_WAYLAND = "1"; # Wayland support for Firefox - }; - - hardware = { - nvidia = { - forceFullCompositionPipeline = true; # Prevents screen tearing - # Modesetting is required. - modesetting.enable = true; - - powerManagement = { - enable = true; # Power management - finegrained = true; # More precise power consumption control - }; - - prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; - - nvidiaBusId = "PCI:1:0:0"; - amdgpuBusId = "PCI:15:0:0"; - - }; - - # Use the NVidia open source kernel module (not to be confused with the - # independent third-party "nouveau" open source driver). - # Currently alpha-quality/buggy, so false is currently the recommended setting. - open = true; - - # Environment variables for better compatibility - - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - - package = nvidiaDriverChannel; - - # #Fixes a glitch - # nvidiaPersistenced = true; - }; - nvidia-container-toolkit.enable = true; - - graphics = { - enable = true; - package = nvidiaDriverChannel; - enable32Bit = true; - extraPackages = with pkgs; [ - nvidia-vaapi-driver - vaapiVdpau - libvdpau-va-gl - mesa - egl-wayland - vulkan-loader - vulkan-validation-layers - libva - ]; - }; - }; - - nix.settings = { - substituters = [ "https://cuda-maintainers.cachix.org" ]; - trusted-public-keys = [ - "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" - ]; - }; - - environment.systemPackages = with pkgs; [ - vulkan-tools - glxinfo - libva-utils # VA-API debugging tools - ]; } diff --git a/switch b/switch index 3c26759..b6a2d10 100755 --- a/switch +++ b/switch @@ -1,12 +1,16 @@ #!/bin/sh nh_subcommand="os" fallback_command="nixos-rebuild" +hostname="" +if [ -n "$1" ]; then + hostname="#$1" +fi if [ "$(uname -o)" = "darwin" ]; then nh_subcommand="darwin" - fallback_command="nix run .#darwin-rebuild" + fallback_command="nix run .#darwin-rebuild --" fi if command -v nh >/dev/null; then nh $nh_subcommand switch . else - $fallback_command -- switch --flake . + $fallback_command switch --flake '.'"${hostname}" fi diff --git a/users/natalie/desktop/configuration.nix b/users/natalie/desktop/configuration.nix index ade64ee..b2fc1ac 100644 --- a/users/natalie/desktop/configuration.nix +++ b/users/natalie/desktop/configuration.nix @@ -163,7 +163,6 @@ }; networking = { - hostName = host.name; # Define your hostname. # wireless.enable = true; # Enables wireless support via wpa_supplicant. networkmanager.enable = true; firewall = { @@ -180,6 +179,8 @@ }; }; + services.xserver.videoDrivers = ["nvidia" "amdgpu"] + # Open ports in the firewall. # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether.