mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
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:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -1,21 +0,0 @@
|
||||
envs="$HOME/.config/hypr/envs.lua"
|
||||
[[ -f $envs ]] || exit 0
|
||||
|
||||
if lspci | grep -qi 'nvidia'; then
|
||||
if omarchy-hw-nvidia-gsp && ! grep -q 'NVIDIA (Turing+ with GSP firmware)' "$envs"; then
|
||||
cat >>"$envs" <<'EOF'
|
||||
|
||||
-- NVIDIA (Turing+ with GSP firmware)
|
||||
hl.env("NVD_BACKEND", "direct")
|
||||
hl.env("LIBVA_DRIVER_NAME", "nvidia")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||
EOF
|
||||
elif omarchy-hw-nvidia-without-gsp && ! grep -q 'NVIDIA (Maxwell/Pascal/Volta without GSP firmware)' "$envs"; then
|
||||
cat >>"$envs" <<'EOF'
|
||||
|
||||
-- NVIDIA (Maxwell/Pascal/Volta without GSP firmware)
|
||||
hl.env("NVD_BACKEND", "egl")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
@@ -17,7 +17,7 @@ if lspci | grep -qi 'nvidia'; then
|
||||
|
||||
omarchy-pkg-add "${PACKAGES[@]}"
|
||||
|
||||
# Per-user Hyprland NVIDIA env vars are handled by nvidia-user.sh.
|
||||
# Per-session Hyprland NVIDIA env vars are handled by default/hypr/nvidia.lua.
|
||||
|
||||
# Configure modprobe for early KMS
|
||||
mkdir -p /etc/modprobe.d
|
||||
|
||||
@@ -7,4 +7,3 @@ run_logged $OMARCHY_INSTALL/config/hardware/bluetooth-user.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-audio-mixer.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-mic.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/framework/fix-f13-amd-audio-input.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/nvidia-user.sh
|
||||
|
||||
Reference in New Issue
Block a user