nmemmertandClaude Sonnet 4.6 56031c8c6f Fix ARM64 ISO build: pacman.conf repos, kernel preset, mkinitcpio
Three fixes for the 'vmlinuz-* not found' failure:

1. Override releng profile's pacman.conf to add [alarm] and [aur] repos.
   linux-aarch64 lives in [alarm] — without this the kernel package was
   silently missing from the airootfs and /boot was empty.

2. Remove linux.preset from releng airootfs (references vmlinuz-linux,
   the x86_64 kernel name that doesn't exist on ALARM).

3. Add linux-aarch64.preset to the airootfs with an 'archiso' preset entry
   (ALL_kver=/boot/vmlinuz-linux-aarch64, archiso_image=initramfs-linux-aarch64.img).
   mkarchiso looks for this 'archiso' preset to build the live initramfs.

4. Switch customize_airootfs.sh from mkinitcpio -P to mkinitcpio -p linux-aarch64
   so only the aarch64 preset runs (not the stale x86_64 linux preset).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-24 11:45:31 -04:00

OrionOS

A BeOS-inspired Linux desktop built from scratch in C. Custom window manager, panel, app launcher, settings panel, package manager, and graphical installer — all running on Arch Linux, shipped as a bootable ISO.


What it is

OrionOS is a complete desktop environment built on X11/Xlib with a dark navy aesthetic. It ships as a bootable ISO you can try live or install to disk. Every shell component is written in native C with no toolkit dependency — just Xlib and Xft.

Components

Binary Name Description
orionwm OrionWM Stacking window manager — titlebars, 3-button decorations, snap-to-edge, Alt+Tab switcher
oriondeskbar OrionDeskbar Sidebar panel — clock, task list, workspace switcher, XEMBED system tray, CPU/RAM status
orionlauncher OrionLauncher App launcher — reads .desktop files, category tabs, live search
nebula Nebula Settings panel — Display, Appearance, Input, and About tabs
orionpkg OrionPkg Package manager — lists available updates, runs pacman -Syu with live log
orioninstall-gui Installer Graphical installer wizard — disk, timezone, keyboard, user, progress
orionwallpaper Wallpaper Sets or restores the desktop wallpaper

Building the ISO

Requirements: Docker Desktop (Mac/Windows/Linux)

./build-iso.sh

Output: dist/orionos-YYYYMMDD.iso

The build runs entirely inside a Docker container — no Arch Linux install required on the host. First build downloads ~700 MB of packages and takes 10–20 minutes. Subsequent builds are faster thanks to Docker layer caching.

What the build does

  1. Starts from archlinux:latest
  2. Installs archiso and all build tools
  3. Compiles all OrionOS binaries inside the container
  4. Assembles an archiso profile with the full package set
  5. Bakes in the Plymouth boot splash (dark navy + accent blue)
  6. Produces a hybrid ISO bootable on UEFI and legacy BIOS hardware

Flashing to USB

Balena Etcher (recommended): https://etcher.balena.io — drag the ISO, pick the USB, flash.

Command line:

# Find your USB drive
diskutil list          # macOS
lsblk                  # Linux

# Flash (replace diskN / sdX)
sudo dd if=dist/orionos-*.iso of=/dev/diskN bs=4m   # macOS
sudo dd if=dist/orionos-*.iso of=/dev/sdX  bs=4M    # Linux

Booting

Boot from the USB. OrionOS starts the live desktop automatically.

  • Live user: orion / Password: orionos
  • Intel Mac: Hold Option at startup to select the USB boot device
  • WiFi: broadcom-wl driver loads automatically
  • Trackpad: tap-to-click and two-finger natural scroll enabled by default
  • Audio: PipeWire + SOF firmware for Intel HDA

Installing to disk

Right-click the desktop → App Launcher → find Install OrionOS, or run sudo orioninstall-gui from a terminal.

The wizard walks through:

  1. Disk selection — lists all disks ≥ 4 GB with model and size
  2. Timezone & Keyboard — searchable timezone list (37 zones), 20 keyboard layouts
  3. User account — hostname, username, password
  4. Review — erase warning before anything is written
  5. Installing — live progress bar and log output
  6. Done — reboot prompt

The installer auto-detects UEFI vs legacy BIOS and sets up systemd-boot or GRUB accordingly.


Desktop usage

Right-click menu

Right-click anywhere on the desktop:

Item Action
App Launcher Open the application grid
Terminal Launch Alacritty
File Manager Open Thunar
Text Editor Open Mousepad
Web Browser Open Firefox
System Monitor htop in a terminal
Volume Control pavucontrol
System Settings Open Nebula
Software Updates Open OrionPkg
Display Settings arandr
Change Wallpaper Reset to default wallpaper
Restart OrionWM Restart the window manager
Quit OrionOS End the session

Keyboard shortcuts

Shortcut Action
Alt + F1 Open app launcher
Alt + F4 Close focused window
Alt + F9 Minimize focused window
Alt + F10 Toggle maximize
Alt + Tab Visual window switcher
Super + ← Snap window left half
Super + → Snap window right half
Super + ↑ Maximize window
Super + ↓ Restore window
Super + S Open Nebula (System Settings)
PrintScreen Full screenshot → ~/Pictures
Shift + PrintScreen Region screenshot → ~/Pictures
XF86MonBrightness↑↓ Screen brightness
XF86AudioMute Toggle mute
XF86AudioLowerVolume Volume down
XF86AudioRaiseVolume Volume up

Settings (Nebula)

Open with Super+S, right-click → System Settings, or nebula &.

Tab Controls
Display Resolution (cycles via xrandr), DPI (96/144), Brightness
Appearance Reset wallpaper, open ~/Pictures, shows active theme info
Input Key repeat delay + rate, tap-to-click, natural scrolling
About Version, component list, platform info

Changes are staged and applied when you click Apply (or press Enter).


Software Updates (OrionPkg)

Open with right-click → Software Updates or orionpkg &.

  • Runs checkupdates on launch to list available upgrades
  • Shows package name, current version, and new version
  • Update All runs pkexec pacman -Syu with a live log and progress bar
  • Refresh re-checks without restarting the app

Included software

Category Application
Browser Firefox
Office OnlyOffice
Files Thunar
Terminal Alacritty
Video mpv
Images Viewnior
PDF Evince
Text editor Mousepad
Audio PipeWire, pavucontrol
Network NetworkManager, nm-applet
Bluetooth bluez, blueman
Compositor picom
Notifications dunst
Clipboard parcellite (tray icon + history)
Screenshots scrot
Icons Papirus Dark

Building from source

Requires an Arch Linux system (or container) with libx11, libxft, and fontconfig development headers.

make          # build all components
make install  # install to /usr/local (run as root)

Individual components:

make -C wm        # orionwm
make -C deskbar   # oriondeskbar
make -C launcher  # orionlauncher
make -C nebula    # nebula
make -C orionpkg  # orionpkg
make -C installer # orioninstall-gui + orioninstall

Project layout

OS/
├── wm/               orionwm — window manager (C/Xlib)
├── deskbar/          oriondeskbar — panel (C/Xlib/Xft)
├── launcher/         orionlauncher — app grid (C/Xlib/Xft)
├── nebula/           nebula — settings panel (C/Xlib/Xft)
├── orionpkg/         orionpkg — package manager GUI (C/Xlib/Xft)
├── installer/
│   ├── orioninstall-gui.c  graphical installer wizard
│   └── orioninstall        backend install script
├── themes/
│   ├── OrionOS/      GTK 2/3 theme
│   ├── picom.conf    compositor config
│   └── orionwallpaper  wallpaper setter script
├── iso/
│   └── docker/
│       ├── Dockerfile      Arch Linux-based ISO builder image
│       └── entrypoint.sh   full build pipeline
├── build-iso.sh      one-command ISO build
└── Makefile

Component naming

OrionOS components are named after stars in the Orion constellation.

Name Role
OrionWM Window manager
OrionDeskbar The panel (three icons like Orion's belt)
Nebula Settings panel
Rigel (planned) Native file manager

Release names follow Orion's belt stars: v1 Mintaka, v2 Alnitak, v3 Alnilam.


License

MIT

S
Description
No description provided
Readme
411 KiB
0 Stars 1 Watchers 0 Forks
Languages
C 78.7%
Shell 16.9%
Makefile 2%
CSS 1.7%
Dockerfile 0.7%