diff --git a/modules/common/hardware.nix b/modules/common/hardware.nix index 5cf3adf..16a4108 100644 --- a/modules/common/hardware.nix +++ b/modules/common/hardware.nix @@ -22,6 +22,11 @@ with lib; (mkIf (config.hwAccelerationGPU == "intel") intel-compute-runtime) (mkIf (config.hwAccelerationGPU == "nvidia") libvdpau-va-gl) (mkIf (config.hwAccelerationGPU == "nvidia") vaapiVdpau) + (mkIf (config.hwAccelerationGPU == "nvidia") vulkan-validation-layers) + (mkIf (config.hwAccelerationGPU == "nvidia") vulkan-headers) + (mkIf (config.hwAccelerationGPU == "nvidia") vulkan-caps-viewer) + (mkIf (config.hwAccelerationGPU == "nvidia") vulkan-extension-layer) + (mkIf (config.hwAccelerationGPU == "nvidia") vulkan-tools) ]; }; diff --git a/modules/workstation/default.nix b/modules/workstation/default.nix index d841f09..c2a6f48 100644 --- a/modules/workstation/default.nix +++ b/modules/workstation/default.nix @@ -26,7 +26,10 @@ with lib; ./home-manager sopsHmModule ]; - home-manager.extraSpecialArgs.keymap = config.keymap; + home-manager.extraSpecialArgs = { + keymap = config.keymap; + nvidiaGPU = (config.hwAccelerationGPU == "nvidia"); + }; home-manager.users = builtins.mapAttrs (name: value: mkIf value.enableHomeManagerProfile ({ diff --git a/modules/workstation/desktop.nix b/modules/workstation/desktop.nix index 388d411..b48eba3 100644 --- a/modules/workstation/desktop.nix +++ b/modules/workstation/desktop.nix @@ -8,7 +8,10 @@ let (builtins.attrNames config.machineUsers); in { - programs.sway.enable = usersHasSway; + programs.sway = { + enable = usersHasSway; + }; + xdg.portal = mkIf usersHasSway { enable = true; wlr.enable = true; diff --git a/modules/workstation/home-manager/desktop/sway.nix b/modules/workstation/home-manager/desktop/sway.nix index 9375052..b1dac5f 100644 --- a/modules/workstation/home-manager/desktop/sway.nix +++ b/modules/workstation/home-manager/desktop/sway.nix @@ -1,8 +1,9 @@ -{ config, pkgs, lib, keymap, ... }: +{ config, pkgs, lib, keymap, nvidiaGPU, ... }: with lib; let isQwerty = keymap == "us"; gnomeSchema = "org.gnome.desktop.interface"; + rendererLine = if nvidiaGPU then "export WLR_RENDERER=vulkan" else ""; monitorModule = types.submodule { options = { name = mkOption { @@ -237,6 +238,7 @@ in ''; extraSessionCommands = '' + ${rendererLine} export WLR_NO_HARDWARE_CURSORS=1 export XDG_CURRENT_DESKTOP=sway export _JAVA_AWT_WM_NONREPARENTING=1