From 3370487652f07aa552022333edeaab4c630f904b Mon Sep 17 00:00:00 2001 From: death916 Date: Thu, 5 Mar 2026 20:24:38 -0800 Subject: [PATCH] wayland --- home-manager/hyprland.nix | 14 ++++++++++---- modules/nixos/desktop/desktop.nix | 2 +- modules/nixos/desktop/gaming.nix | 3 ++- nixos/death-pc.nix | 9 +++++++++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/home-manager/hyprland.nix b/home-manager/hyprland.nix index 52bead1..14153fa 100644 --- a/home-manager/hyprland.nix +++ b/home-manager/hyprland.nix @@ -25,7 +25,13 @@ env = [ "QT_QPA_PLATFORM,wayland" "GDK_BACKEND,wayland,x11" - ]; + ] ++ (lib.optionals (config.networking.hostName == "death-pc") [ + "LIBVA_DRIVER_NAME,nvidia" + "XDG_SESSION_TYPE,wayland" + "GBM_BACKEND,nvidia-drm" + "__GLX_VENDOR_LIBRARY_NAME,nvidia" + "NIXOS_OZONE_WL,1" + ]); exec-once = [ "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" @@ -260,11 +266,11 @@ on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } - # Suspend the laptop after 30 minutes - { + # Suspend the laptop after 30 minutes, but NOT the desktop + (lib.mkIf (config.networking.hostName != "death-pc") { timeout = 2800; on-timeout = "systemctl suspend"; - } + }) ]; }; }; diff --git a/modules/nixos/desktop/desktop.nix b/modules/nixos/desktop/desktop.nix index f124422..2173950 100644 --- a/modules/nixos/desktop/desktop.nix +++ b/modules/nixos/desktop/desktop.nix @@ -35,7 +35,7 @@ # This is to fix clementine gui not showing up on wayland environment.variables.QT_QPA_PLATFORM = "wayland"; services.udisks2.enable = true; - # environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Required for some Electron apps + environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Required for some Electron apps programs.hyprland = { enable = true; diff --git a/modules/nixos/desktop/gaming.nix b/modules/nixos/desktop/gaming.nix index eec5027..86b8ff2 100644 --- a/modules/nixos/desktop/gaming.nix +++ b/modules/nixos/desktop/gaming.nix @@ -11,7 +11,8 @@ hardware.graphics.enable32Bit = true; hardware.nvidia = { modesetting.enable = true; - powerManagement.enable = false; + powerManagement.enable = true; # Required for HDMI/DP audio on many cards + powerManagement.finegrained = false; open = true; # Use the open-source kernel module (recommended for RTX 20+ cards) nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; diff --git a/nixos/death-pc.nix b/nixos/death-pc.nix index 4dac5c8..7c9a292 100644 --- a/nixos/death-pc.nix +++ b/nixos/death-pc.nix @@ -20,6 +20,15 @@ # Use linux_zen kernel for performance improvements boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen; + boot.kernelParams = [ + "nvidia-drm.modeset=1" + "nvidia_drm.fbdev=1" + ]; + + # Fix for resume lockups on Systemd 256+ (Common in 2025/2026) + systemd.services.systemd-suspend.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false"; + systemd.services.systemd-hibernate.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false"; + systemd.services.systemd-hybrid-sleep.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false"; # --- Bootloader: systemd-boot --- boot.loader.systemd-boot.enable = true;