Coder Social home page Coder Social logo

dnkmmr69420 / bazzite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ublue-os/bazzite

0.0 0.0 0.0 25.47 MB

Bazzite is an OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs.

License: Apache License 2.0

Shell 56.42% Lua 0.56% Dockerfile 43.02%

bazzite's Introduction

Bazzite Logo

Bazzite

build-bazzite build-bazzite-arch

About & Features

Bazzite is an OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs.

Bazzite is built from ublue-os/main and ublue-os/nvidia using Fedora technology, which means expanded hardware support and built in drivers are included. Additionally, Bazzite adds the following features:

  • Proprietary Nvidia drivers pre-installed.
  • Full hardware accelerated codec support for H264 decoding.
  • Full support for AMD's ROCM OpenCL/HIP run-times.
  • xone, xpadneo, and xpad-noone drivers for Xbox controllers.
  • Full support for DisplayLink.
  • Includes Valve's KDE themes from SteamOS.
  • LatencyFleX, vkBasalt, MangoHud, and OBS VkCapture installed and available by default
  • Support for Wallpaper Engine. (Only on KDE)
  • Distrobox preinstalled with automatic updates for created containers.
  • Automated duperemove services for reducing the disk space used by wine prefix contents.
  • System76-Scheduler preinstalled, providing automatic process priority tweaks to your focused application and keeping CPU time for background processes to a minimum.
  • Customized System76-Scheduler config with additional rules and CFS parameters from Linux-TKG.
  • Uses Google's BBR TCP congestion control by default.
  • Input Remapper preinstalled and enabled. (Available but default-disabled on the Deck variant)
  • Helpful first-start installer provides an easy way to install numerous applications and tweaks, including installing CoreCtrl and GreenWithEnvy.
  • Nix package manager optionally available.
  • Waydroid preinstalled for running Android apps. Future releases will offer to set this up for you. (Not available on Nvidia builds)
  • OpenRGB i2c-piix4 and i2c-nct6775 drivers for controlling RGB on certain motherboards.
  • GCAdapter_OC driver for overclocking Nintendo's Gamecube Controller Adapter to 1000hz polling.
  • Out of the box support for Wooting keyboards.
  • A fix is available for a TF2 bug that makes the game crash on launch - just fix-tf2-tcmalloc

Desktop

Common variant available as bazzite, suitable for desktop computers.

  • Runs Steam and Lutris in a custom Arch Linux OCI via Distrobox.
  • Automatic updates for the OS, Flatpaks, and all Distrobox containers.

Important

ISOs can be downloaded from our releases page here, and a helpful install guide can be found here.

If you're on an existing Universal Blue image follow these instructions. To rebase an existing upstream Fedora Silverblue/Kinoite ostree system to this image:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:latest

or for devices with Nvidia GPUs:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia:latest

For users with Secure Boot enabled: Once you've installed or rebased to a Nvidia build, be sure to follow step 3 from the ublue-os/nvidia guide.

Steam Deck/Home Theater PCs (HTPCs)

