title: Bazzite Portal
properties:
  mode: "run-once"
  save_state: "always"
screens:
  first-screen:
    source: yafti.screen.title
    values:
      title: "Welcome to Bazzite (Steam Deck & HTPC Edition)"
      icon: "/usr/share/ublue-os/bazzite/logo.svg"
      description: |
        Configure your system to get started. Completion of this process is required for Game mode to function.
  configure-bazzite:
    source: yafti.screen.package
    values:
      title: Setting up Bazzite
      show_terminal: true
      package_manager: yafti.plugin.run
      groups:
        Add input group to current user:
          description: Adds the input group to your current user. Required by certain controller drivers.
          default: true
          packages:
          - Set input group: sudo -A ujust add-user-to-input-group
        Add Nested Desktop to Steam:
          description: Adds a nested desktop environment to Steam gamemode.
          default: true
          packages:
          - Add to steam: ujust add-nested-desktop-to-steam
        BIOS &amp; Firmware Updates:
          description: Enables BIOS &amp; Firmware updates for Steam Deck hardware
          default: true
          packages:
          - Enable Updates: sudo -A ujust enable-deck-bios-firmware-updates
        BoilR:
          description: Adds games from various clients to Steam
          default: false
          packages:
          - Retrieve BoilR: ujust get-boilr
        Decky Loader:
          description: A plugin loader for the Steam Deck
          default: false
          packages:
          - Retrieve Decky: sudo -A ujust get-decky
        EmuDeck:
          description: |
            A utility for installing and configuring emulators on the Steam Deck
          default: false
          packages:
          - Retrieve EmuDeck: ujust get-emudeck
        Greenlight:
          description: A utility for xCloud and xHome streaming
          default: false
          packages:
          - Retrieve Greenlight: ujust get-greenlight
        Hide GRUB Menu:
          description: |
            NOTE: Press the escape key before boot to show the menu
          default: true
          packages:
          - Hide GRUB: sudo -A ujust hide-grub
        Legacy Memory Configuration (Not recommended):
          description: Disable ZRAM and enable adjustable swap file, defaults to 1GB.
          default: false
          packages:
          - Deck Swap: ujust deckswap-on
          - Disable ZRAM: ujust zram-off
        Nix Package Manager:
          description: Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible
          default: false
          packages:
          - Install Nix Package Support: sudo -A ujust install-nix
          - Install Fleek (Requires Nix): ujust install-fleek
        Oversteer:
          description: Application to control supported steering wheels
          default: false
          packages:
          - Install Oversteer: ujust install-oversteer
        OpenRazer:
          description: Enables additional capabilities for Razer Hardware
          default: false
          packages:
          - Install OpenRazer: ujust install-openrazer
        Solaar:
          description: Application to control Logitech Mice, Keyboards, and Trackpads
          default: false
          packages:
          - Install Solaar: ujust install-solaar
        Wootility:
          description: A configurator for Wooting keyboards
          default: false
          packages:
          - Retrieve Wootility: ujust get-wootility
        OpenTabletDriver:
          description: Open source, cross-platform, user-mode tablet driver
          default: false
          packages:
          - Install OpenTabletDriver: ujust install-opentabletdriver
        Resilio Sync:
          description: A file synchronization utility powered by BitTorrent
          default: false
          packages:
          - Install Resilio Sync: ujust install-resilio-sync
        scrcpy:
          description: scrcpy provides display and control of Android devices connected on USB (or over TCP/IP)
          default: false
          packages:
          - Install scrcpy: ujust install-scrcpy
        SteamCMD:
          description: Installs SteamCMD
          default: true
          packages:
          - Install SteamCMD: ujust get-steamcmd
        Use EXT4 for SD Cards:
          description: Disable BTRFS support for SD cards for direct compatibility with SD cards formatted on stock SteamOS (Not recommended).
          default: false
          packages:
          - Switch SteamOS-BTRFS config to EXT4: sudo -A ujust switch-to-ext4
  applications:
    source: yafti.screen.package
    values:
      title: Application Installation
      show_terminal: true
      package_manager: yafti.plugin.flatpak
      package_manager_defaults:
        user: true
        system: false
      groups:
        Web Browsers:
          description: Additional browsers to complement Firefox
          default: false
          packages:
          - Brave: com.brave.Browser
          - Google Chrome: com.google.Chrome
          - LibreWolf: io.gitlab.librewolf-community
          - Microsoft Edge: com.microsoft.Edge
          - Opera: com.opera.Opera
        Gaming:
          description: "Rock and Stone!"
          default: false
          packages:
          - Bottles: com.usebottles.bottles
          - Chiaki4Deck (PlayStation Remote Play): io.github.streetpea.Chiaki4deck
          - Discord (Discover Overlay Included): com.discordapp.Discord
          - DOSBox Staging: io.github.dosbox-staging
          - GeForce NOW Electron: io.github.hmlendea.geforcenow-electron
          - Heroic Games Launcher (GOG &amp; Epic): com.heroicgameslauncher.hgl
          - itch: io.itch.itch
          - ludusavi (Game Save Backup): com.github.mtkennerly.ludusavi
          - Minecraft (Prism Launcher): org.prismlauncher.PrismLauncher
          - Minecraft Bedrock Launcher: io.mrarm.mcpelauncher
          - Moonlight: com.moonlight_stream.Moonlight
          - Mumble: info.mumble.Mumble
          - OpenMW: org.openmw.OpenMW
          - osu: sh.ppy.osu
          - Parsec: com.parsecgaming.parsec
          - Space Cadet Pinball: com.github.k4zmu2a.spacecadetpinball
          - Sonic Robo Blast 2: org.srb2.SRB2
          - Steam Link: com.valvesoftware.SteamLink
          - SuperTux: org.supertuxproject.SuperTux
          - SuperTuxKart: net.supertuxkart.SuperTuxKart
          - TeamSpeak: com.teamspeak.TeamSpeak
          - XIV Launcher (Final Fantasy XIV): dev.goats.xivlauncher
        Emulation:
          description: Play games like it's 1972 (Leave these all unchecked if you're planning to use EmuDeck)
          default: false
          packages:
          - Cemu: info.cemu.Cemu
          - Citra: org.citra_emu.citra
          - Dolphin: org.DolphinEmu.dolphin-emu
          - DuckStation: org.duckstation.DuckStation
          - MAME: org.mamedev.MAME
          - melonDS: net.kuribo64.melonDS
          - mGBA: io.mgba.mGBA
          - PCSX2: net.pcsx2.PCSX2
          - Pegasus: org.pegasus_frontend.Pegasus
          - PPSSPP: org.ppsspp.PPSSPP
          - RetroArch: org.libretro.RetroArch
          - RetroDECK: net.retrodeck.retrodeck
          - Rosalie's Mupen GUI: com.github.Rosalie241.RMG
          - RPCS3: net.rpcs3.RPCS3
          - Ryujinx: org.ryujinx.Ryujinx
          - ScummVM: org.scummvm.ScummVM
          - Snes9x: com.snes9x.Snes9x
          - Stella: io.github.stella_emu.Stella
          - xemu: app.xemu.xemu
          - yuzu: org.yuzu_emu.yuzu
        Streaming:
          description: Stream to the Internet
          default: false
          packages:
          - OBS Studio: com.obsproject.Studio
          - Boatswain for Streamdeck: com.feaneron.Boatswain
        Music:
          description: "Rock and Roll!"
          default: false
          packages:
          - Cider (Apple Music Client): sh.cider.Cider
          - Spotify: com.spotify.Client
          - Strawberry Music Player: org.strawberrymusicplayer.strawberry
          - Tidal-hifi: com.mastermindzh.tidal-hifi
        Office and Productivity:
          description: Bow to Capitalism
          default: false
          packages:
          - Ardour: org.ardour.Ardour
          - Blender: org.blender.Blender
          - darktable: org.darktable.Darktable
          - GIMP: org.gimp.GIMP
          - Inkscape: org.inkscape.Inkscape
          - Joplin: net.cozic.joplin_desktop
          - Kdenlive: org.kde.kdenlive
          - Krita: org.kde.krita
          - LibreOffice: org.libreoffice.LibreOffice
          - Obsidian: md.obsidian.Obsidian
          - OnlyOffice: org.onlyoffice.desktopeditors
          - Slack: com.slack.Slack
          - Standard Notes: org.standardnotes.standardnotes
          - Tenacity: org.tenacityaudio.Tenacity
          - Thunderbird Email: org.mozilla.Thunderbird
          - Xournal++: com.github.xournalpp.xournalpp
        Utilities and System Tools:
          description: Helpful tools
          default: false
          packages:
          - AppImage Pool: io.github.prateekmedia.appimagepool
          - Barrier: com.github.debauchee.barrier
          - Bitwarden: com.bitwarden.desktop
          - Calibre: com.calibre_ebook.calibre
          - Fedora Media Writer: org.fedoraproject.MediaWriter
          - KeePassXC: org.keepassxc.KeePassXC
          - Metadata Cleaner: fr.romainvigier.MetadataCleaner
          - OpenRGB: org.openrgb.OpenRGB
          - Pika Backup: org.gnome.World.PikaBackup
          - PinApp: io.github.fabrialberio.pinapp
          - qBittorrent: org.qbittorrent.qBittorrent
          - Resources: net.nokyan.Resources
          - SaveDesktop: io.github.vikdevelop.SaveDesktop
          - Syncthing: com.github.zocker_160.SyncThingy
          - VLC: org.videolan.VLC
  theme:
    source: yafti.screen.title
    values:
      title: "GNOME Theme"
      condition:
        run: grep -q 'silverblue' <<< $(jq -r '."base-image-name"' < /usr/share/ublue-os/image-info.json)
      links:
      - "Vapor Theme":
          run: ujust enable-vapor-theme
      - "VGUI2 Theme":
          run: ujust enable-vgui2-theme
      description: |
        Optionally apply a Valve-inspired theme to GNOME via Gradience. Note that custom themes are not officially supported by GNOME and some applications can break. Please avoid reporting issues to application developers until you've tested against the default theme.
  final-screen:
    source: yafti.screen.title
    values:
      title: "All done!"
      icon: "/usr/share/ublue-os/bazzite/logo.svg"
      links:
      - "Install More Applications":
          run: /usr/bin/plasma-discover
      - "Website":
          run: /usr/bin/xdg-open https://ublue.it
      - "Join the Discord Community":
          run: /usr/bin/xdg-open https://discord.gg/XjG48C7VHx
      - "Reboot now":
          run: systemctl reboot
      description: |
        Thank you for trying Bazzite (Steam Deck Edition). Please reboot to apply changes made by this setup utility.
