diff --git a/config/niri/.config/niri/config.kdl b/config/niri/.config/niri/config.kdl index aa9e1a9..df89f46 100644 --- a/config/niri/.config/niri/config.kdl +++ b/config/niri/.config/niri/config.kdl @@ -3,6 +3,7 @@ include "config/monitors.kdl" include "config/styles.kdl" include "config/execs.kdl" include "config/envs.kdl" +include "config/prime.kdl" include "config/rules.kdl" include "config/binds.kdl" include "config/misc.kdl" diff --git a/config/niri/.config/niri/config/envs.kdl b/config/niri/.config/niri/config/envs.kdl index 5d22f99..4a09de6 100644 --- a/config/niri/.config/niri/config/envs.kdl +++ b/config/niri/.config/niri/config/envs.kdl @@ -13,15 +13,10 @@ environment { // Nvidia LIBVA_DRIVER_NAME "nvidia" - __GLX_VENDOR_LIBRARY_NAME "nvidia" NVD_BACKEND "nvidia" GBM_BACKEND "nvidia-drm" WLR_NO_HARDWARE_CURSORS "1" - // Nvidia Prime - __NV_PRIME_RENDER_OFFLOAD "1"; - __VK_LAYER_NV_optimus "NVIDIA_only" - // Fix Swing _JAVA_AWT_WM_NONREPARENTING "1" diff --git a/config/niri/.config/niri/config/misc.kdl b/config/niri/.config/niri/config/misc.kdl index db5af45..8c18b91 100644 --- a/config/niri/.config/niri/config/misc.kdl +++ b/config/niri/.config/niri/config/misc.kdl @@ -1,7 +1,7 @@ screenshot-path "~/Pictures/Screenshots/niri_screenshot_%Y-%m-%d_%H-%M-%S.png" debug { - render-drm-device "/dev/dri/renderD128" + render-drm-device "/dev/dri/renderD129" } // gestures { diff --git a/config/niri/.config/niri/config/prime.kdl b/config/niri/.config/niri/config/prime.kdl new file mode 100644 index 0000000..d9d2bab --- /dev/null +++ b/config/niri/.config/niri/config/prime.kdl @@ -0,0 +1,5 @@ +environment { + __NV_PRIME_RENDER_OFFLOAD "1"; + __VK_LAYER_NV_optimus "NVIDIA_only" + __GLX_VENDOR_LIBRARY_NAME "nvidia" +} diff --git a/config/scripts/.local/scripts/prime-toggle b/config/scripts/.local/scripts/prime-toggle new file mode 100755 index 0000000..768a0d8 --- /dev/null +++ b/config/scripts/.local/scripts/prime-toggle @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -euo pipefail + +[[ "$XDG_CURRENT_DESKTOP" != "niri" ]] && exit 1 + +if grep -q 'prefer_order=(nvidia intel)' "$HOME/.local/snippets/set_display" +then + sed -i 's/prefer_order=(nvidia intel)/prefer_order=(intel nvidia)/' "$HOME/.local/snippets/set_display" + echo "" > "$HOME/.config/niri/config/prime.kdl" + echo "disabled global Nvidia Prime offloading" +else + sed -i 's/prefer_order=(intel nvidia)/prefer_order=(nvidia intel)/' "$HOME/.local/snippets/set_display" + cat > "$HOME/.config/niri/config/prime.kdl" << EOF +environment { + __NV_PRIME_RENDER_OFFLOAD "1"; + __VK_LAYER_NV_optimus "NVIDIA_only" + __GLX_VENDOR_LIBRARY_NAME "nvidia" +} +EOF + echo "enabled global Nvidia Prime offloading" +fi + +# Restart session +niri msg action quit diff --git a/config/scripts/.local/snippets/set_display b/config/scripts/.local/snippets/set_display index 991e8b3..a0f46de 100644 --- a/config/scripts/.local/snippets/set_display +++ b/config/scripts/.local/snippets/set_display @@ -9,7 +9,7 @@ # Constants niri_config_file="$HOME/.config/niri/config/misc.kdl" -prefer_order=(intel amd nvidia) # AMD -> Nvidia -> Intel +prefer_order=(nvidia intel) # Get vendor and path of each GPU default_card_path="$(find /dev/dri/card* 2>/dev/null | head -n 1)"