TempleOS Desktop Docs

Menu bar status items: status (work stopped early, unfinished)

Edited 2026-10-27docs/apps/statusbar-status.md

File: desk3/03l-statusbar.HC (renamed from 03k so it cannot be confused with 03k-hostpoll.HC; load order is after it). It is written but has NEVER been compiled or run on x86 or Aiwnios. No VM was started, no screenshots exist.

Done (code only, untested)#

  • MenuStatus struct (I64 fields), provider hooks (StProvSet, StProvTick), simulated defaults, "Simulated" footer.
  • Bar: 11 items, popovers for Wi-Fi, Bluetooth, Sound, Battery, Keyboard, Eject (confirmation only), Control Centre, Calendar, Notification Centre; Spotlight-like Search overlay; blurred cached glass panel; fade and slide; dimming overlay for brightness (cheap full-screen alpha rect); Settings page function StSettingsPage.
  • Keys F1..F10 (see file header). Icons: 19 added to scripts/gen-icons.py (eject is custom), KSICONS.BIN regenerated (first 45 icons byte identical), L_WIFI..L_HDD (45..63) and NICON=72 in desk3/01-core.HC.

Shared-file hunks still to make (none made yet except icons)#

  1. 02-ui.HC: declare I64 (*ks_stbar)()=NULL; U0 (*ks_stset)(I64 px,I64 yy,I64 pw,I64 B)=NULL; before Menubar; in Menubar replace the old clock/pill block: left=(*ks_stbar)() draws the items, pill sits left of it. WITHOUT these the file does not compile.
  2. 04-main.HC: Click: if (StClick(i)) return; after KsOverlayClick; Keys: else if (StKey(ch,sc)) {} after if (lp_on) LpKey; AppClick 1<=k<=4 -> <=5; Animate: per-second Dirty only if ks_showms (width 640).
  3. 06-run.HC: Draw StDraw; after KMenu; Main loop StTick(dt); after KsExtraTick.
  4. 03-apps.HC AppSettings: ks_sp_name[5] + "Menu bar", sidebar loop 5 rows with icon L_SLIDERS, branch ks_sp==4 calling (*ks_stset).
  5. New file desk3/04b-statusact.HC (not written): StApply using st_req/st_arg: 1 OpenApp(st_arg), 2 SetStyle(ks_st+1), 3 MenuAct(2), 4 ks_sp=st_arg;OpenApp(4), 5 SetStyle(st_arg); then st_apply=&StApply;.
  6. scripts/send-to-vm.sh desk_files list is stale (lacks 01b, 03d-03g): add 03l-statusbar.HC and 04b.

Known risks#

Array of function pointers via I64 (StProvTick), class with array members, Now on Aiwnios, ScanKey codes for F-keys, glass cache when the clip only partly covers the panel. Check aiwnios/kslint.py.

Next steps#

  1. Make hunks 1-3 and 5, compile on Aiwnios (headless driver like drive-icons.HC), fix errors. 2. Hunk 4. 3. Six screenshots.
  2. Measure idle redraws and popover frame time. 5. One x86 pass. 6. docs/apps/statusbar.md and README section.
TempleOS Desktop Docs. Built from the Markdown sources; offline, no external requests. Back to top