Fp OS
This is my personalized setup for Fp OS, a custom version of Bazzite (Fedora Kinoite + KDE Plasma + Nvidia). It’s tailored specifically for my own use and this document is mostly a reminder for myself on how things work and how to manage it.
⚠️ Disclaimer: This project is highly personalized for myself (Fptbb) own use and workflow. It includes specific configurations (like modified application providers with pre-set client IDs) and branding tailored to my preferences. It is published publicly primarily as a reference, for my own amusement, or for others to see an example of a custom bootc
image. It is NOT recommended for direct installation or use by others unless you are comfortable with these personalizations or plan to fork and modify it extensively. You have been warned!
Website: os.fpt.icu

Core Idea

- Base:
ghcr.io/ublue-os/bazzite-dx-nvidia-open:stable
. This gives me Fedora Kinoite (KDE Plasma) with all the Bazzite gaming goodies, Developer Experience (DX) tools, and Nvidia drivers pre-installed. - Immutable: Uses
bootc
andostree
for a stable, predictable, and robust system. - My Customizations: I’ve added personal branding, a few specific system tweaks, and my preferred default Flatpaks.
- Flatpak First: Most apps I use are installed via Flatpak. The base image modifications are for things that can’t be easily Flatpak’d or require system-level configurations.

What’s Inside (My Custom Bits)

- Custom Branding:
- KDE “About System”: Shows “Fp OS - Bazzite Edition” with my logo (
fp-logo.png
) and a link to os.fpt.icu (defined insystem_files/etc/xdg/kcm-about-distrorc
). - Wallpapers: Custom default desktop and lockscreen wallpapers located in
system_files/usr/share/backgrounds/fp-os/
. - MOTD: The “Message of the Day” in the terminal is customized to “Fp OS Bazzite Edition” and includes a fun, foxy tip (
system_files/usr/share/ublue-os/motd/bazzite.md
andsystem_files/usr/share/ublue-os/motd/tips/40-fptbb.md
).
- KDE “About System”: Shows “Fp OS - Bazzite Edition” with my logo (
- KDE Google Account Tweaks:
- The
system_files/usr/share/accounts/providers/kde/google.provider
file is modified. This is to fix Google Drive Integration with KDE, primarily because Google’s default setup can be problematic. This file includes specific OAuth client details.
- The
- Default Flatpaks (installed by
build.sh
viarepo_files/flatpaks
in addition to Bazzite’s defaults):com.bitwarden.desktop
(Bitwarden)com.dec05eba.gpu_screen_recorder
(GPU Screen Recorder)com.spotify.Client
(Spotify)com.vysp3r.ProtonPlus
(ProtonPlus)dev.vencord.Vesktop
(Vesktop for Discord)io.missioncenter.MissionCenter
(Mission Center)app.zen_browser.zen
(Zen Browser)org.gimp.GIMP
(GIMP)org.mozilla.Thunderbird
(Thunderbird)org.telegram.desktop
(Telegram Desktop)org.vinegarhq.Sober
(Sober)org.vinegarhq.Vinegar
(Vinegar)rest.insomnia.Insomnia
(Insomnia)

How to Rebase to This

To switch an existing bootc
-compatible system to this image (or to update it):
sudo bootc switch ghcr.io/fptbb/fp-os:latest
Then reboot. To check the status: sudo bootc status
.
An ISO can also be built (see building section) which uses a kickstart (iso.toml
) to automatically rebase to this image upon installation.

Acknowledgements and Resources

This project wouldn’t be what it is without the inspiration and code from various other awesome projects and people in the community. Big thanks to:

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.