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>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-07-23 15:40:03 -04:00
1 parent e3bc761f25
commit 1340bf012c
11 files changed
+1113 -18

No files matched your search

+11 -2
View File
@@ -5,9 +5,9 @@
# make clean — remove build artifacts
# make iso — build the bootable ISO (requires Arch Linux + archiso)
.PHONY: all wm deskbar launcher installer nebula orionpkg clean install iso
.PHONY: all wm deskbar launcher installer nebula orionpkg skykit rigel clean install iso
all: wm deskbar launcher installer nebula orionpkg
all: wm deskbar launcher installer nebula orionpkg skykit rigel
wm:
$(MAKE) -C wm
@@ -27,6 +27,12 @@ nebula:
orionpkg:
$(MAKE) -C orionpkg
skykit:
$(MAKE) -C skykit
rigel:
$(MAKE) -C rigel
clean:
$(MAKE) -C wm clean
$(MAKE) -C deskbar clean
@@ -34,6 +40,8 @@ clean:
$(MAKE) -C installer clean
$(MAKE) -C nebula clean
$(MAKE) -C orionpkg clean
$(MAKE) -C skykit clean
$(MAKE) -C rigel clean
install: all
# binaries
@@ -43,6 +51,7 @@ install: all
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/