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.
These images are customized how I want, based on the great work by team ublue os.
Images built:
Based on:
In addition to the packages/config provided by base images, this image:
just setup-flatpak-repos
command to remove the fedora
flatpak remote (and all apps from it) and setup the flathub
remote (see below)just install-apps-gnome
to install the now missing apps (plus a few nice extras)just
recipe with -n
for a dry-run, eg: just -n install-apps-creative
luks-enable-tpm2-autounlock
- backup /etc/crypttab
and systemd-cryptenroll
s TPM2 for unlock; requires existing LUKS2 passwordluks-disable-tpm2-autounlock
- restores the backup of /etc/crypttab
and safely systemd-cryptenroll
wipes TPM2 unlock slotA 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.
For the best experience, install from an official Fedora OSTree ISO:
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:
silverblue-custom
silverblue-nvidia-custom
kinoite-custom
kinoite-nvidia-custom
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
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