Abora OS is still a focused project, which means contributions land with more direct impact than they would in a large distribution. The best way to help is to keep changes scoped, test whatever you touch, and resist the temptation to bundle unrelated cleanup into the same commit as a feature. The sections below walk through everything you need to get oriented — from verifying your local build works, to understanding the repo layout, to the exact flow for pushing without clobbering the main branch.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AnimatedGTVR/abora-os/llms.txt
Use this file to discover all available pages before exploring further.
Before You Change Anything
The single most important prerequisite is being able to build and boot the current ISO yourself. If the baseline is broken for you, it is hard to know whether your change introduced a regression.Build the ISO
Run a clean ISO build from the repo root. This exercises the full Nix flake evaluation and copies the finished image into
out/iso/.Boot it in QEMU
Boot the ISO in a QEMU graphical window to confirm the live environment starts correctly.
Repo Layout
Understanding which directory handles what prevents accidental changes in the wrong place. Here is a quick map — seedocs/project-layout.md for the full detail.
assets/ — Branding and visual files
assets/ — Branding and visual files
Visual and branding files used by the live image, boot flow, wallpapers, and desktop defaults.
assets/bootloader/— Limine bootloader background and artworkassets/plymouth/— Plymouth splash theme assetsassets/wallpapers/collection/— bundled wallpaper imagesassets/wallpaper-themes/— wallpaper theme configurationsassets/fastfetch-config.jsonc— Fastfetch layout config for the live sessionassets/fastfetch-logo.txt— ASCII art logo shown by Fastfetch
docs/ — Project documentation
docs/ — Project documentation
Project docs for development, installation, release work, and wiki publishing.
docs/install-checklist.mddocs/release-checklist.mddocs/hardware-testing.mddocs/roadmap.mddocs/wiki/— extended wiki articles
nix/ — NixOS configuration
nix/ — NixOS configuration
The NixOS configuration that builds the live ISO and the installed system modules.
nix/profiles/live.nix— live ISO profile, live boot service, bundled installer assetsnix/modules/installed-base.nix— installed Abora base modulenix/modules/abora-options.nix— Abora option layer used by installed configsnix/modules/anix.nix— ANIX NixOS module
scripts/ — Shell scripts
scripts/ — Shell scripts
Shell scripts for the live environment, installer, installed commands, ISO builds, release metadata, checks, and QEMU booting.
scripts/abora-boot.sh— live stage-one boot handoffscripts/abora-installer.sh— Omarchy-inspired Denali installer and reconfiguration TUIscripts/abora-desktop-profiles.sh— supported desktop profile definitionsscripts/abora-session-setup.sh— first-session defaultsscripts/build-iso.sh— ISO-only build pathscripts/check-scripts.sh— repo script and runtime sanity checksscripts/check-desktops.sh— evaluates every supported desktop profilescripts/release-metadata.sh— checksums, manifest, and release notesscripts/run-qemu.sh— QEMU ISO, fresh-disk, disk-only, and serial helpers
vendor/tinypm/ — Vendored TinyPM v4
vendor/tinypm/ — Vendored TinyPM v4
TinyPM v4 source used for Abora
grab, search, term, start, supdate, and the Abora/ANIX/Nix system bridges. Changes here affect the TinyPM release tarball produced by make tinypm-package.Common Development Tasks
Build the ISO
Standard build for live image and installer iteration.
Full release bundle
Builds ISO + TinyPM package + checksums + manifest + release notes.
Refresh metadata
Regenerates release artifacts without rebuilding the ISO.
Test in QEMU
Boot the latest ISO in a graphical window, or use
make qemu-fresh for a clean disk.Script checks
Validates syntax, executability, and runtime behaviour of every script.
Desktop profile checks
Runs
nix-instantiate against all 21 desktop profiles to catch config regressions.Commit Hygiene
Clean commit history makes it easier for everyone to understand what changed and why. A few rules of thumb:- One feature or fix per commit. Do not bundle unrelated cleanup with feature work.
- Update docs if the workflow changed. If you change a
maketarget, a script interface, or a build output path, update the relevant docs in the same commit. - Do not leave broken release notes or mismatched version strings behind.
- Run
make checkbefore pushing. This validates script syntax, executability, and runtime behaviour across the full script set.
Pushing When the Remote Has Moved Ahead
Ifgit push origin main is rejected because someone else pushed first, use the rebase flow rather than a merge commit:
Roadmap Context
Knowing where the project is headed helps you understand whether a proposed change fits the current direction. Abora is on the v3 Denali track.v3 Denali priorities
v3 Denali priorities
- Keep the Omarchy-inspired installer style: large Abora wordmark, compact boxed fields, and minimal prompts
- Keep install validation strict enough to fail early before expensive
nixos-installwork - Make the installed desktop setup app useful for post-install reconfiguration
- Keep the desktop matrix green across all 21 supported desktop environments — GNOME, Plasma, Hyprland, Sway, XFCE, Cinnamon, MATE, Budgie, LXQt, Pantheon, i3, AwesomeWM, Openbox, Niri, River, Qtile, BSPWM, Fluxbox, IceWM, and Herbstluftwm
- Add more automated VM install smoke tests after ISO build
- Improve hardware test coverage for Wi-Fi laptops, NVIDIA systems, BIOS boot, and UEFI boot
- Document known install blockers immediately instead of letting users discover them late
Release direction
Release direction
- GitHub releases remain the primary public ISO distribution path
- Every release bundle must attach: ISO, checksums, manifest, release notes, and TinyPM package
- Required before publishing:
make check,make check-desktops, one full VM install, and one installed-system boot - Use
make isofor fast ISO-only iteration; reservemake releasefor full release bundles
Key Source Areas
Nix configuration
Live ISO profile, installed base module, ANIX module, and Abora options layer.
Shell scripts
Boot flow, installer TUI, build helpers, QEMU runners, and release tooling.
Assets
Bootloader artwork, Plymouth theme, wallpapers, and Fastfetch config.
TinyPM vendor
Vendored TinyPM v4 powering
grab, search, term, start, and supdate.