Website: os.fpt.icu
Welcome to Fp OS! This project is a customized, bootable OS image based on Bazzite (a Fedora KDE variant), built using the Universal Blue image template.
While this is my personal daily driver OS, tailored to my specific workflow and preferences, it's also publicly available as a learning resource or a starting point for your own custom OS image. You can see how certain customizations are made, fork the project to suit your needs, or just draw inspiration for your own builds.
Disclaimer: This project includes personal branding and specific configurations that may not be suitable for everyone. It is recommended to review the customizations before use.
- Base Image:
ghcr.io/ublue-os/bazzite-dx-nvidia:stable
. This provides a solid foundation of Fedora Kinoite (KDE Plasma) with Bazzite's gaming enhancements, developer experience tools, and pre-installed Nvidia drivers. - Immutable & Atomic: Leveraging
bootc
andostree
, the system is reliable, predictable, and robust. Updates are atomic, and you can easily roll back to previous versions. - Customized: The base image is augmented with personal branding, system tweaks, additional packages, and my preferred set of Flatpaks.
- Flatpak-centric: Most applications are intended to be installed as Flatpaks. The base image modifications are for tools, system-level configurations, and packages that are not suitable for Flatpak.
Here's a summary of what makes Fp OS unique:
- KDE "About System": Displays "Fp OS - Bazzite Edition" with a custom logo and a link to the project website (configured in
system_files/etc/xdg/kcm-about-distrorc
). - Wallpapers: Custom default desktop and lockscreen wallpapers are included.
- MOTD: A custom "Message of the Day" is shown in the terminal.
- OS Info: The
/usr/lib/os-release
file is updated with Fp OS branding.
- Google Account Fix: The KDE Google Account provider is modified to improve Google Drive integration.
- Enabled Services: The following services are enabled by default:
nordvpnd
,tailscaled
,netbird
, andpodman.socket
. - Disabled Services:
NetworkManager-wait-online.service
is disabled to speed up boot times.
In addition to the standard Bazzite set, a variety of packages are installed for development (VS Code, Go, buildah), networking (NordVPN, Tailscale, Netbird), system utilities (yadm, kitty, zsh), and many more.
Comes with a curated selection of default applications including Bitwarden, Spotify, Vesktop (a Discord client), GIMP, Thunderbird, Mission Center, and many more. To be installed on the first start by the system.
You can switch an existing bootc
-compatible system (like Fedora, Bazzite, or Bluefin) to this image.
Rebase Command:
sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/fptbb/fp-os:latest
After the command completes, reboot your system. You can check the status at any time with sudo bootc status
.
If you want to customize this image or build it yourself, you can use the provided Justfile
.
- Clone the repository:
git clone https://github.com/Fptbb/fp-os.git cd fp-os
- Build the container image:
just build
- (Optional) Build a bootable disk image:
You can create an ISO, QCOW2, or other disk image formats.
The generated images will be in the
# Build an ISO for installation just build-iso # Build a QCOW2 image for use in VMs just build-qcow2
output/
directory.
This repository is configured for container signing with cosign
. If you fork this project, it is highly recommended to set up your own signing keys to ensure the integrity of your images. For instructions, please refer to the TUTORIAL.md
file in this repository.
This project is made possible by the work of the open-source community. Special thanks to:
- The Universal Blue project and all its contributors.
- The creators of the base images and templates.
- Inspiration from other custom OS projects like VeneOS, amyos, and m2os.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.