🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Bazzite Sweet — Bazzite Setup, Steam Deck, Flatpak, uBlue

by @silverod

Bazzite-specific setup, optimization, and troubleshooting — Steam Deck tweaks, Flatpak management, Wayland, GNOME/KDE, uBlue image layers

Versionv1.0.0
Downloads515
TERMINAL
clawhub install bazzite-sweet

📖 About This Skill


name: bazzite-sweet description: Bazzite-specific setup, optimization, and troubleshooting — Steam Deck tweaks, Flatpak management, Wayland, GNOME/KDE, uBlue image layers version: 1.0.0 tags: - bazzite - steam-deck - immutable - flatpak - wayland - gaming - ublue - linux metadata: {"openclaw": {"os": ["linux"]}}

Bazzite Sweet — Your Bazzite Companion

Everything specific to Bazzite: setup, optimization, Steam Deck tweaks, Flatpak management, Wayland compositors, and uBlue image customization.

When to Use

  • Setting up or tweaking Bazzite on desktop or Steam Deck
  • Managing Flatpaks and system packages on Bazzite
  • Steam Deck gaming optimization
  • Wayland display/compositor issues
  • uBlue custom images and rebase
  • Bazzite-specific bugs or quirks
  • Switching between Bazzite editions (Nvidia, Wayfire, Sway, KDE)
  • Bazzite Quick Reference

    Editions

    | Edition | Use Case | |---------|----------| | bazzite | GNOME-based desktop | | bazzite-nvidia | GNOME + Nvidia proprietary | | bazzite-deck | Steam Deck (KDE Plasma) | | bazzite-deck-nvidia | Steam Deck + Nvidia | | bazzite-arch | Arch-based (unstable) |

    Core Identity

    Bazzite is built on Fedora Atomic (rpm-ostree) + uBlue framework. Key facts:

  • Immutable root filesystem (use rpm-ostree for system changes)
  • Flatpak for GUI apps (pre-configured with Flathub + uBlue repos)
  • No dnf install — layer packages with rpm-ostree install
  • Updates are atomic deployments
  • Steam Deck variant uses KDE Plasma (not GNOME)
  • System Status

    # Check Bazzite version and deployment
    rpm-ostree status

    Check for updates

    rpm-ostree upgrade --check

    Apply update

    rpm-ostree upgrade && systemctl reboot

    Current kernel

    uname -r

    Check Bazzite-specific services

    systemctl --user list-units 'bazzite*' 2>/dev/null systemctl list-units 'bazzite*' 2>/dev/null

    Flatpak Management

    Bazzite comes with Flathub and uBlue Flatpak repos pre-configured.

    # List all Flatpaks
    flatpak list

    List only user-installed

    flatpak list --user --app

    Update all Flatpaks

    flatpak update --assumeyes

    Search for an app

    flatpak search "app name"

    Install from Flathub

    flatpak install flathub

    Install from uBlue repo

    flatpak installublue 2>/dev/null || flatpak install

    Remove

    flatpak uninstall

    Clear unused runtimes

    flatpak uninstall --unused

    Check repo list

    flatpak remotes

    Add Flathub if missing

    flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

    Fix Flatpak issues

    flatpak repair flatpak update --app

    Essential Gaming Flatpaks

    # Core gaming
    flatpak install flathub com.valvesoftware.Steam
    flatpak install flathub net.lutris.Lutris
    flatpak install flathub com.usebottles.bottles
    flatpak install flathub org.prismlauncher.PrismLauncher
    flatpak install flathub com.heroicgameslauncher.hgl
    flatpak install flathub io.github.Foldex.Exodus

    Streaming

    flatpak install flathub dev.lizardbyte.app.Sunshine

    Media

    flatpak install flathub org.freedesktop.Platform.VAAPI.Intel flatpak install flathub org.freedesktop.Platform.VAAPI.Intel.i386

    GPU-specific (Nvidia)

    flatpak install flathub org.freedesktop.Platform.GL32.nvidia flatpak install flathub org.freedesktop.Platform.GL.nvidia

    Steam Deck Specific

    Steam Deck UI

    # Check Gamescope (Steam Deck compositor)
    gamescope --help 2>/dev/null | head -5

    Current session type

    echo $XDG_SESSION_TYPE

    Check if in Game Mode

    Game Mode = Weston compositor running

    ps aux | grep -E 'gamescope|weston' | grep -v grep

    Check Steam Deck GPU

    cat /sys/class/drm/card*/device/vendor 2>/dev/null

    0x1002 = AMD (Van Gogh APU)

    Check thermal

    cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | awk '{print $1/1000"°C"}'

    Check battery (Steam Deck OLED/LCD)

    cat /sys/class/power_supply/BAT*/capacity 2>/dev/null cat /sys/class/power_supply/BAT*/status 2>/dev/null

    Steam Deck Tweaks

    # Set Gamescope fractional scaling
    GAMESCOPE_FSR_SHARPNESS=2 gamescope -W 1280 -H 800 -f -- steam

    Enable FSR upscaling

    GAMESCOPE_FSR_SHARPNESS=5 gamescope -f -W 1920 -H 1200 -w 1280 -h 800 -- %command%

    Steam Deck OLED: native resolution

    gamescope -W 1280 -H 800 -f -- %command%

    Check controller input

    evtest /dev/input/event* 2>/dev/null | head -10

    Check SD card

    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep -E 'mmcblk|sd'

    Switching Desktop Mode

    # Desktop Mode = KDE Plasma Wayland
    

    Game Mode = Gamescope/Weston

    Check current mode

    Game Mode: gamescope process running, no KDE

    Desktop Mode: plasmashell running

    ps aux | grep -E 'plasmashell|gamescope' | grep -v grep

    Force restart into Desktop Mode

    Hold power button → select "Switch to Desktop"

    In Desktop Mode, check Wayland

    loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

    Wayland & Display

    # Wayland compositor info
    echo $WAYLAND_DISPLAY
    echo $XDG_CURRENT_DESKTOP

    List connected displays

    wlr-randr 2>/dev/null || xrandr 2>/dev/null || kscreen-doctor --outputs 2>/dev/null

    Screenshots

    grim screenshot.png # wlroots (Wayfire/Sway) spectacle -f # KDE Plasma gnome-screenshot -f # GNOME

    Screen recording

    wf-recorder -f recording.mp4 # wlroots OBS # Flatpak

    Check HDR support

    wlr-randr 2>/dev/null | grep -i hdr

    Layering Packages

    # Install CLI tools (requires reboot)
    rpm-ostree install gh vim tmux htop neofetch fastfetch

    Install development tools

    rpm-ostree install gcc make cmake git

    Install Wine (for Lutris/Bottles)

    rpm-ostree install wine

    Overlay specific RPM

    rpm-ostree overlay /path/to/package.rpm

    Remove layered package

    rpm-ostree uninstall

    Reset to base image (removes all overlays)

    rpm-ostree override reset

    Apply and reboot

    systemctl reboot

    Rebase & Updates

    # Rebase between Bazzite editions
    rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
    rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia:stable
    rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable

    Rollback if something breaks

    rpm-ostree rollback systemctl reboot

    Pin current deployment

    rpm-ostree pin

    Clean old deployments

    rpm-ostree cleanup -rp

    uBlue Custom Images

    Bazzite is built on the uBlue framework. You can create custom images:

    # Check if using custom image
    cat /etc/os-release | grep -E 'IMAGE|VARIANT'

    uBlue overlay (apply after each update)

    Place in /etc/ublue-os/

    ls /etc/ublue-os/ 2>/dev/null

    Check uBlue signing

    rpm-ostree status | grep -i sign

    Performance & Tweaks

    # Enable MangoHud globally
    flatpak override --user --env=MANGOHUD=1 com.valvesoftware.Steam

    Check GPU performance

    cat /sys/class/drm/card0/device/pp_dpm_sclk 2>/dev/null cat /sys/class/drm/card0/device/pp_dpm_mclk 2>/dev/null

    Thermal governor

    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort -u

    Memory usage

    free -h

    Disk usage

    df -h /

    udev rules for controllers

    ls /etc/udev/rules.d/ 2>/dev/null

    Troubleshooting

    | Problem | Solution | |---------|----------| | Update stuck | rpm-ostree cancel then retry | | Flatpak won't launch | flatpak repair then restart | | No sound | systemctl --user restart wireplumber pipewire | | Display wrong resolution | kscreen-doctor --outputs (KDE) | | Steam Deck won't enter Game Mode | Check systemctl --user status for errors | | Package conflict after layering | rpm-ostree override replace | | SD card not mounting | lsblk then sudo mount /dev/mmcblk0p1 /run/media/deck/sd | | Controller not detected | evtest + check steam-input service | | Wayland app blurry | Check fractional scaling, try integer scale |

    ⚡ When to Use

    TriggerAction
    - Managing Flatpaks and system packages on Bazzite
    - Steam Deck gaming optimization
    - Wayland display/compositor issues
    - uBlue custom images and rebase
    - Bazzite-specific bugs or quirks
    - Switching between Bazzite editions (Nvidia, Wayfire, Sway, KDE)

    📋 Tips & Best Practices

    | Problem | Solution | |---------|----------| | Update stuck | rpm-ostree cancel then retry | | Flatpak won't launch | flatpak repair then restart | | No sound | systemctl --user restart wireplumber pipewire | | Display wrong resolution | kscreen-doctor --outputs (KDE) | | Steam Deck won't enter Game Mode | Check systemctl --user status for errors | | Package conflict after layering | rpm-ostree override replace | | SD card not mounting | lsblk then sudo mount /dev/mmcblk0p1 /run/media/deck/sd | | Controller not detected | evtest + check steam-input service | | Wayland app blurry | Check fractional scaling, try integer scale |