Surviving Bazzite
After running Bazzite for 6 months, this post is my dedicated blog to document what I needed to do to get it serving all of my needs.
ujust Commands
Bazzite includes ujust (Universal Just) commands for common tasks:
# Update the system
ujust update
# Enter BIOS/UEFI setup
ujust bios
# Rebase to NVIDIA image (for devices with Nvidia GPU like Steam Deck OLED)
ujust rebase-nvidia
# Rebase to regular (non-NVIDIA) image
ujust rebase
# Toggle NVK (Vulkan drivers, alternative to rebasing)
ujust toggle-nvk
# Toggle Game Mode
ujust toggle-gamemode
# Install OpenRGB (for RGB lighting control)
ujust install-openrgb
Install System Packages
In case you need to install some system packages that are not available to be used conveniently in homebrew or via containers:
sudo rpm-ostree install dotnet-sdk-8.0 dotnet-runtime-8.0 wine
systemctl reboot
Disable RAM LEDs with OpenRGB
My desktop have DRAM DIMMs with LEDs, that have no dedicated software to control, even on Windows.
While OpenRGB with higher level of privilages can work on Windows to detect the DIMMs, on Bazzite due to the distro’s nature, it was not as straight forward.
After installing OpenRGB with ujust install-openrgb:
# Load required kernel modules
echo -e "i2c-dev\ni2c-piix4\ni2c-i801" | sudo tee /etc/modules-load.d/openrgb.conf
# Turn off DRAM LEDs
sudo ~/AppImages/openrgb.appimage --device DRAM --mode off
Create an autostart entry at ~/.config/autostart/openrgb-off.desktop:
[Desktop Entry]
Type=Application
Name=OpenRGB Startup Off
Comment=Disable DRAM LEDs at startup
Exec=sudo ~/AppImages/openrgb.appimage --device DRAM --mode off
StartupNotify=false
Terminal=false
Other useful OpenRGB commands:
# List all devices
~/AppImages/openrgb.appimage --list-devices
# Set specific device to off (replace 2 with device number)
~/AppImages/openrgb.appimage --device 2 --color 000000
Container Quadlets
Bazzite uses systemd quadlets (like Docker Compose but native to systemd) to manage containers. Quadlet files go in ~/.config/containers/systemd/ or ~/.local/share/containers/systemd/.
Basic Quadlet Structure
Create a network quadlet first (~/.config/containers/systemd/common.network):
[Unit]
Description=Shared network for my stack
[Network]
NetworkName=my_common_network
DNS=true
Then create container quadlets (~/.config/containers/systemd/myapp.container):
[Unit]
Description=My App
After=network-online.target
[Container]
Image=myimage:latest
ContainerName=myapp
AutoUpdate=registry
Network=my_common_network
PublishPort=8080:80
Volume=%h/myapp:/data:Z
[Service]
Restart=always
[Install]
WantedBy=default.target
Apply Quadlets
systemctl --user daemon-reload
systemctl --user enable --now myapp
Zsh with CachyOS Theme
Switch from bash to zsh with the CachyOS theme:
# Zsh is pre-installed on Bazzite, just switch to it
chsh -s /bin/zsh
# Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Configure p10k
p10k configure
Or use the CachyOS zsh config:
# Create config directory
mkdir -p ~/.config/cachyos-zsh
# Copy the cachyos zsh config
curl -o ~/.config/cachyos-zsh/cachyos-config.zsh https://raw.githubusercontent.com/CachyOS/zsh-config/main/etc/skels/skel.zsh
# Add to ~/.zshrc
source ~/.config/cachyos-zsh/cachyos-config.zsh
Key plugins in the CachyOS config:
- zsh-syntax-highlighting - Fish-like syntax highlighting
- zsh-autosuggestions - Suggest commands as you type
- zsh-history-substring-search - Search through history with arrow keys