A personal, slightly opinionated Fedora Atomic image built with BlueBuild and the Universal Blue toolchain. Immutable base, Flatpak-first, with Steam baked in.
- GNOME with GDM, pre-configured via dconf
- Bazaar as the primary app store, with a curated catalogue spanning gaming, emulation, browsers, productivity, media, and more
- AppIndicator, Caffeine, and Quick Sound Switcher extensions enabled out of the box
- Inter and Comic Neue fonts installed system-wide
- Custom keybinds:
Super+T(terminal),Super+.(GNOME Characters),Super+U(system upgrade launcher)
- Flatpak via Flathub - the primary way to install apps
- Distrobox for containerised access to traditional package managers (see below)
- Podman configured for rootless operation, with linger enabled on first login
- Steam installed at the system level (not as a Flatpak)
A set of shell functions are available in any terminal session:
| Function | What it does |
|---|---|
gtns |
Interactive system upgrade: runs bootc upgrade + flatpak update, with optional cleanup and reboot |
getmedia |
yt-dlp shorthand for downloading video (-v) or audio (-a) with metadata and thumbnails |
setdns |
Configures DNS for the active NetworkManager connection (NextDNS supported) |
power |
Shorthand for reboot, shutdown, or suspend |
steam_shortcuts |
Lists or flushes Steam game .desktop shortcuts |
restore_app_guts |
Restores pre-written Flatpak configs and permission overrides for a given app |
A rootless Podman container definition is included for Jackett (a torrent indexer proxy). Enable it as a user service when needed:
systemctl --user enable --now jackettDistrobox lets you run a full Linux distribution inside a container that integrates with your desktop — useful when software only has a reliable install path for a specific distro, or when you want access to a traditional package manager without breaking the immutable base.
Step 1 - Create the container:
distrobox create --pull -Y -n arch -i archlinux:latest -ap "base-devel git"| Flag | Meaning |
|---|---|
--pull |
Always pull a fresh copy of the image, even if it's been pulled before |
-Y |
Auto-accept all prompts during container setup |
-n arch |
Name the container arch |
-i archlinux:latest |
Use the official Arch Linux cloud image |
-ap "base-devel git" |
Install these packages during initial setup |
Step 2 - Enter the container and install yay:
distrobox enter arch -- bash -c "git clone https://aur.archlinux.org/yay-bin.git && cd yay-bin && makepkg -si"| Part | Meaning |
|---|---|
distrobox enter arch |
Enter the container named arch |
-- |
Everything after this is run inside the container rather than on the host |
bash -c "..." |
Run the quoted string as a shell command |
git clone ... |
Download the yay build files from the AUR |
cd yay-bin |
Navigate into the cloned directory |
makepkg -si |
Build and install the package (requires base-devel) |
Once yay is installed, subsequent AUR packages can be installed with yay -S <package> from inside the container.
From any existing Fedora Atomic system:
sudo bootc switch ghcr.io/chrislowles/bog:latest
systemctl rebootFor NVIDIA hardware:
sudo bootc switch ghcr.io/chrislowles/bog-nvidia:latest
systemctl rebootImages are signed with Sigstore cosign. Verify with:
cosign verify --key cosign.pub ghcr.io/chrislowles/bog