BinaryOS is a custom bootc image built on top of Bluefin-DX with Hyprland and an opinionated set of development tools. This image is designed primarily for my personal software development workflow, but you're welcome to use it, fork it, or submit issues and pull requests.
BinaryOS builds on Bluefin-DX's excellent developer experience foundation and adds:
- Hyprland: A dynamic tiling Wayland compositor for an efficient, keyboard-driven workflow
- Opinionated Development Tools: A curated set of tools and configurations optimized for my development workflow
- Personal Preferences: Custom configurations and tweaks that I've found useful over time
BinaryOS is available in two variants:
- Regular: Built on
bluefin-dx:stable-dailyfor systems with Intel/AMD graphics - NVIDIA: Built on
bluefin-dx-nvidia:stable-dailywith NVIDIA driver support
This is not meant to be a general-purpose distribution, but rather a personal daily driver that happens to be publicly available for others who might share similar preferences.
While this is a personal image, community contributions are welcome! If you encounter issues or have suggestions:
- Open an issue on this repository
- Submit a pull request with improvements
- For general bootc and Universal Blue questions:
- A machine running a bootc-compatible image (e.g., Bazzite, Bluefin, Aurora, or Fedora Atomic)
- Basic familiarity with bootc and container-based operating systems
From your existing bootc system, run:
For systems with Intel/AMD graphics:
sudo bootc switch ghcr.io/binarypie/binaryos:latestFor systems with NVIDIA graphics:
sudo bootc switch ghcr.io/binarypie/binaryos:latest-nvidiaThen reboot your system:
systemctl rebootAfter rebooting, you'll be running BinaryOS.
If BinaryOS isn't for you, you can switch back to your previous image:
sudo bootc status # Find your previous image
sudo bootc switch <your-previous-image>
systemctl rebootWant to create your own variant of BinaryOS? You're welcome to fork this repository! Here's how the build system works:
- Containerfile: The main build definition. This is where the base image is selected and the build process is orchestrated.
- build.sh: The primary customization script. This is where packages are installed and system configurations are applied.
- build.yml: GitHub Actions workflow that builds and publishes the image to GitHub Container Registry (GHCR).
If you fork this repository:
- Modify
build.shto add/remove packages and configurations - Update the
Containerfileif you want to change the base image - Push your changes - GitHub Actions will automatically build your image
- Your image will be available at
ghcr.io/<your-username>/<your-repo-name>
For detailed information about customizing the image, see the files mentioned above. They contain examples and documentation.
The repository includes workflows for creating bootable disk images (ISO, QCOW2, raw) using bootc-image-builder. These can be used for:
- Installing BinaryOS on bare metal (ISO)
- Testing in virtual machines (QCOW2)
- Deploying to cloud environments (raw)
The build-disk.yml workflow can generate these images automatically. After the workflow completes, disk images are available as artifacts in the GitHub Actions run.
You can also build disk images locally using the included just commands (see Justfile Documentation below).
BinaryOS is indexed on artifacthub.io to make it easier to discover and track. If you fork this image, you can list your own variant there as well using the artifacthub-repo.yml file.
Learn more in the Universal Blue Artifacthub discussion.
The repository includes a Justfile with commands for building and testing BinaryOS locally. just is a command runner that simplifies common development tasks.
Just is pre-installed on all Universal Blue images (including BinaryOS and Bluefin-DX). If you're using another system, install it from your package manager or see the just installation guide.
Run just without arguments to see all available commands. Here are the most useful ones:
just build- Build the BinaryOS container image locally (regular variant)just build-regular- Build the regular variant (Intel/AMD graphics)just build-nvidia- Build the NVIDIA variantjust build-all- Build both regular and NVIDIA variantsjust build-iso- Build a bootable ISO imagejust build-qcow2- Build a QCOW2 VM imagejust build-raw- Build a raw disk image
just run-vm-qcow2- Run BinaryOS in a VM using QCOW2 imagejust spawn-vm- Run BinaryOS using systemd-vmspawn
just clean- Clean build artifactsjust lint- Check shell scripts for issuesjust format- Format shell scripts
For detailed usage and additional commands, see the Justfile itself.
BinaryOS is part of the larger Universal Blue ecosystem. Check out these other custom images for inspiration:
- Bluefin-DX - The base image for BinaryOS
- m2Giles' OS - Another custom bootc image
- bOS - Custom image by bsherman
- Homer - Custom image by bketelsen
- Amy OS - Custom image by astrovm
- VeneOS - Custom image by Venefilyn
This project follows the same licensing as the Universal Blue project. See the LICENSE file for details.
BinaryOS is built on the shoulders of giants:
- Universal Blue for the excellent image-based desktop platform
- Project Bluefin for the outstanding developer experience foundation
- bootc for the bootable container technology
- Hyprland for the amazing Wayland compositor
- The Fedora and broader open source community