### Enable and Start Waydroid Container Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Enables the Waydroid container service to start automatically on boot and starts it immediately. This command ensures the Waydroid container is running and persistent across reboots. ```bash sudo systemctl enable --now waydroid-container ``` -------------------------------- ### Install Waydroid ARM Emulation and WideVine Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid This command initiates the installation of Waydroid scripts, sets up a Python virtual environment, and installs dependencies. It then guides the user through selecting options for ARM emulation (libndk for AMD, libhoudini for Intel) and WideVine for DRM streaming. Ensure Waydroid is not running during installation. ```bash git clone https://github.com/casualsnek/waydroid_script && cd waydroid_script && python -m venv venv && source venv/bin/activate && sudo pip install -r requirements.txt && sudo python main.py ``` -------------------------------- ### Install JetBrains Toolbox Source: https://context7.com/ublue-os/bazzite/llms.txt Installs the JetBrains Toolbox application using the 'ujust' command. This utility simplifies the installation of JetBrains IDEs and development tools on Bazzite OS. It leverages Homebrew for package management. ```bash # Install JetBrains Toolbox via Homebrew ujust install-jetbrains-toolbox # Uses: brew tap ublue-os/tap && brew install --cask jetbrains-toolbox-linux ``` -------------------------------- ### Initialize Waydroid with Google Apps Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Initializes Waydroid by installing the Android system and Google Play Store from specified URLs. The `-s GAPPS` flag ensures Google Apps are included, and `-f` forces a fresh installation. ```bash sudo waydroid init -c https://ota.waydro.id/system -v https://ota.waydro.id/vendor -s GAPPS -f ``` -------------------------------- ### Install Decky Loader with Ujust Source: https://github.com/ublue-os/bazzite/blob/main/system_files/deck/shared/usr/share/ublue-os/motd/tips/25-bazzite-deck.md This command installs Decky Loader on Bazzite OS. It utilizes the `ujust` utility for streamlined installation. No specific inputs are required beyond executing the command. ```bash ujust setup-decky install ``` -------------------------------- ### Create Weston Waydroid Desktop Entry Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid This .desktop file allows Weston to be launched as an application, specifically configured to run Waydroid. It defines the application's name, comment, icon, and the command to execute, which includes the Weston configuration file. Ensure USERNAME is replaced with your username. ```ini [Desktop Entry] Version=0.1 Type=Application Name=Weston Comment=Launch Waydroid nested in Weston Icon=applications-other Exec=weston -c /home/USERNAME/.config/weston-waydroid.ini Actions= Categories=Utility; ``` -------------------------------- ### Create Weston Waydroid Executable Script Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid This script is executed by Weston to manage Waydroid sessions. It includes a delay, stops any running Waydroid session, and then launches the Waydroid UI on a specific Wayland display. Ensure the script has execute permissions. ```bash #!/bin/bash sleep 3 waydroid session stop WAYLAND_DISPLAY=wayland-1 waydroid show-full-ui ``` -------------------------------- ### Enter Waydroid Shell Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Opens a shell environment within the running Waydroid container. This allows for direct interaction with the Android system inside Waydroid for advanced configurations and debugging. ```bash sudo waydroid shell ``` -------------------------------- ### Get System Logs Source: https://context7.com/ublue-os/bazzite/llms.txt Collects system logs for troubleshooting and reporting purposes. It gathers information such as rpm-ostree status and boot logs, uploading them to a paste service and copying relevant output to the clipboard. ```bash # Get logs and copy to clipboard ujust get-logs # Output includes: # - rpm-ostree status # - This boot logs (uploaded to fpaste) # - Last boot logs (uploaded to fpaste) # - All output copied to clipboard via wl-copy ``` -------------------------------- ### Get Android ID for Google Play Certification Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Retrieves the unique Android ID from the Waydroid container's Google Services Framework database. This ID is required to register the device for Google Play certification on the Google Uncertified Devices portal. ```bash ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";" ``` -------------------------------- ### Stop Waydroid Session Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Stops the currently running Waydroid session. This command is used to cleanly shut down the Waydroid container after making configuration changes or when no longer needed. ```bash waydroid session stop ``` -------------------------------- ### Configure Weston for Waydroid Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid This INI file configures Weston to launch a Waydroid session. It specifies the autolaunch script, output display names and resolutions, and shell settings like background color and panel visibility. Remember to replace USERNAME with your actual username and adjust resolutions to match your display. ```ini [autolaunch] path=/home/USERNAME/.local/this-is-executable.sh [output] name=X1 mode=1920x1080 [output] name=WL1 mode=1920x1080 [shell] background-color=0xFF000000 panel-position=none locking=false ``` -------------------------------- ### Set Waydroid Display Resolution Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Sets the persistent width and height for the Waydroid display. This is particularly useful for adjusting the resolution on devices like the Steam Deck to match the native display or desired output. ```bash waydroid prop set persist.waydroid.width 1280 waydroid prop set persist.waydroid.height 800 ``` -------------------------------- ### Configure Waydroid Base Properties Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid This file contains base properties for Waydroid. It allows for adjusting the PPI (Pixels Per Inch) by setting `ro.sf.lcd_density` and configuring the graphics driver for AMD/Intel GPUs by changing `ro.hardware.gralloc` to `minigbm_gbm_mesa`. Ensure Waydroid is stopped before editing. ```properties ro.sf.lcd_density=100 ``` ```properties ro.hardware.gralloc=minigbm_gbm_mesa ``` -------------------------------- ### Disable SELinux on Bazzite Source: https://github.com/ublue-os/bazzite/wiki/Setting-up-Waydroid Modifies the SELinux configuration file to disable SELinux, which is necessary for Waydroid to function correctly on Bazzite due to OCI image relabeling issues. This involves editing `/etc/selinux/config` and rebooting. ```bash sudo nano /etc/selinux/config # Change SELINUX=enforcing to SELINUX=disabled # Save and exit (Ctrl+S, Ctrl+X) reboot ``` -------------------------------- ### Build Container Stages with Podman Source: https://context7.com/ublue-os/bazzite/llms.txt Demonstrates how to build different stages of the Bazzite container image using Podman. This allows for creating variants like desktop, Steam Deck, and NVIDIA-specific builds by specifying build arguments and target stages. ```dockerfile # Base arguments ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}" # kinoite or silverblue ARG FEDORA_VERSION="${FEDORA_VERSION:-43}" ARG BASE_IMAGE="${BASE_IMAGE:-ghcr.io/ublue-os/${BASE_IMAGE_NAME}-main:${FEDORA_VERSION}}" # Build stages: # 1. bazzite - Desktop builds (KDE/GNOME) # 2. bazzite-deck - Steam Deck/HTPC builds (inherits from bazzite) # 3. bazzite-nvidia - NVIDIA driver builds (inherits from bazzite or bazzite-deck) # Example manual build with podman podman build -f Containerfile \ --build-arg="IMAGE_NAME=bazzite" \ --build-arg="BASE_IMAGE_NAME=kinoite" \ --build-arg="FEDORA_VERSION=43" \ --target="bazzite" \ --tag localhost/bazzite:43-stable \ . # Build NVIDIA variant podman build -f Containerfile \ --build-arg="IMAGE_NAME=bazzite-nvidia" \ --build-arg="BASE_IMAGE_NAME=kinoite" \ --build-arg="NVIDIA_BASE=bazzite" \ --target="bazzite-nvidia" \ --tag localhost/bazzite-nvidia:43-stable \ . ``` -------------------------------- ### Enroll Secure Boot Keys Source: https://github.com/ublue-os/bazzite/blob/main/README.md Configures the system to trust the Bazzite Secure Boot key. This involves setting a MOK timeout and importing the DER-formatted public key. ```bash sudo mokutil --timeout -1 sudo mokutil --import secure_boot.der ``` -------------------------------- ### Enroll Secure Boot via Ujust Source: https://github.com/ublue-os/bazzite/blob/main/README.md A simplified command for existing Universal Blue users to enroll the Secure Boot key using the built-in ujust helper script. ```bash ujust enroll-secure-boot-key ``` -------------------------------- ### Run System Benchmark Source: https://context7.com/ublue-os/bazzite/llms.txt Executes a system performance benchmark, specifically a 1-minute CPU benchmark using the 'stress-ng' tool. This command helps assess the system's processing power and stability under load. ```bash # Run 1-minute CPU benchmark using stress-ng ujust benchmark # Executes: stress-ng --matrix 0 -t 1m --times ``` -------------------------------- ### Enroll Secure Boot Key Source: https://context7.com/ublue-os/bazzite/llms.txt Enrolls Bazzite's secure boot key, which is necessary for systems with Secure Boot enabled. This command ensures that the operating system can boot securely by trusting the Bazzite signing key. ```bash # Enroll secure boot key (on Universal Blue images) ujust enroll-secure-boot-key # Password when prompted: universalblue # Manual enrollment before installation curl -O https://raw.githubusercontent.com/ublue-os/bazzite/main/secure_boot.der sudo mokutil --timeout -1 sudo mokutil --import secure_boot.der ``` -------------------------------- ### Verify Bazzite Image Signatures with Cosign Source: https://context7.com/ublue-os/bazzite/llms.txt Verifies the authenticity of Bazzite container images using cosign signatures. This process involves downloading the public key and then using cosign to check the integrity of the specified image repository. ```bash # Download the public key from the repository curl -O https://raw.githubusercontent.com/ublue-os/bazzite/main/cosign.pub # Verify a Bazzite image signature cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite # Verify NVIDIA variant cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite-nvidia # Verify Deck variant cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite-deck ``` -------------------------------- ### Verify Bazzite Image Signature Source: https://github.com/ublue-os/bazzite/blob/main/README.md Uses the cosign utility to verify the authenticity of the Bazzite container image against the provided public key. This ensures the image has not been tampered with. ```bash cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite ``` -------------------------------- ### Conditional Announcement Triggering Source: https://github.com/ublue-os/bazzite/blob/main/system_files/desktop/shared/usr/share/ublue-os/announcements/README.md Demonstrates the use of the 'if' field to conditionally trigger announcements based on system versioning. The shell command must return exit code 0 to display the announcement or exit code 1 to skip it. ```json { "if": "systemd-analyze compare-versions 43 \\< $(rpm-ostree status -v --json | jq -r '.deployments[]|select(.booted==true)|.version')" } ``` -------------------------------- ### Toggle Password Feedback Source: https://context7.com/ublue-os/bazzite/llms.txt Manages the display of asterisks for sudo password input. This command can enable or disable the visual feedback for password entry, enhancing security by preventing shoulder surfing. It modifies the sudoers configuration. ```bash # Toggle password feedback ujust toggle-password-feedback # Enable explicitly ujust toggle-password-feedback on # Disable explicitly ujust toggle-password-feedback off # Creates/removes: /etc/sudoers.d/enable-pwfeedback ``` -------------------------------- ### Toggle Ramoops (Panic Logging) Source: https://context7.com/ublue-os/bazzite/llms.txt Manages the preservation of kernel panic messages across reboots using the ramoops mechanism. This feature is crucial for diagnosing system crashes by saving diagnostic information to persistent storage. ```bash # Interactive ramoops configuration ujust toggle-save-panics # Enable ramoops ujust toggle-save-panics enable # Sets kernel args: reserve_mem=64K:4096:ramoops, pstore.backend=ramoops # Panic messages saved to: /var/lib/systemd/pstore # Disable ramoops ujust toggle-save-panics disable ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.