diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f5de6147..1446d5dc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -110,9 +110,9 @@ jobs:
labels: |
org.opencontainers.image.title=${{ env.IMAGE_NAME }}
org.opencontainers.image.version=${{ steps.labels.outputs.VERSION }}
- org.opencontainers.image.description=Gaming-focused builds of ublue-os with arch distrobox images for gaming, nvidia support, and future support for Valve's Steam Deck.
+ org.opencontainers.image.description=Bazzite is an OCI that serves as an alternative OS for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers.
io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/bazzite/main/README.md
- io.artifacthub.package.logo-url=https://avatars.githubusercontent.com/u/120078124?s=200&v=4
+ io.artifacthub.package.logo-url=https://raw.githubusercontent.com/ublue-os/bazzite/main/repo_content/logo.png
# Build image using Buildah action
- name: Build Image
diff --git a/README.md b/README.md
index 08f1e5e4..217354db 100644
--- a/README.md
+++ b/README.md
@@ -1,29 +1,84 @@
-# Bazzite
+
+
+
+
+
+
[](https://github.com/ublue-os/bazzite/actions/workflows/build.yml)
+[](https://github.com/ublue-os/bazzite-arch/actions/workflows/build.yml)
-Bazzite is an OCI that serves as an alternative OS for the [Steam Deck](https://www.steamdeck.com/), and a ready-to-game SteamOS-like for desktop computers.
+## About & Features
-## Usage
+Bazzite is an OCI image that serves as an alternative operating system for the [Steam Deck](https://www.steamdeck.com/), and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs.
-TODO
+Bazzite is built from [ublue-os/main](https://github.com/ublue-os/main) and [ublue-os/nvidia](https://github.com/ublue-os/nvidia), which means expanded hardware support and built in drivers are included. Additionally, Bazzite adds the following features:
-## Features
+- Proprietary Nvidia drivers included on the image
+- Full hardware accelerated codec support for H264 decoding
+- Full support for AMD's ROCM OpenCL/HIP runtimes
+- Includes Valve's KDE themes from SteamOS
+- [LatencyFleX](https://github.com/ishitatsuyuki/LatencyFleX), [vkBasalt](https://github.com/DadSchoorse/vkBasalt), [MangoHud](https://github.com/flightlessmango/Mangohud), and [OBS VkCapture](https://github.com/nowrep/obs-vkcapture) installed and available by default
+- Support for [Wallpaper Engine](https://www.wallpaperengine.io/en) on KDE.
+- [Distrobox](https://github.com/89luca89/distrobox) preinstalled with automatic updates for created containers.
+- Automated duperemove services for pruning wine prefix contents.
+- Uses [Google's BBR TCP congestion control](https://github.com/google/bbr) by default.
+- [Input Remapper](https://github.com/sezanzeb/input-remapper) preinsalled and enabled (Available but default-disabled on the Deck variant)
+- Helpful first-start installer provides an easy way to install numerous helpful applications and tweaks, including installing [CoreCtrl](https://gitlab.com/corectrl/corectrl) and [GreenWithEnvy](https://gitlab.com/leinardi/gwe).
+- Nix package manager, matching evidence in SteamOS 3.5 of this potentially being available in a future release.
+- GCAdapter_OC driver for overclocking Nintendo's Gamecube Controller Adapter to 1000hz polling.
-- Built from a base [ublue-os/kinoite](https://github.com/ublue-os/main) or [ublue-os/kinoite-nvidia](https://github.com/ublue-os/nvidia) image
-- Initial setup wizard provides [Decky Loader](https://github.com/SteamDeckHomebrew/decky-loader), [EmuDeck](https://www.emudeck.com/), and an assortment of useful Flatpaks.
-- Adds ported versions of Valve's Steam Deck packages
-- Ships with [Distrobox](https://github.com/89luca89/distrobox) installed and ready to use
-- Desktop variant uses [ublue-os/bazzite-arch](https://github.com/ublue-os/bazzite-arch) [](https://github.com/ublue-os/bazzite-arch/actions/workflows/build.yml) in Distrobox to run Steam and other gaming workloads.
-- Adds h264 decoding out of the box via [RPM Fusion](https://rpmfusion.org/)
-- Supports [LatencyFleX](https://github.com/ishitatsuyuki/LatencyFleX) and [vkBasalt](https://github.com/DadSchoorse/vkBasalt) out of the box
-- Comes with services for automatic system, distrobox, and flatpak updates.
-- BTRFS by default, including the SD card
-- Built in duperemove services
-- Pre-tuned for gaming workloads
-- Matches SteamOS as closely as possible
+### Base
+
+Common variant available as `bazzite` and suitable for desktops and HTPCs.
+
+- Runs Steam and Lutris in a [custom Arch Linux OCI](https://github.com/ublue-os/bazzite-arch/) via Distrobox.
+- Ships with a ported version of [System76's Scheduler](https://github.com/pop-os/system76-scheduler), providing automatic process priority tweaks to your focused application and keeping CPU time for background processes to a minimum.
+- Option to automatically launch Steam in Big Picture Mode on boot for HTPCs.
+
+To rebase an existing system to this image:
+
+ rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:latest
+
+or for devices with Nvidia GPUs:
+
+ rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:latest
+
+### Deck
+
+Variant designed for usage as an alternative to SteamOS on the Steam Deck, available as `bazzite-deck`:
+
+- Directly boots to Gamemode matching SteamOS's behavior
+- Features ported versions of most SteamOS packages, including drivers, firmware updaters, and fan controllers [from the evlaV repository](https://gitlab.com/evlaV)
+- Comes with patches from [SteamOS BTRFS](https://gitlab.com/popsulfr/steamos-btrfs) for full BTRFS support for the SD card by default
+- Ships with a ported copy of [SDGyroDSU](https://github.com/kmicki/SteamDeckGyroDSU), enabled by default
+- Option to install [Decky Loader](https://github.com/SteamDeckHomebrew/decky-loader), [EmuDeck](https://www.emudeck.com/), and [ProtonUp-Qt](https://davidotek.github.io/protonup-qt/), among numerous other useful packages on installation
+- Custom update system allows for the OS, Flatpaks, and Distrobox images to be updated directly from the Gamemode UI
+- Steam and Lutris preinstalled on the image
+- Comes with a default-disabled service for low-risk undervolting of the Steam Deck via [RyzenAdj](https://github.com/FlyGoat/RyzenAdj)
+- Exclusively uses zram by default with the option to switch back to a swapfile and set a custom size if desired
+- Tuned I/O scheduler to reduce starvation when installing games or during background duperemove processes
+- Uses CFS scheduler parameters from [TKG](https://github.com/Frogging-Family/linux-tkg) for increased performance
+- Applies SteamOS's kernel parameters and enables amd-pstate by default
+
+To rebase an existing system to this image:
+
+ rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:latest
+
+## Why
+
+Bazzite started as a project to resolve some of the issues that plague SteamOS, mainly out of date packages despite an Arch base and the lack of a functional package manager.
+
+Despite this project also being image-based you are able to install any Fedora package straight from the command line. These packages will persist across updates. Additionally, Bazzite is updated daily with packages from upstream [Fedora](https://fedoraproject.org/) giving you the best possible performance and latest features - all on a stable base.
+
+Bazzite ships with the latest Linux kernel and SELinux enabled by default with full support for secure boot and disk encryption, making this a sensible solution for general computing.
+
+Yes, you can print from Bazzite.
+
+
+
-## Copr
+## Custom Packages
Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built on Copr in [this repo](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/).
@@ -32,7 +87,6 @@ Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built o
|gamescope||
|gamescope-session||
|jupiter-fan-control||
-|jupiter-hw-support||
|jupiter-hw-support-[btrfs](https://gitlab.com/popsulfr/steamos-btrfs)||
|python3-hid||
|ryzenadj||
@@ -45,10 +99,13 @@ Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built o
Additionally, the following packages are used from other Copr repos:
|Package|Status|
|---|---|
+|[gcadapter_oc-kmod](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)||
|[hl2linux-selinux](https://copr.fedorainfracloud.org/coprs/kylegospo/hl2linux-selinux/)||
|[latencyflex-vulkan-layer](https://copr.fedorainfracloud.org/coprs/kylegospo/LatencyFleX/)||
|[mangohud](https://copr.fedorainfracloud.org/coprs/kylegospo/mangohud/)||
|[obs-vkcapture](https://copr.fedorainfracloud.org/coprs/kylegospo/obs-vkcapture/)||
+|[steamdeck-kmod](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)||
+|[system76-scheduler](https://copr.fedorainfracloud.org/coprs/kylegospo/system76-scheduler/)||
|[wallpaper-engine-kde-plugin](https://copr.fedorainfracloud.org/coprs/kylegospo/wallpaper-engine-kde-plugin/)||
## Verification
@@ -56,3 +113,12 @@ Additionally, the following packages are used from other Copr repos:
These images are signed with sisgstore's [cosign](https://docs.sigstore.dev/cosign/overview/). You can verify the signature by downloading the `cosign.pub` key from this repo and running the following command:
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite
+
+## [](https://repography.com) / Recent activity [](https://repography.com)
+[](https://github.com/ublue-os/bazzite/commits)
+[](https://github.com/ublue-os/bazzite/issues)
+[](https://github.com/ublue-os/bazzite/pulls)
+[](https://github.com/ublue-os/bazzite/graphs/contributors)
+
+## [](https://repography.com) / Top contributors
+[](https://github.com/ublue-os/bazzite/graphs/contributors)
diff --git a/repo_content/desktop1.png b/repo_content/desktop1.png
new file mode 100644
index 00000000..5a059f5c
Binary files /dev/null and b/repo_content/desktop1.png differ
diff --git a/repo_content/desktop2.png b/repo_content/desktop2.png
new file mode 100644
index 00000000..0687de7d
Binary files /dev/null and b/repo_content/desktop2.png differ
diff --git a/repo_content/logo.png b/repo_content/logo.png
new file mode 100644
index 00000000..5112fd4c
Binary files /dev/null and b/repo_content/logo.png differ
diff --git a/repo_content/text_logo.png b/repo_content/text_logo.png
new file mode 100644
index 00000000..42aa8fc2
Binary files /dev/null and b/repo_content/text_logo.png differ
diff --git a/system_files/deck/usr/share/ublue-os/bazzite/neofetch.conf b/system_files/deck/usr/share/ublue-os/bazzite/neofetch.conf
new file mode 100644
index 00000000..172ada43
--- /dev/null
+++ b/system_files/deck/usr/share/ublue-os/bazzite/neofetch.conf
@@ -0,0 +1,41 @@
+print_info () {
+ info title
+ info underline
+
+ distro="Bazzite x86_64"
+ info "Host" model
+ info "OS" distro
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ info "Resolution" resolution
+ info "DE" de
+ info "WM" wm
+ info "WM Theme" wm_theme
+ info "Theme" theme
+ info "Icons" icons
+ info "Terminal" term
+ info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ info "Memory" memory
+
+ # The lines below with a '#' in front are additional info functions
+ # that are disabled by default. Removing the '#' enables them and adding
+ # a '#' to the start disables them again. You can add a '#' to any of the
+ # lines in this function to disable their output.
+
+ # info "CPU Usage" cpu_usage
+ # info "Disk" disk
+ info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Birthday" birthday
+
+ info cols
+}
+
diff --git a/system_files/deck/usr/share/ublue-os/firstboot/yafti.yml b/system_files/deck/usr/share/ublue-os/firstboot/yafti.yml
index 364e4627..cde84495 100644
--- a/system_files/deck/usr/share/ublue-os/firstboot/yafti.yml
+++ b/system_files/deck/usr/share/ublue-os/firstboot/yafti.yml
@@ -5,8 +5,8 @@ screens:
first-screen:
source: yafti.screen.title
values:
- title: "Welcome to Bazzite (Steam Deck)"
- icon: "/path/to/icon"
+ title: "Welcome to Bazzite (Steam Deck Edition)"
+ icon: "/usr/share/ublue-os/bazzite/logo.svg"
description: |
Configure your system to get started
configure-bazzite:
diff --git a/system_files/desktop/etc/profile.d/neofetch.sh b/system_files/desktop/etc/profile.d/neofetch.sh
new file mode 100755
index 00000000..67b0146e
--- /dev/null
+++ b/system_files/desktop/etc/profile.d/neofetch.sh
@@ -0,0 +1 @@
+alias neofetch='neofetch --source /usr/share/ublue-os/bazzite/logo.txt --config /usr/share/ublue-os/bazzite/neofetch.conf'
diff --git a/system_files/desktop/usr/share/ublue-os/bazzite/logo.svg b/system_files/desktop/usr/share/ublue-os/bazzite/logo.svg
new file mode 100644
index 00000000..58103497
--- /dev/null
+++ b/system_files/desktop/usr/share/ublue-os/bazzite/logo.svg
@@ -0,0 +1,172 @@
+
+
+
+
diff --git a/system_files/desktop/usr/share/ublue-os/bazzite/logo.txt b/system_files/desktop/usr/share/ublue-os/bazzite/logo.txt
new file mode 100644
index 00000000..aed2202d
--- /dev/null
+++ b/system_files/desktop/usr/share/ublue-os/bazzite/logo.txt
@@ -0,0 +1,14 @@
+${c1} .,;;;;,..............;::::;.
+ .cccccccccccccccccccccccccccccc.
+ .cc,...';lccccccccccccccc,....,c:.
+ :: .ccccccccccccc: .c;
+ ,l' :llllllololll, ;c'
+ .lcc. 'l::coccoccl,:l. 'lcl.
+ ;occcc;,,;cc. .lccl,;,:';l;,,;cccco;
+ odlccccccccc. .lccc,;',;;ccccccccldo
+'dddlccccccccc::cccccccc;:ccccccccclddd'
+;ddddolccccc;'............';ccccclodddd;
+,dddddddoll' .lloddddddd,
+.ldddddddd' 'ddddddddl.
+ ;oddddo. .lddddl,
+ .;c;. ,;,.
diff --git a/system_files/desktop/usr/share/ublue-os/bazzite/neofetch.conf b/system_files/desktop/usr/share/ublue-os/bazzite/neofetch.conf
new file mode 100644
index 00000000..baff837a
--- /dev/null
+++ b/system_files/desktop/usr/share/ublue-os/bazzite/neofetch.conf
@@ -0,0 +1,41 @@
+print_info () {
+ info title
+ info underline
+
+ distro="Bazzite x86_64"
+ info "Host" model
+ info "OS" distro
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ info "Resolution" resolution
+ info "DE" de
+ info "WM" wm
+ info "WM Theme" wm_theme
+ info "Theme" theme
+ info "Icons" icons
+ info "Terminal" term
+ info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ info "Memory" memory
+
+ # The lines below with a '#' in front are additional info functions
+ # that are disabled by default. Removing the '#' enables them and adding
+ # a '#' to the start disables them again. You can add a '#' to any of the
+ # lines in this function to disable their output.
+
+ # info "CPU Usage" cpu_usage
+ # info "Disk" disk
+ # info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Birthday" birthday
+
+ info cols
+}
+
diff --git a/system_files/desktop/usr/share/ublue-os/firstboot/yafti.yml b/system_files/desktop/usr/share/ublue-os/firstboot/yafti.yml
index a6304712..526da344 100644
--- a/system_files/desktop/usr/share/ublue-os/firstboot/yafti.yml
+++ b/system_files/desktop/usr/share/ublue-os/firstboot/yafti.yml
@@ -5,8 +5,8 @@ screens:
first-screen:
source: yafti.screen.title
values:
- title: "Welcome to Bazzite (Desktop)"
- icon: "/path/to/icon"
+ title: "Welcome to Bazzite"
+ icon: "/usr/share/ublue-os/bazzite/logo.svg"
description: |
Configure your system to get started
configure-bazzite: