Files
OrionOS/README.md
T
2026-07-23 12:14:34 -04:00

170 lines
4.6 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.
# SkyOS
A BeOS-inspired Linux desktop built from scratch in C. Custom window manager, deskbar, launcher, GTK theme, and graphical installer — all running on Arch Linux with a bootable ISO.
![SkyOS Desktop](docs/screenshot.png)
---
## What it is
SkyOS is a complete desktop environment built on X11/Xlib with a distinctive dark blue aesthetic. It ships as a bootable ISO you can try live or install to disk.
**Components**
| Component | Description |
|-----------|-------------|
| `skywm` | Stacking window manager — titlebars, 3-button close/maximize/minimize, snap-to-edge, double-click maximize |
| `skydeskbar` | Sidebar panel — clock, date, task list, CPU/RAM/battery status |
| `skylauncher` | App launcher — keyboard-driven grid of application shortcuts |
| `skyinstall-gui` | Graphical installer wizard — disk selection, user setup, live progress |
| `SkyOS GTK theme` | Matching dark theme for GTK 2/3 apps |
---
## Building the ISO
**Requirements:** Docker Desktop (Mac/Windows/Linux)
```bash
./build-iso.sh
```
Output: `dist/skyos-YYYYMMDD.iso`
The build runs entirely inside a Docker container — no Arch Linux install required on the host. First build downloads ~600 MB of packages and takes 10–20 minutes. Subsequent builds are fast thanks to Docker layer caching.
### What the build does
1. Starts from the official `archlinux:latest` Docker image
2. Installs `archiso` and build tools
3. Builds the SkyOS binaries (`skywm`, `skydeskbar`, `skylauncher`, `skyinstall-gui`)
4. Assembles an archiso profile with the full package set
5. Produces a hybrid ISO that boots on both UEFI and legacy BIOS hardware
---
## Flashing to USB
**Balena Etcher (recommended):** https://etcher.balena.io — drag the ISO, pick the USB, flash.
**Command line (Mac/Linux):**
```bash
# Find your USB drive first
diskutil list # macOS
lsblk # Linux
# Flash (replace diskN / sdX)
sudo dd if=dist/skyos-*.iso of=/dev/diskN bs=4m # macOS
sudo dd if=dist/skyos-*.iso of=/dev/sdX bs=4M # Linux
```
---
## Booting
Boot from the USB. SkyOS starts the live desktop automatically — no login required (user: `sky`, password: `skyos`).
**Intel Mac notes:**
- Hold `Option` at startup to select the USB boot device
- WiFi uses the `broadcom-wl` driver (loaded automatically)
- Trackpad: tap-to-click and two-finger scroll are enabled by default
- Audio uses PipeWire + SOF firmware for Intel HDA
---
## Installing to disk
Click **Install SkyOS** in the launcher, or run `sudo skyinstall-gui` from a terminal.
The graphical installer walks through:
1. Disk selection (shows all disks ≥ 4 GB with model and size)
2. Hostname, username, and password
3. Review screen with erase warning
4. Live installation with progress bar and log
5. Reboot
The installer auto-detects UEFI vs legacy BIOS and sets up the appropriate bootloader (`systemd-boot` for UEFI, `GRUB` for BIOS).
---
## Included software
| Category | Applications |
|----------|-------------|
| Browser | Firefox |
| Office | OnlyOffice |
| Files | Thunar |
| Terminal | XTerm |
| Video | mpv |
| Images | Viewnior |
| PDF | Evince |
| Text editor | Mousepad |
| Audio | PipeWire, pavucontrol |
| Network | NetworkManager, nm-applet |
| Bluetooth | bluez, blueman |
| Compositor | picom (GLX, xrender fallback) |
| Notifications | dunst |
---
## Building from source (without Docker)
Requires an Arch Linux system with `libx11`, `libxft`, `fontconfig` development headers.
```bash
make # build all components
make install # install to /usr/local (run as root)
```
Individual components:
```bash
make -C wm # skywm
make -C deskbar # skydeskbar
make -C launcher # skylauncher
make -C installer # skyinstall-gui
```
---
## Project layout
```
OS/
├── wm/ skywm window manager (C/Xlib)
├── deskbar/ skydeskbar panel (C/Xlib/Xft)
├── launcher/ skylauncher app grid (C/Xlib/Xft)
├── installer/ skyinstall-gui + skyinstall backend
├── themes/
│ ├── SkyOS/ GTK 2/3 theme
│ ├── picom.conf compositor config
│ └── skywallpaper wallpaper setter
├── iso/
│ └── docker/ Dockerfile + entrypoint.sh (ISO builder)
├── build-iso.sh one-command ISO build script
└── Makefile
```
---
## Keyboard shortcuts
| Shortcut | Action |
|----------|--------|
| `Alt + F1` | Open launcher |
| `Alt + F4` | Close window |
| `Alt + F10` | Toggle maximize |
| `Super + ←` | Snap window left |
| `Super + →` | Snap window right |
| `Alt + drag` | Move window |
| `XF86MonBrightness↑↓` | Screen brightness |
| `XF86Audio*` | Volume / mute |
---
## License
MIT