Variant designed for usage as an alternative to SteamOS on the Steam Deck, and for a console-like experience on HTPCs, available as bazzite-deck:

  • Directly boots to Gamemode matching SteamOS's behavior.
  • Automatic duperemove greatly trims the size of compatdata.
  • Latest version of Mesa creates smaller shader caches and does not require them to prevent stutter.
  • Able to be booted even if the drive is full.
  • Optionally use Wayland on the desktop with full support for Steam input.
  • Features ported versions of most SteamOS packages, including drivers, firmware updaters, and fan controllers from the evlaV repository.
  • Patched Mesa for proper framerate control from Gamescope.
  • Comes with patches from SteamOS BTRFS for full BTRFS support for the SD card by default.
  • Ships with a ported copy of SDGyroDSU, enabled by default.
  • Option to install Decky Loader, EmuDeck, and 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.
  • Built in support for Windows dual-boot thanks to Fedora's installation of GRUB being left intact.
  • Update break something? Easily roll back to the previous version of Bazzite thanks to rpm-ostree's rollback functionality. You can even select previous images at boot.
  • Steam and Lutris preinstalled on the image as layered packages.
  • Exclusively uses ZRAM by default with the option to switch back to a swap file and set a custom size if desired. (1GB by default)
  • BFQ I/O scheduler to prevent I/O starvation when installing games or during background duperemove processes.
  • TLS/SSL secured DNS and NTP by default. (This is a handheld PC you're likely to use on random public networks after all)
  • Applies SteamOS's kernel parameters and enables amd-pstate by default.
  • Default-disabled power-user features, including:
    • Service for low-risk undervolting of the Steam Deck via RyzenAdj, see ryzenadj.service and /etc/default/ryzenadj.
    • Service for limiting the max charge level of the battery, see batterylimit.service and /etc/default/batterylimit. (Works even when the device is off)
    • Built in support for display overclocking. For example, add GAMESCOPE_OVERRIDE_REFRESH_RATE=40,70 to /etc/environment.
    • Ability to enable Wayland on the desktop if desired by editing /etc/default/desktop-wayland.
    • 32GB RAM mod your Steam Deck? Enjoy double the maximum VRAM amount, automatically applied. (Can you share your soldering skills?)
  • Steam Deck hardware-specific services can be disabled by running just disable-deck-services in the terminal, useful for trying this image on other handhelds or for use on HTPCs.

Warning

Due to an upstream bug, Bazzite cannot be used on Steam Decks with 64GB eMMC storage at this time.

Important

ISOs can be downloaded from our releases page here, and a helpful install guide can be found here.

If you're on an existing Universal Blue image follow these instructions. To rebase an existing upstream Fedora Silverblue/Kinoite ostree system to this image:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:latest

GNOME

Builds with the GNOME desktop environment are available in both desktop and deck flavors. These builds come with the following additional features:

Important

ISOs can be downloaded from our releases page here, and a helpful install guide can be found here.

To rebase an existing ostree system to the desktop release:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome:latest

To rebase an existing ostree system to the desktop with Nvidia drivers release:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-nvidia:latest

Warning

Due to an upstream bug, Bazzite cannot be used on Steam Decks with 64GB eMMC storage at this time.

To rebase an existing ostree system to the Steam Deck/HTPC release:

podman pull ghcr.io/ublue-os/config && rpm-ostree install --assumeyes --apply-live --force-replacefiles $(find ~/.local/share/containers -name ublue-os-signing.noarch.rpm 2>/dev/null) && rpm-ostree rebase --uninstall $(rpm -q ublue-os-signing-* --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{Arch}') ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome: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 (So go ahead and install that obscure VPN software you spent an hour trying to get working in SteamOS). Additionally, Bazzite is updated multiple times a week with packages from upstream Fedora, 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)

KDE Vapor Theme KDE VGUI2 Theme Steam Game Mode Waydroid GNOME Vapor Theme GNOME VGUI2 Theme

Custom Packages

Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built on Copr in bazzite and bazzite-multilib.

Package Status
ds-inhibit Build Status
extest Build Status
gamescope Build Status
gamescope-session Build Status
gnome-shell-extension-bazzite-menu Build Status
gnome-shell-extension-caribou-blocker Build Status
gnome-shell-extension-hanabi Build Status
gnome-shell-extension-search-light Build Status
gnome-shell-extension-compiz-windows-effect Build Status
jupiter-fan-control Build Status
jupiter-hw-support-btrfs Build Status
mangohud Build Status
mesa Build Status
powerbuttond Build Status
python3-hid Build Status
ryzenadj Build Status
sddm-sugar-steamOS Build Status
sdgyrodsu Build Status
steamdeck-kde-presets Build Status
steamdeck-kde-presets-desktop Build Status
steam_notif_daemon Build Status
udisks2 Build Status
vpower Build Status

Additionally, the following packages are used from other Copr repos:

Package Status
distrobox-git Build Status
gcadapter_oc-kmod Build Status
gnome-vrr Build Status
gradience Build Status
hl2linux-selinux Build Status
latencyflex-vulkan-layer Build Status
noise-suppression-for-voice Build Status
obs-vkcapture Build Status
openrgb-kmod Build Status
steamdeck-kmod Build Status
system76-scheduler Build Status
wallpaper-engine-kde-plugin Build Status

Verification

These images are signed with sigstore's cosign. 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

Repography logo / Recent Activity Time period

Timeline graph Issue status graph Pull request status graph Top contributors

Repography logo / Top Contributors

Top contributors

Special Thanks

Bazzite is a community effort and wouldn't exist without everyone's support. Below are some of the people who've helped us along the way:

  • evlaV - For making Valve's code available and for being this person.
  • ChimeraOS - For gamescope-session and for valuable support along the way.
  • Jovian-NixOS - For supporting us with technical issues and for creating a similar project. Seriously, go check it out. It's our Nix-based cousin.
  • Steam Deck Homebrew - For choosing to support distributions other than SteamOS despite the extra work, and a special thanks to PartyWumpus for getting Decky Loader working with SELinux for us.
  • cyrv6737 - For the initial inspiration and the base that became bazzite-arch.

Build Your Own

Bazzite is built entirely in GitHub and creating your own custom version of it is as easy as forking this repository, adding a private signing key, and enabling GitHub actions.

Familiarize yourself on keeping secrets in github. You'll need to generate a new keypair with cosign. The public key can be in your public repo (Your users need it to check the signatures), and you can paste the private key in Settings -> Secrets -> Actions with the name SIGNING_SECRET.

We also ship a config for the popular pull app if you'd like to keep your fork in sync with upstream. Enable this app on your repo to keep track of Bazzite changes while also making your own modifications.

bazzite's People

Contributors

castrojo avatar dependabot[bot] avatar eyecantcu avatar fiftydinar avatar gecked-deck avatar github-actions[bot] avatar karajan9 avatar kylegospo avatar nicknamenamenick avatar rodoma92 avatar tulilirockz avatar zindswini avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.