Move NVIDIA env setup to Hyprland Lua

Evaluate NVIDIA session env vars from default/hypr/nvidia.lua during Hyprland startup instead of appending them to each user's envs.lua during setup. This removes the per-user NVIDIA setup script execution while preserving the GSP/non-GSP detection.
This commit is contained in:
Ryan Hughes
2026-06-04 18:35:01 -04:00
parent 27f6d9d364
commit b45e8464ef
6 changed files with 34 additions and 23 deletions
+3
View File
@@ -35,6 +35,9 @@ end
table.insert(kept, 1, bin_dir)
hl.env("PATH", table.concat(kept, ":"))
-- Hardware-specific environment.
require("default.hypr.nvidia")
hl.config({
xwayland = {
force_zero_scaling = true,
+15
View File
@@ -6,6 +6,21 @@ local function shell_quote(value)
return "'" .. tostring(value):gsub("'", "'\\''") .. "'"
end
o.shell_quote = shell_quote
function o.shell_succeeds(command)
local ok, _, code = os.execute(command .. " >/dev/null 2>&1")
return ok == true or ok == 0 or code == 0
end
function o.cmd_present(command)
return o.shell_succeeds("command -v " .. shell_quote(command))
end
function o.cmd_missing(command)
return not o.cmd_present(command)
end
local function command_from(value, description)
if type(value) ~= "table" then
return value
+15
View File
@@ -0,0 +1,15 @@
local paths = require("default.hypr.paths")
local nvidia_gsp = paths.omarchy_path .. "/bin/omarchy-hw-nvidia-gsp"
local nvidia_without_gsp = paths.omarchy_path .. "/bin/omarchy-hw-nvidia-without-gsp"
if o.shell_succeeds("lspci | grep -qi nvidia") then
if o.shell_succeeds(o.shell_quote(nvidia_gsp)) then
hl.env("NVD_BACKEND", "direct")
hl.env("LIBVA_DRIVER_NAME", "nvidia")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
elseif o.shell_succeeds(o.shell_quote(nvidia_without_gsp)) then
hl.env("NVD_BACKEND", "egl")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
end
end