v0.1.7 — fix AMD Steam bootstrap, drop redundant deps

Steam was failing to bootstrap on AMD systems during install. The homegrown
`setsid gtk-launch steam` path silently no-op'd when `gtk-launch` wasn't
available (gtk3 isn't a hard dep of `steam` or any AMD-specific package, so
leaner AMD setups never had it; NVIDIA systems usually pulled it in via
nvidia-settings).

Now delegates to `omarchy-install-gaming-steam`, which is the canonical
install + bootstrap path on Omarchy and is exercised on AMD/Intel/NVIDIA
by the upstream Omarchy tests. It's idempotent — `omarchy-pkg-add steam`
no-ops if Steam is already present.

Cleanup pass on dep lists now that the bootstrap is delegated:

- core_deps: drop `steam` (installed by omarchy-install-gaming-steam) and
  `mesa-utils` (glxinfo/glxgears never called by the script).
- gpu_deps: drop `lib32-nvidia-utils`, `lib32-nvidia-580xx-utils`,
  `lib32-vulkan-radeon`, `lib32-vulkan-intel` — all now installed by
  `omarchy-install-gaming-gpu-lib32` (called by omarchy-install-gaming-steam).
- optional_deps: drop `xf86-video-amdgpu` — X11 DDX driver, useless under
  Hyprland (Wayland-only).
- setup_requirements: drop `steam` from required_packages (same reason
  as core_deps).

64-bit GPU drivers (`vulkan-radeon`, `vulkan-intel`, `nvidia-utils`, etc.)
kept because `omarchy-install-gaming-gpu-lib32` only handles the lib32 side.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
28allday 2026-05-17 15:57:34 +01:00
parent e54f45723f
commit ba86b8c777

View file

@ -34,7 +34,7 @@ set -Euo pipefail
# -u: Treat unset variables as errors (catches typos in variable names) # -u: Treat unset variables as errors (catches typos in variable names)
# -o pipefail: A pipeline fails if ANY command in it fails, not just the last one # -o pipefail: A pipeline fails if ANY command in it fails, not just the last one
DECKSHIFT_VERSION="0.1.6" DECKSHIFT_VERSION="0.1.7"
# Resolve the directory this script lives in so we can find sibling files like # Resolve the directory this script lives in so we can find sibling files like
# bin/deckshift-settings and applications/deckshift-settings.desktop when # bin/deckshift-settings and applications/deckshift-settings.desktop when
@ -493,12 +493,10 @@ check_steam_dependencies() {
local -a optional_deps=() local -a optional_deps=()
local -a core_deps=( local -a core_deps=(
"steam"
"lib32-vulkan-icd-loader" "lib32-vulkan-icd-loader"
"vulkan-icd-loader" "vulkan-icd-loader"
"lib32-mesa" "lib32-mesa"
"mesa" "mesa"
"mesa-utils"
"lib32-glibc" "lib32-glibc"
"lib32-gcc-libs" "lib32-gcc-libs"
"lib32-libx11" "lib32-libx11"
@ -547,7 +545,6 @@ check_steam_dependencies() {
info "NVIDIA driver branch: modern (nvidia-utils)" info "NVIDIA driver branch: modern (nvidia-utils)"
gpu_deps+=( gpu_deps+=(
"nvidia-utils" "nvidia-utils"
"lib32-nvidia-utils"
"nvidia-settings" "nvidia-settings"
"libva-nvidia-driver" "libva-nvidia-driver"
) )
@ -559,7 +556,6 @@ check_steam_dependencies() {
info "NVIDIA driver branch: legacy 580xx (Maxwell/Pascal/Volta)" info "NVIDIA driver branch: legacy 580xx (Maxwell/Pascal/Volta)"
gpu_deps+=( gpu_deps+=(
"nvidia-580xx-utils" "nvidia-580xx-utils"
"lib32-nvidia-580xx-utils"
"nvidia-settings" "nvidia-settings"
"libva-nvidia-driver" "libva-nvidia-driver"
) )
@ -571,7 +567,6 @@ check_steam_dependencies() {
info "NVIDIA detected but driver branch unrecognised; defaulting to modern (nvidia-utils)" info "NVIDIA detected but driver branch unrecognised; defaulting to modern (nvidia-utils)"
gpu_deps+=( gpu_deps+=(
"nvidia-utils" "nvidia-utils"
"lib32-nvidia-utils"
"nvidia-settings" "nvidia-settings"
"libva-nvidia-driver" "libva-nvidia-driver"
) )
@ -581,17 +576,14 @@ check_steam_dependencies() {
if $has_amd; then if $has_amd; then
gpu_deps+=( gpu_deps+=(
"vulkan-radeon" "vulkan-radeon"
"lib32-vulkan-radeon"
"libvdpau" "libvdpau"
"lib32-libvdpau" "lib32-libvdpau"
) )
! check_package "xf86-video-amdgpu" && optional_deps+=("xf86-video-amdgpu")
fi fi
if $has_intel; then if $has_intel; then
gpu_deps+=( gpu_deps+=(
"vulkan-intel" "vulkan-intel"
"lib32-vulkan-intel"
"intel-media-driver" "intel-media-driver"
) )
fi fi
@ -778,14 +770,15 @@ check_steam_dependencies() {
check_steam_config check_steam_config
# Bootstrap Steam — launches it in the background so its first-run client # Bootstrap Steam via Omarchy's installer — idempotent and the canonical
# update happens in parallel with the rest of the install. Same pattern as # path on AMD/Intel/NVIDIA. Handles lib32 GPU drivers + setsid gtk-launch
# omarchy-install-gaming-steam. Skipped silently if Steam isn't installed # in one shot; previous homegrown gtk-launch call silently no-op'd on
# (e.g. user declined to install missing required deps). # AMD systems that lacked gtk3.
if check_package steam && command -v gtk-launch >/dev/null 2>&1; then if command -v omarchy-install-gaming-steam >/dev/null 2>&1; then
info "Launching Steam to complete its first-run download..." info "Bootstrapping Steam via omarchy-install-gaming-steam..."
setsid gtk-launch steam >/dev/null 2>&1 < /dev/null & omarchy-install-gaming-steam || warn "omarchy-install-gaming-steam returned non-zero"
disown 2>/dev/null || true else
warn "omarchy-install-gaming-steam not found — skipping Steam bootstrap"
fi fi
} }
@ -1144,7 +1137,7 @@ restart_elephant_walker() {
# After installing packages, it also runs the sub-setup functions for # After installing packages, it also runs the sub-setup functions for
# performance permissions, shader cache, and gamescope capabilities. # performance permissions, shader cache, and gamescope capabilities.
setup_requirements() { setup_requirements() {
local -a required_packages=("steam" "gamescope" "mangohud" "python" "python-evdev" "libcap" "gamemode" "curl" "pciutils" "ntfs-3g" "xcb-util-cursor") local -a required_packages=("gamescope" "mangohud" "python" "python-evdev" "libcap" "gamemode" "curl" "pciutils" "ntfs-3g" "xcb-util-cursor")
local -a packages_to_install=() local -a packages_to_install=()
for pkg in "${required_packages[@]}"; do for pkg in "${required_packages[@]}"; do
check_package "$pkg" || packages_to_install+=("$pkg") check_package "$pkg" || packages_to_install+=("$pkg")