Files
OrionOS/README.md
T
Claude 0d874617dd Fork ElemetryOS with macOS-style window decorations
- Move traffic-light buttons to the LEFT side of titlebars (close/minimize/maximize)
  in macOS order, using fixed left-pad positions instead of right-edge offsets
- Adopt macOS dark-mode color palette: #3C3C3C active titlebar, #2C2C2C inactive,
  traffic-light colors #FF5F57/#FEBC2E/#28C840, near-black #1C1C1C desktop
- Center window title text in the titlebar (macOS style), clamped to avoid
  overlapping the left button cluster
- Thin 1px window borders replacing the original 3px beveled border
- macOS blue (#4A90D9) selection highlight in the context menu
- Neutral dark context menu (#2C2C2C) with subtle separators and text indent
- Update README to document the ElemetryOS macOS fork identity and design changes
2026-08-30 19:40:11 +00:00

264 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OrionOS — ElemetryOS macOS Fork
A macOS-inspired Linux desktop forked from ElemetryOS, 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 macOS dark-mode 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.
### macOS design language
This fork re-skins the window manager with macOS design conventions:
- **Traffic-light buttons on the left** — close (red), minimize (yellow), maximize (green), just like macOS
- **macOS dark-mode palette** — near-black desktop, `#3C3C3C` active titlebars, `#2C2C2C` inactive
- **Centered window titles** — title text centered in the titlebar, macOS-style
- **Thin 1 px borders** — minimal window chrome, no thick bevels
- **macOS blue selection** (`#4A90D9`) in context menus and snap overlays
### 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)
```bash
./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:**
```bash
# 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.
```bash
make # build all components
make install # install to /usr/local (run as root)
```
Individual components:
```bash
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