nmemmertandClaude Sonnet 4.6 803ffe991f Phase 1/2 complete: system tray (XEMBED) + Plymouth boot splash
System tray in skydeskbar (Phase 1 #4):
- Claims _NET_SYSTEM_TRAY_S<screen> selection on startup and
  broadcasts MANAGER so nm-applet and other tray clients connect
- Handles _NET_SYSTEM_TRAY_OPCODE dock requests: XReparentWindow
  icon into the deskbar, sends XEMBED_EMBEDDED_NOTIFY
- Tray section is zero-height when empty; expands to DB_TRAY_H=26px
  when first icon embeds, shrinking back when last icon exits
- DestroyNotify / ReparentNotify clean up the icon list and
  reposition remaining icons; SelectionClear hands off gracefully
- Icon positions are updated (db_tray_reposition) whenever the app
  list changes and shifts the tray section vertically

Plymouth boot splash (Phase 2 #10):
- 'skyos' script-module theme: dark navy (#111520) background,
  "SkyOS" logo in accent blue (#90BBEE), thin progress bar
- 1×1 pixel bar_bg.png / bar_fg.png scaled at runtime by the
  Plymouth script — no large PNGs committed to the repo
- logo.png generated at build time by ImageMagick (same tool used
  for the wallpaper); build continues if ImageMagick is absent
- mkinitcpio HOOKS: added 'plymouth' after 'udev'
- Kernel cmdline: added 'splash' for UEFI systemd-boot entry
- customize_airootfs.sh: plymouth-set-default-theme skyos

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-23 13:32:27 -04:00
2026-07-23 12:14:34 -04:00
2026-07-23 12:14:34 -04:00
2026-07-23 12:14:34 -04:00
2026-07-23 12:14:34 -04:00

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


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)

./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):

# 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.

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

Individual components:

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

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%