Skip to content

fptbb/fp-os

Repository files navigation

Fp OS Logo Fp OS

Build Status Artifact Hub

Website: os.fpt.icu


Introduction

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.

Core Concept

  • 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 and ostree, 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.

Features & Customizations

Here's a summary of what makes Fp OS unique:

Branding

  • 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.

System-Level Changes & Additions

  • 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, and podman.socket.
  • Disabled Services: NetworkManager-wait-online.service is disabled to speed up boot times.

Included RPM Packages

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.

Default Flatpaks

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.

How to Use

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.

Building from Source

If you want to customize this image or build it yourself, you can use the provided Justfile.

Prerequisites

  • A container runtime like Podman.
  • Just, a command runner.

Build Instructions

  1. Clone the repository:
    git clone https://github.com/Fptbb/fp-os.git
    cd fp-os
  2. Build the container image:
    just build
  3. (Optional) Build a bootable disk image: You can create an ISO, QCOW2, or other disk image formats.
    # Build an ISO for installation
    just build-iso
    
    # Build a QCOW2 image for use in VMs
    just build-qcow2
    The generated images will be in the output/ directory.

Container Signing

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.

Acknowledgements

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.

License

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

About

A custom image of Bazzite for personal needs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •