Headless mode (new) — for KVM-attached hosts streaming to disconnected clients - --headless / --mirror flags; default headless on hostname JARVIS, mirror elsewhere - New lib/headless.sh installs prep-cmd hooks to ~/.local/share/omarchy-moonlight/bin - bin/sunshine-stream-do.sh creates/resizes a Hyprland HEADLESS-1 output to the connecting client's resolution and migrates the active workspace onto it - bin/sunshine-stream-undo.sh tears down the headless output on disconnect and returns the workspace to a non-headless monitor when one is available - lib/config.sh writes capture=wlr, output_name=HEADLESS-1, and the JSON global_prep_cmd entry referencing the installed hook paths - lib/preflight.sh adds a preflight_headless step that checks hyprctl, jq, and a running Hyprland session (warn-only, install can proceed) - lib/verify.sh adds checks for the hook scripts and the wlr/global_prep_cmd config lines Mac client - client/install-macos.sh: Darwin guard, Homebrew presence check, brew cask install of Moonlight, idempotent - client/README.md: per-platform install (macOS / Android / iOS / Apple TV / Linux + Steam Deck) and the five-step first-pair walkthrough Other - jq added to the helper install set in lib/packages.sh (hooks parse Hyprland JSON output) - README.md rewritten to cover both modes, the new flags, the tuned defaults per mode + per vendor, the headless internals, and the client pointer
39 lines
1.2 KiB
Bash
39 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# Install Sunshine, Moonlight, and GPU-specific hardware-encode dependencies.
|
|
|
|
# Default to the precompiled AUR build for a fast install (~seconds instead of
|
|
# the ~10 minute source compile). Override with SUNSHINE_PKG=sunshine to build
|
|
# from source.
|
|
: "${SUNSHINE_PKG:=sunshine-bin}"
|
|
: "${MOONLIGHT_PKG:=moonlight-qt}"
|
|
|
|
install_sunshine() {
|
|
# Ensure runtime deps useful for capture/diagnostics across vendors.
|
|
yay_install pipewire-pulse vulkan-tools libva-utils jq
|
|
yay_install "$SUNSHINE_PKG"
|
|
}
|
|
|
|
install_moonlight() {
|
|
yay_install "$MOONLIGHT_PKG"
|
|
}
|
|
|
|
install_gpu_encoder_packages() {
|
|
case "$GPU_VENDOR" in
|
|
nvidia)
|
|
# NVENC works through the proprietary driver. libva-nvidia-driver lets some
|
|
# apps use VAAPI on NVIDIA; not strictly required for Sunshine NVENC but useful.
|
|
yay_install nvidia-utils libva-nvidia-driver
|
|
;;
|
|
amd)
|
|
# VAAPI (mesa) + Vulkan for AMD hardware encode paths.
|
|
yay_install libva-mesa-driver mesa-vdpau vulkan-radeon
|
|
;;
|
|
intel)
|
|
yay_install intel-media-driver vulkan-intel
|
|
;;
|
|
*)
|
|
info "Unknown GPU vendor; skipping vendor-specific encoder packages."
|
|
;;
|
|
esac
|
|
}
|