Files
OrionOS/Makefile
T
nmemmertandClaude Sonnet 4.6 1340bf012c Phase 4: SkyKit library + Rigel file manager; fix text centering
SkyKit (skykit/):
- Shared palette constants, font setup, and Xlib/Xft drawing utilities
- sk_fill, sk_rect, sk_line, sk_text, sk_text_clip, sk_textw, sk_baseline
- Builds as libskykit.a, consumed by Rigel and future shell components

Rigel (rigel/):
- Native C/Xlib file manager with SkyKit
- Sidebar with 8 bookmarks (Home, Desktop, Documents, Downloads, etc.)
- Editable path bar (Ctrl+L or '/' to activate, Enter to navigate)
- Sortable columns: Name / Size / Modified (click header to sort/reverse)
- Colored type badges: DIR, IMG, SND, VID, ZIP, SRC, PDF, TXT, EXE
- Double-click to open dirs or files (xdg-open)
- Keyboard: ↑↓ select, Enter open, Backspace back, Ctrl+H toggle hidden
- Right-click menu updated: "File Manager" now launches rigel

Text centering fix (deskbar + wm):
- Root cause: draw_str added glyph-specific ext.height/ext.y offset, and
  all callers used hardcoded (H-10)/2 magic numbers instead of font metrics
- Fix: draw_str now takes y as a direct baseline; str_baseline() computes
  (strip_y + strip_h + ascent - descent) / 2 for consistent centering
- WM titlebar: same fix using font_title->ascent/descent
- Affects: "Orion ▾" button, clock, date, app list, flyout menu items,
  letter icons, and all window titlebars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-23 15:40:03 -04:00

75 lines
1.9 KiB
Makefile

# OrionOS — top-level build
# Usage:
# make — build all components
# make install — install binaries + theme to /usr/local
# make clean — remove build artifacts
# make iso — build the bootable ISO (requires Arch Linux + archiso)
.PHONY: all wm deskbar launcher installer nebula orionpkg skykit rigel clean install iso
all: wm deskbar launcher installer nebula orionpkg skykit rigel
wm:
$(MAKE) -C wm
deskbar:
$(MAKE) -C deskbar
launcher:
$(MAKE) -C launcher
installer:
$(MAKE) -C installer
nebula:
$(MAKE) -C nebula
orionpkg:
$(MAKE) -C orionpkg
skykit:
$(MAKE) -C skykit
rigel:
$(MAKE) -C rigel
clean:
$(MAKE) -C wm clean
$(MAKE) -C deskbar clean
$(MAKE) -C launcher clean
$(MAKE) -C installer clean
$(MAKE) -C nebula clean
$(MAKE) -C orionpkg clean
$(MAKE) -C skykit clean
$(MAKE) -C rigel clean
install: all
# binaries
install -Dm755 wm/orionwm /usr/local/bin/orionwm
install -Dm755 deskbar/oriondeskbar /usr/local/bin/oriondeskbar
install -Dm755 launcher/orionlauncher /usr/local/bin/orionlauncher
install -Dm755 themes/orionwallpaper /usr/local/bin/orionwallpaper
install -Dm755 nebula/nebula /usr/local/bin/nebula
install -Dm755 orionpkg/orionpkg /usr/local/bin/orionpkg
install -Dm755 rigel/rigel /usr/local/bin/rigel
# GTK theme
mkdir -p /usr/share/themes
cp -r themes/OrionOS /usr/share/themes/
# picom config
install -Dm644 themes/picom.conf /etc/orionos/picom.conf
# wallpaper
mkdir -p /usr/share/orionos/wallpapers
bash themes/wallpapers/generate-default.sh || true
cp -f themes/wallpapers/orionos-default.png /usr/share/orionos/wallpapers/ 2>/dev/null || true
@echo ""
@echo "OrionOS installed. Add this to ~/.xinitrc to start:"
@echo ""
@echo " orionwallpaper"
@echo " picom --config /etc/orionos/picom.conf &"
@echo " oriondeskbar &"
@echo " exec orionwm"
iso:
chmod +x build-iso.sh
./build-iso.sh