#!/usr/bin/env bash # Detect GPU vendor, session type, hostname. detect_gpu_vendor() { local vga vga="$(lspci -nn 2>/dev/null | grep -iE 'vga|3d|display' || true)" if grep -qi 'nvidia' <<<"$vga"; then echo "nvidia" elif grep -qiE 'amd|advanced micro devices|ati' <<<"$vga"; then echo "amd" elif grep -qi 'intel' <<<"$vga"; then echo "intel" else echo "unknown" fi } detect_all() { HOSTNAME_SHORT="$(hostname -s 2>/dev/null || hostname)" GPU_VENDOR="$(detect_gpu_vendor)" SESSION_TYPE="${XDG_SESSION_TYPE:-unknown}" export HOSTNAME_SHORT GPU_VENDOR SESSION_TYPE if [[ "$SESSION_TYPE" != "wayland" ]]; then warn "Session type is '$SESSION_TYPE' (not wayland). KMS capture still works at the TTY/DRM level, but Hyprland-specific paths assume Wayland." fi if [[ "$GPU_VENDOR" == "unknown" ]]; then warn "Could not detect GPU vendor. Encoder packages will be skipped; HW encode may not work." fi }