# vim: set ft=make :
# Install and configure Decky Loader (https://github.com/SteamDeckHomebrew/decky-loader) and plugins for alternative handhelds. Options: status | install | install-prerelease | uninstall
[group("gaming")]
setup-decky ACTION="":
#!/usr/bin/bash
if [[ $(id -u) -eq 0 ]]; then
echo >&2 "ERROR: Do not run this with sudo"
exit 1
fi
source /usr/lib/ujust/ujust.sh
get_status_token() {
local decky_service="/etc/systemd/system/plugin_loader.service"
if [[ ! -f /etc/systemd/system/multi-user.target.wants/plugin_loader.service ]]; then
echo "uninstall"
elif [[ -r "$decky_service" ]] && grep -q 'Environment=LOG_LEVEL=DEBUG' "$decky_service"; then
echo "install-prerelease"
elif [[ -r "$decky_service" ]]; then
echo "install"
else
return 1
fi
}
DECKY_STATE="${b}${red}Not Installed${n}"
case "$(get_status_token)" in
install)
DECKY_STATE="${b}${green}Installed${n}"
;;
install-prerelease)
DECKY_STATE="${b}${yellow}Installed (Prerelease)${n}"
;;
uninstall)
DECKY_STATE="${b}${red}Not Installed${n}"
;;
esac
install_release() {
export HOME=$(getent passwd ${SUDO_USER:-$USER} | cut -d: -f6)
if [ ! -L "/home/deck" ] && [ ! -e "/home/deck" ] && [ "$HOME" != "/home/deck" ]; then
echo "Making a /home/deck symlink to fix plugins that do not use environment variables."
sudo -A ln -sf "$HOME" /home/deck
fi
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_release.sh |
sed 's|sudo|sudo -A |g' | sh
sudo -A chcon -R -t bin_t $HOME/homebrew/services/PluginLoader
}
install_prerelease() {
export HOME=$(getent passwd ${SUDO_USER:-$USER} | cut -d: -f6)
if [ ! -L "/home/deck" ] && [ ! -e "/home/deck" ] && [ "$HOME" != "/home/deck" ]; then
echo "Making a /home/deck symlink to fix plugins that do not use environment variables."
sudo -A ln -sf "$HOME" /home/deck
fi
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_prerelease.sh | sh
sudo -A chcon -R -t bin_t $HOME/homebrew/services/PluginLoader
}
uninstall() {
echo "Uninstalling Decky Loader..."
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/uninstall.sh | sh
echo "Decky Loader has been uninstalled."
}
OPTION={{ ACTION }}
if [ "$OPTION" == "help" ]; then
echo "Usage: ujust setup-decky