|
root / docs / PHASE1B_RESULTS.md
PHASE1B_RESULTS.md markdown 26 lines 2.5 KB

Zygaena Desktop — Phase 1b Results

Completed: 2026-07-23 on hh-alpha9. Outcome: a cohesive, Hammerhead-branded, GTK-free X11 desktop built entirely from zports via Coral, running over VNC. Screenshots: hammerhead/docs/roadmap/hammerhead-desktop-phase1b.png (working desktop: Xfe + XNEdit + conky) and ...-showcase.png (wallpaper wordmark + terminal + conky).

What shipped (~26 new ports; 83 packages total)

  • Shell: tint2 16.2 (panel), conky 1.24.2 (native illumos/kstat stats — CPU/mem/disk/net/load), picom 13 (xrender compositor), feh 3.12.2 (wallpaper + image viewer), dmenu 5.4.
  • Apps: Xfe 1.x (FOX file manager), mupdf 1.28.0 (PDF), neovim 0.11.6 (terminal editor), XNEdit 1.6.3 (Motif GUI editor).
  • Toolkit/deps: imlib2, lua 5.4.8, libconfig, libev, fox-toolkit 1.6.59, motif 2.3.8 (+xbitmaps), + neovim's tree (libuv, msgpack-c, unibilium, libtermkey, libvterm, tree-sitter), + picom's (3 xcb-util libs, uthash).
  • Branding: hammerhead-desktop config port — a cairo-generated marine-dark wallpaper (teal hammerhead-shark motif, sonar arcs, "HAMMERHEAD / ZYGAENA" wordmark), dark Openbox theme with teal accent, matching tint2 + conky configs, branded Openbox menu/keybinds, autostart.

New systemic gotchas found + recorded (plan checklist + memory)

  • GCC 14 promotes old-C warnings to errors (-Wincompatible-pointer-types, implicit-function-declaration, int-conversion) → per-port -fpermissive -fcommon (motif, mupdf, XNEdit, unzip).
  • illumos <sys/types.h> short typedefs (index_t, level_t, …) collide with app identifiers → per-file #define index_t mu_index_t (mupdf).
  • illumos <sys/stream.h> struct queue tag collision (neovim); __illumos__ vs __sun compiler-define gap (tree-sitter, neovim); Motif Xft-detection + strings.h-ordering + iconv/_XPG6 patches; FOX HAVE_SYS_FILIO_H.

Toolkit-durability held

100% GTK-free: FOX (Xfe), Motif (XNEdit), cairo/imlib2/lua, X11-native shell. Qt deferred to Phase 1c. (See [[x11-toolkit-durability-gtk-vs-qt]].)

Notes

  • neovim uses its bundled LuaJIT (needs Lua 5.1; our lua is 5.4) — the 6 M0b system libs are installed and available but not consumed by neovim-as-built.
  • mupdf built with bundled thirdparty (freetype/harfbuzz/jbig2dec/openjpeg/mujs).
  • Live desktop left running on alpha9:5900.

Next

Phase 1c — Qt6 + LXQt durable rich-app tier. Phase 2 — native VM console (retarget kdrive/Xfbdev to illumos visual_io; switch VM off VGA-text to a linear framebuffer). See hammerhead/docs/roadmap/DESKTOP_XLIBRE_PHASE1B.md.