bsherman / ublue-custom

Custom Fedora immutable desktop images with unfiltered Flathub, distrobox, automatic updates, and drivers (nvidia and xbox)
Apache License 2.0
12 stars 1 forks source link

ublue-custom

build-ublue

Custom Fedora immutable desktop images which are mostly stock, plus the few things that are needed to make life good on my family's laptops.

What is this?

These images are customized how I want, based on the great work by team ublue os.

Images built:

Based on:

Features

In addition to the packages/config provided by base images, this image:

Applications

Just Customizations

A just task runner default config is included for easy customization after first boot. It will copy a template to your home directory.

After that run ujust to get a list of default commands ( a sample set of commands is included below ):

`ujust
Click here to view the Universal Blue just documentation
Available commands:
 - bios                           # Boot into this device's BIOS/UEFI screen
 - changelogs                     # Show the changelog
 - chsh new_shell                 # Change the user's shell
 - configure-nvidia ACTION="prompt" # Configure the Nvidia driver
 - distrobox-fedora-custom        # Create a Fedora (bsherman custom) container
 - enroll-secure-boot-key         # Enroll Nvidia driver & KMOD signing key for secure boot - Enter password "ublue-os" if prompted
 - install-apps-creative          # Install Creative Media Apps
 - install-apps-gnome             # Install typical GNOME apps
 - install-apps-misc              # Install Other misc apps for my home users
 - install-apps-productivity      # Install Productivity and Communications apps
 - install-games-educational      # Install educational games
 - install-games-light            # Install light/casual games
 - install-games-linux            # Install Linux games
 - install-games-minecraft        # Install Minecraft games
 - install-games-steam            # Install Steam with MangoHud, Gamescope and Prototricks
 - install-obs-studio-portable    # Install obs-studio-portable from wimpysworld, which bundles an extensive collection of 3rd party plugins
 - install-pwa-flatpak-overrides  # Give browsers permission to create PWAs (Progressive Web Apps)
 - logs-last-boot                 # Show all messages from last boot
 - logs-this-boot                 # Show all messages from this boot
 - toggle-updates ACTION="prompt" # Turn automatic updates on or off
 - auto-update ACTION="prompt"    # alias for `toggle-updates`
 - toggle-user-motd               # Toggle display of the user-motd in terminal
 - update VERB_LEVEL="full"       # Update system, flatpaks, and containers all at once
 - upgrade VERB_LEVEL="full"      # alias for `update`
 - update-firmware                # Update device firmware

Check the just website for tips on modifying and adding your own recipes.

Installation & Usage

Install from Upstream

For the best experience, install from an official Fedora OSTree ISO:

Rebase to Custom

After installation is complete, use the appropriate rebase command to install one of these custom images.

Note: for IMAGE_NAME in the commands below, substitute one of these image names:

We build latest which currently points to Fedora 40 (Fedora 41 will become latest after it releases and related packages have stabilized). Fedora 38 and 39 are no longer built here. You can chose a specific version by using the 40 tag instead of latest:

sudo rpm-ostree rebase \
    ostree-unverified-registry:ghcr.io/bsherman/IMAGE_NAME:latest

We build date tags as well, so if you want to rebase to a particular day's release:

sudo rpm-ostree rebase \
    ostree-unverified-registry:ghcr.io/bsherman/IMAGE_NAME:39-20240223

Verification

These images are signed with sigstore's cosign using both OpenID Connect with Github and a repo specific keypair. You can verify the signature by running one the following command:

cosign verify \
    --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
    --certificate-identity-regexp "https://github.com/bsherman/ublue-custom" \
    ghcr.io/bsherman/IMAGE_NAME

cosign verify --key cosign.pub ghcr.io/bsherman/IMAGE_NAME