← Blog
VIDEO · DRIVERS · 0.6.0

LCARS Scrollbar + Context Menu + PCI Config Space + Bochs BGA — Lumen UI Kit Complete

June 22, 2026 · sigil-video / sigil-drivers · Sigil-Docs
video lumen drivers x86 display 0.6.0

Two more LCARS widgets complete the Lumen UI kit: lcars_scrollbar (proportional thumb + black track, 3-case oracle PASS) and lcars_menu_item (right-click context menu cell, orange+tan selected / black+ltblue normal, 8-char AA label, purple separator). sigil-drivers adds PCI configuration space (i440FX host bridge, 4-device bus 0 enum, CLS_BUS_PCI) and Bochs BGA display driver (1024×768×32 + 800×600×32 mode-set, XRES/YRES/BPP/ENABLE r/w, CLS_DISPLAY). (sigil-video f6dd8e4, 51f6eab; sigil-drivers f34debe, 6e12d4e)

lcars_scrollbar proportional thumb positions
lcars_scrollbar: proportional thumb at top, bottom, and full-fill (view≥total). LCARS-SCROLLBAR-PASS.
lcars_menu_item selected and normal cells
lcars_menu_item: selected (orange+tan AA) and normal (black+ltblue) cells with purple separator. LCARS-MENU-PASS.

lcars_scrollbar — Vertical Scroll Bar Widget (f6dd8e4)

lcars_scrollbar(fb, pitch, x, y, w, h, view, total, offset, color) draws a vertical scrollbar with a proportional thumb positioned to reflect the current scroll offset within a content range.

Test: 3 cases — offset=0 (thumb at top), offset=75 (thumb at bottom), view=total (full-height thumb). 6 oracles: thumb/track pixels verified at all three positions. LCARS-SCROLLBAR-PASS top_thumb=ok top_track=ok bot_thumb=ok bot_track=ok full=ok.


lcars_menu_item — Right-Click Context Menu Cell (51f6eab)

lcars_menu_item(fb, pitch, fbw, fbh, x, y, w, h, selected, sep, c0..c7) draws a single menu cell with full LCARS styling. The OS stacks cells vertically to build right-click context menus on the Lumen desktop.

selected=1
Orange background + tan AA text label. The hovered or keyboard-active menu item.
selected=0
Black background + ltblue text. Normal (unselected) menu item.
sep=1
1 px purple bottom separator drawn below the cell — used to divide stacked items into logical groups.
c0..c7
Up to 8 characters rendered via lcars_gch_cov (AA cov_blend path). Left-padded 4 px.

GPU path: gpu_submit rect-fill + lcars_gch_cov per glyph (CAP_ACCEL; silicon-pending). Test: 2 stacked items — selected "O" (orange+tan+purple sep) + normal "S" (black+ltblue). 5 oracles: sel_bg, sel_sep, sel_glyph, norm_bg, norm_glyph. LCARS-MENU-PASS.


The Complete Lumen LCARS UI Kit

With lcars_scrollbar and lcars_menu_item landed, the Lumen LCARS UI kit is now complete across all desktop surface categories — 17 public functions, plus utility widgets bringing the total to 20+ functions.

CategoryFunctions
Primitivesfill_rect, fill_circle, fill_qcircle_br, hbar, elbow, border_rect, resize_handle
Desktop chromepanel_header, statusbar, boot_banner, boot_progress
Window chromewindow_chrome, wchrome_title, focus_chrome
WM interactionresize_feedback, snap_zones
App UItaskbar_item, scrollbar, menu_item

The lcars_label / lcars_progress / lcars_data_strip utility widgets extend the kit to a complete design-language API. Any Lumen app can be built entirely from these primitives and remain visually consistent with the LCARS desktop chrome.


PCI Configuration Space — sigil-drivers (f34debe)

drivers/bus/pci-cfg implements PCI configuration space access via the standard x86 I/O port pair.

Significance: PCI config space enumeration enables NVMe, e1000, and AHCI device discovery. Without it, the kernel cannot find any expansion devices at boot — every bus-connected peripheral is invisible until config space is readable.


Bochs BGA Display Driver — sigil-drivers (6e12d4e)

drivers/display/bga implements the Bochs VBE Extensions (BGA) display driver, enabling native framebuffer mode-setting in QEMU without BIOS or VESA calls.

Significance: The BGA driver enables framebuffer mode-setting without BIOS/VESA calls. Combined with the PCI enumerator, the kernel can find the Bochs display device, read its BGA ID, and set a native resolution before any UEFI/GOP path is available. This is the x86 display bootstrap path.


Driver summary — batch

DriverCommitRepoClassState addr
lcars_scrollbarf6dd8e4sigil-videoUI widget
lcars_menu_item51f6eabsigil-videoUI widget
pci-cfgf34debesigil-driversCLS_BUS_PCI0x880000
bga6e12d4esigil-driversCLS_DISPLAY0x890000