Compare commits
1 commit
main
...
switch-fix
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8b9e928244 |
5 changed files with 10 additions and 104 deletions
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
];
|
||||
}
|
||||
|
|
8
switch
8
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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue