Follow-up on #217. Blind A/B test on NVIDIA + proprietary confirmed the
toggle helps, but the detection path had a few rough edges.
- Drop lspci and glxinfo fallbacks: the /proc/driver/nvidia/version +
sysfs scan catch every realistic case, and spawning subprocesses in
main() added startup latency for no win (glxinfo also isn't always
installed — mesa-utils isn't a hard dep).
- Scan all /sys/class/drm/card* entries via read_dir instead of
hardcoded card0/card1 — hybrid laptops and systems where only card1
exists were previously missed.
- Remove 0x1022 from the AMD list: that's AMD's host/chipset vendor ID,
not GPU. Only 0x1002 (ATI/Radeon) belongs here.
- Unknown vendor → leave WEBKIT_DISABLE_DMABUF_RENDERER unset instead
of forcing =1. VMs, ARM SBCs and anything exotic keep the WebKitGTK
default and do not get regressed by a guess.
- Only set the env var for the NVIDIA case. Intel/AMD on Mesa already
default to DMA-BUF enabled in current WebKitGTK, so the explicit =0
was redundant.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Embed bash and zsh completion scripts and add a `completions` subcommand.
Extend the player CLI (library, audio device, instant mix) and surface
`music_library` in snapshots. Add a shared active-server switcher in the
header and locales; instant mix can reseed the queue from CLI and UI.
- CI: add squashfs-tools dep, APPIMAGE_EXTRACT_AND_RUN=1, appimage to
--bundles, and *.AppImage to upload glob
- main.rs: set GDK_BACKEND=x11 and WEBKIT_DISABLE_COMPOSITING_MODE=1
on Linux before Tauri init — WebKitGTK on Wayland is unstable;
both vars are overridable by setting them before launch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>