title: Bazzite Portal
screens:        
  - title: "Setting up Bazzite"
    description: "Core system components and utilities"
    actions:
      - id: "toggle-iwd"
        title: "iwd"
        description: "Enable or disable iwd as the Wi-Fi backend instead of wpa_supplicant."
        default: false
        status_script: "ujust toggle-iwd status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-iwd enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-iwd disable"
      - id: "decky-loader"
        title: "Decky Loader"
        description: "A plugin loader for the Steam Deck"
        default: false
        status_script: "ujust setup-decky status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust setup-decky install"
          - id: "install-prerelease"
            label: "Install Prerelease"
            script: "ujust setup-decky install-prerelease"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust setup-decky uninstall"
      - id: "decky-bazzite-buddy"
        title: "Decky Bazzite Buddy"
        description: "A Decky plugin that lets you see Bazzite changelogs in Game Mode."
        default: false
        status_script: "ujust get-decky-bazzite-buddy status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust get-decky-bazzite-buddy install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust get-decky-bazzite-buddy uninstall"
      - id: "decky-framegen"
        title: "Decky Framegen"
        description: "A Decky plugin that sets up OptiScaler for any Steam game."
        default: false
        status_script: "ujust get-framegen status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust get-framegen install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust get-framegen uninstall"
      - id: "decky-lossless-scaling"
        title: "Decky Lossless Scaling"
        description: "A Decky plugin for lossless scaling compatibility in Linux"
        default: false
        status_script: "ujust get-decky-lossless-scaling status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust get-decky-lossless-scaling install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust get-decky-lossless-scaling uninstall"
      - id: "emudeck"
        title: "EmuDeck"
        description: "A utility for installing and configuring emulators on the Steam Deck"
        default: false
        status_script: "ujust get-emudeck status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust get-emudeck install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust get-emudeck uninstall"
      - id: "sunshine"
        title: "Sunshine"
        description: "A self-hosted game stream host for Moonlight"
        default: false
        status_script: "ujust setup-sunshine status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust setup-sunshine enable"
          - id: "enable-beta"
            label: "Enable Beta"
            script: "ujust setup-sunshine enable-beta"
          - id: "disable"
            label: "Disable Service"
            script: "ujust setup-sunshine disable"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust setup-sunshine uninstall"
          - id: "portal"
            label: "Open Portal"
            script: "ujust setup-sunshine portal"
      - id: "waydroid"
        title: "Waydroid"
        description: "Android app compatibility layer for Linux"
        default: false
        options:
          - id: "init"
            label: "Initialize"
            script: "ujust configure-waydroid init"
          - id: "configure"
            label: "Configure"
            script: "ujust configure-waydroid configure"
          - id: "gpu"
            label: "Select GPU"
            script: "ujust configure-waydroid gpu"
          - id: "reset"
            label: "Reset"
            script: "ujust configure-waydroid reset"
          - id: "helper"
            label: "Install Helper"
            script: "ujust configure-waydroid helper"
      - id: "openrgb"
        title: "OpenRGB"
        description: "Open source RGB lighting control that doesn't depend on manufacturer software"
        default: false
        status_script: "ujust install-openrgb status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust install-openrgb install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust install-openrgb uninstall"
      - id: "resilio-sync"
        title: "Resilio Sync"
        description: "A file synchronization utility powered by BitTorrent"
        default: false
        status_script: "ujust install-resilio-sync status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust install-resilio-sync install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust install-resilio-sync uninstall"
  - title: "Customizations and Tweaks"
    description: "System configurations and enhancements"
    actions:
      - id: "add-input-group"
        title: "Add input group to current user"
        description: "Adds the input group to your current user. Required by certain controller drivers."
        default: true
        status_script: "ujust add-user-to-input-group status"
        options:
          - id: "add"
            label: "Add"
            script: "ujust add-user-to-input-group add"
          - id: "remove"
            label: "Remove"
            script: "ujust add-user-to-input-group remove"
      - id: "password-asterisks"
        title: "Visible Password Asterisks"
        description: "Show or hide password asterisks in sudo prompts."
        default: false
        options:
          - id: "on"
            label: "Show Password Asterisks"
            script: "ujust toggle-password-feedback on"
          - id: "off"
            label: "Hide Password Asterisks"
            script: "ujust toggle-password-feedback off"
      - id: "hide-grub"
        title: "GRUB Menu Visibility"
        description: "Choose when the GRUB menu appears at boot."
        default: true
        options:
          - id: "hide"
            label: "Hide After Successful Boot"
            script: "ujust configure-grub hide"
          - id: "unhide"
            label: "Hide Except Dual Boot"
            script: "ujust configure-grub unhide"
          - id: "show"
            label: "Always Show GRUB"
            script: "ujust configure-grub show"
      - id: "boot-to-windows"
        title: "Boot to Windows from Steam"
        description: "Adds a script in Steam to boot Windows which is useful for dual-boot setups"
        default: false
        script: "ujust setup-boot-windows-steam"
      - id: "automounting"
        title: "Automounting"
        description: "Enable or disable automounting of labeled BTRFS/EXT4 partitions under /run/media/system."
        default: false
        status_script: "ujust enable-automounting status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust enable-automounting enable"
          - id: "disable"
            label: "Disable"
            script: "ujust enable-automounting disable"
      - id: "steamos-automounting"
        title: "SteamOS Automounting"
        description: "Enable or disable SteamOS automounting, useful when NTFS partitions get mounted automatically."
        default: false
        status_script: "ujust enable-steamos-automount status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust enable-steamos-automount enable"
          - id: "disable"
            label: "Disable"
            script: "ujust enable-steamos-automount disable"
      - id: "wake-on-lan"
        title: "Wake-on-LAN"
        description: "Enable Wake-on-LAN functionality to power on your device remotely"
        default: false
        status_script: "ujust toggle-wol status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-wol enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-wol disable"
          - id: "force-enable"
            label: "Force Enable"
            script: "ujust toggle-wol force-enable"
      - id: "cec-sleep-standby"
        title: "CEC Sleep Standby"
        description: "Put TV to standby when system sleeps via HDMI-CEC. Requires a CEC-compatible Device, or Pulse 8 HDMI-CEC adapter."
        default: false
        status_script: "ujust toggle-cec-sleep status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-cec-sleep enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-cec-sleep disable"
      - id: "steam-icons"
        title: "Clean Steam Shortcuts"
        description: "Automatically removes Steam shortcuts from the desktop on boot, useful for keeping the desktop clean when installing games via game mode."
        default: false
        status_script: "ujust steam-icons status"
        options:
          - id: "remove"
            label: "Remove Now"
            script: "ujust steam-icons remove"
          - id: "enable"
            label: "Enable Auto-Cleanup"
            script: "ujust steam-icons enable"
          - id: "disable"
            label: "Disable Auto-Cleanup"
            script: "ujust steam-icons disable"
      - id: "opentabletdriver"
        title: "OpenTabletDriver"
        description: "Open source, cross-platform, user-mode tablet driver"
        default: false
        status_script: "ujust install-opentabletdriver status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust install-opentabletdriver install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust install-opentabletdriver uninstall"
      - id: "ssh-service"
        title: "SSH Service"
        description: "Enable SSH remote access service on boot"
        default: false
        status_script: "ujust toggle-ssh status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-ssh enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-ssh disable"
      - id: "steamcmd"
        title: "SteamCMD"
        description: "Command-line version of the Steam client for dedicated servers and game downloads"
        default: false
        status_script: "ujust get-steamcmd status"
        options:
          - id: "install"
            label: "Install"
            script: "ujust get-steamcmd install"
          - id: "uninstall"
            label: "Uninstall"
            script: "ujust get-steamcmd uninstall"
      - id: "global-fsr4"
        title: "Global FSR4 Upgrade (RDNA4)"
        description: "Enable or disable the global Proton FSR4 upgrade on RDNA4 GPUs; upgrades FSR 3.1+ to FSR 4 on Proton 10 or GE 10-25 or later."
        default: false
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-global-fsr4 enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-global-fsr4 disable"
      - id: "global-fsr4-rdna3"
        title: "Global FSR4 Upgrade (RDNA3)"
        description: "Enable or disable the global Proton FSR4 upgrade on RDNA3 GPUs, such as the RX 7900 XTX; upgrades FSR 3.1+ to FSR 4. Only compatible with Proton GE, Proton EM, or similar forks."
        default: false
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-global-fsr4-rdna3 enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-global-fsr4-rdna3 disable"
      - id: "global-dlss"
        title: "Global DLSS Upgrade"
        description: "Enable or disable the global Proton DLSS upgrade, which updates DLSS DLLs. Only compatible with Proton GE, Proton EM, or similar forks."
        default: false
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-global-dlss enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-global-dlss disable"
      - id: "reisub"
        title: "REISUB"
        description: "Toggle the Magic SysRq key and allow using the REISUB shortcut to force-reboot your computer slightly more safely. Note that it is insecure to have it enabled since you can use it to bypass some stuff"
        default: false
        status_script: "ujust toggle-reisub status"
        options:
          - id: "enable"
            label: "Enable"
            script: "ujust toggle-reisub enable"
          - id: "disable"
            label: "Disable"
            script: "ujust toggle-reisub disable"
  - title: "Media Applications"
    description: "Entertainment and streaming services"
    actions:
      - id: "xbox-cloud-gaming"
        title: "Xbox Cloud Gaming"
        description: "Cloud gaming service"
        default: false
        script: "ujust get-media-app \"Xbox Cloud Gaming\""
      # - id: "geforce-now"
      #   title: "GeForce Now"
      #   description: "Cloud gaming service"
      #   default: false
      #   script: "ujust get-media-app \"GeForce Now\""
      - id: "youtube"
        title: "YouTube"
        description: "Video sharing platform"
        default: false
        script: "ujust get-media-app \"YouTube\""
      - id: "spotify"
        title: "Spotify"
        description: "Music streaming service"
        default: false
        script: "ujust get-media-app \"Spotify\""
      - id: "netflix"
        title: "Netflix"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Netflix\""
      - id: "plex-htpc"
        title: "Plex HTPC"
        description: "Media server client"
        default: false
        script: "ujust get-media-app \"Plex HTPC\""
      - id: "jellyfin"
        title: "JellyFin"
        description: "Media server client"
        default: false
        script: "ujust get-media-app \"Jellyfin Media Player\""
      - id: "amazon-luna"
        title: "Amazon Luna"
        description: "Cloud gaming service"
        default: false
        script: "ujust get-media-app \"Amazon Luna\""
      - id: "disney-plus"
        title: "Disney Plus"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Disney Plus\""
      - id: "amazon-prime-video"
        title: "Amazon Prime Video"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Amazon Prime Video\""
      - id: "apple-tv"
        title: "Apple TV"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Apple TV\""
      - id: "curiosity-stream"
        title: "Curiosity Stream"
        description: "Documentary streaming service"
        default: false
        script: "ujust get-media-app \"Curiosity Stream\""
      - id: "crunchyroll"
        title: "Crunchyroll"
        description: "Anime streaming service"
        default: false
        script: "ujust get-media-app \"Crunchyroll\""
      - id: "hbo-max"
        title: "HBO Max"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"HBO Max\""
      - id: "hulu"
        title: "Hulu"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Hulu\""
      - id: "paramount-plus"
        title: "Paramount Plus"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Paramount Plus\""
      - id: "peacock"
        title: "Peacock"
        description: "Subscription streaming service"
        default: false
        script: "ujust get-media-app \"Peacock\""
      - id: "sling-tv"
        title: "Sling TV"
        description: "Live TV streaming service"
        default: false
        script: "ujust get-media-app \"Sling TV\""
      - id: "vimeo"
        title: "Vimeo"
        description: "Video sharing platform"
        default: false
        script: "ujust get-media-app \"Vimeo\""
      - id: "youtube-music"
        title: "YouTube Music"
        description: "Music streaming service"
        default: false
        script: "ujust get-media-app \"YouTube Music\""
      - id: "youtube-tv"
        title: "YouTube TV"
        description: "Live TV streaming service"
        default: false
        script: "ujust get-media-app \"YouTube TV\""
  - title: "Brew"
    description: "Brew Taps and Casks"
    actions:
      - id: "ublue-tap"
        title: "Add the Ublue tap"
        description: "Adds the Ublue Brew tap"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew tap ublue-os/tap'
      - id: "visual-studio-code-linux"
        title: "Install Visual Studio Code (Needs Ublue Tap)"
        description: "Installs Visual Studio Code editor"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew install --cask visual-studio-code-linux'
      - id: "antigravity-linux"
        title: "Install Antigravity (Needs Ublue Tap)"
        description: "Installs Antigravity"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew install --cask antigravity-linux'
      - id: "lm-studio-linux"
        title: "Install LM Studio (Needs Ublue Tap)"
        description: "Installs LM Studio"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew install --cask lm-studio-linux'
      - id: "jetbrains-toolbox-linux"
        title: "Install JetBrains Toolbox (Needs Ublue Tap)"
        description: "Installs JetBrains Toolbox"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew install --cask jetbrains-toolbox-linux'
      - id: "vscodium-linux"
        title: "Install VSCodium (Needs Ublue Tap)"
        description: "Installs VSCodium editor"
        default: false
        script: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && brew install --cask vscodium-linux'
  - title: "System Management"
    description: "System updates and configuration"
    actions:
      - id: "update-bazzite"
        title: "Update Bazzite and Apps"
        description: "Updates Bazzite, Flatpaks, firmware, and more"
        default: false
        script: "ujust update"
        
      - id: "rebase-bazzite-stable"
        title: "Rebase Bazzite (stable)"
        description: "Rebase Bazzite to the stable track"
        default: false
        script: "brh rebase stable -y && reboot"

      - id: "rebase-bazzite-testing"
        title: "Rebase Bazzite (testing)"
        description: "Rebase Bazzite to the testing track"
        default: false
        script: "brh rebase testing -y && reboot"

      - id: "rollback-bazzite"
        title: "Rollback Bazzite"
        description: "Rollback to the previous Bazzite deployment"
        default: false
        script: "brh rollback -y && reboot"

      - id: "reset-bazzite"
        title: "Reset Bazzite"
        description: "Reset Bazzite layering to Default (Only resets layers NOT user data)" 
        default: false
        script: "rpm-ostree reset"

      - id: "get-logs"
        title: "Collect Troubleshooting Logs"
        description: "Collects system information and logs, then gives you links to share with support for troubleshooting."
        default: false
        script: 'ujust get-logs; status=$?; echo; echo "Press Enter to close..."; read -r _; exit $status'
