Desktop-entry launcher, 2026-09-22
Source d53d863 (also in daily image source 3f397a6). The launcher now
uses GLib desktop-entry discovery and launch semantics, with Pango/Cairo text
and touch pages. It refreshes on every open; there is no background catalogue
daemon or separate cache to rebuild. Omarchy’s discovery-based application
library informed the design; no Omarchy code or desktop stack was imported.
90-second camera video, manifest, action script, console transcript. The physical panel was recorded with FFmpeg at 1920×1080, 30 fps, rotated 180 degrees for presentation. The actions were injected uinput touches; this does not prove finger accuracy. Native PNGs preserve readable layouts.
Observed on the physical board:
- Four desktop entries discovered: Foot, Foot Client, Foot Server, Htop. These represent two installed programs with three Foot launch modes, not four unrelated GUI applications. See page two.
- Htop launches from its
Terminal=truedesktop entry using the readable Foot/htop configuration: Htop, window 7 in the transcript. - Adding a temporary user desktop entry changes the count from four to five
on reopen: added. Selecting it creates the distinct
k230-discovery-proofwindow 8: launched. - Removing that entry restores four on reopen: removed.
- Keyboard-open pagination leaves all controls accessible: first page, second page.
- An entry with an unavailable working directory produces a visible GLib error and retains the overlay/Back: error. Back then dismisses it, and reopening yields the ordinary four entries. Temporary entries and the injected device were removed; see cleanup.
At first open, RSS was 15,748 KiB and proportional memory was 7,289 KiB (about 7.1 MiB). This is a single observation, not peak or latency evidence. The 327.1 MiB Sway-config dependency closure includes the already-installed compositor and libraries. The final transfer from the preceding trial was 55,720 bytes across five new store paths; it is not total image size.
Final deployment imported source-built store paths and
restarted the shell with /nix/store/mrs3y5x82skma9xkz6s035ily6fs308r-k230-sway.conf.
This capture uses a runtime systemd override, which survives service restart
but not reboot. That recording remains runtime-deployment evidence; the
subsequent image boot is recorded separately below.
Host verification: python3 tests/test_touch_menu.py (six tests),
python3 tests/test_desktop_catalog.py (three tests, including two launch
variants), and the narrow cross build passed. Catalogue fixtures exercise
precedence, hiding, visibility, addition/removal, encoded labels, quoted
arguments, %c, %k, %%, %f, %i, working directories, and the terminal
bridge using real GLib 2.88.3. A launch handoff is not application-health proof.
User hands-on verification
After the desktop-aware launcher demo on 2026-09-22, the user reported: “i used my finger to tst it it’s fine”. This confirms user-observed finger usability of the launcher. It is separate from the automated camera recording, which remains labeled injected. The report does not claim the prescribed axis string, a battery-only boot, or every parent-shell system-control test.
Source-built image boot
The daily source image from 3f397a6,
/nix/store/x0qz7ibmyb1bbmx1cpwgryxapkzisb0m-k230-sd-image.img, was written
successfully (2,308,689,920 bytes). The image SHA-256 is
797d3fdf1e9901c6cf5d219a75c902e0cae12b951c9582514042535837d4b0a6.
Write transcript retains a READBACK FAILED line because
the already-running comparison was deliberately terminated after the user
requested an end to routine full readbacks. It is neither evidence of a write
failure nor a successful full comparison. No full-image equality is claimed.
Subsequent reset and Linux boot succeeded.
100-second physical boot video
shows the shell terminal and persistent controls after startup. USB cables
were attached; serial initiated the reset. This is not a battery-only boot.
Post-boot diagnostics record the immutable system
/nix/store/mp5llx58dcpnikfdwn455pyrygdvggbg-nixos-system-nixos-26.11.20260919.20b1ddd,
active shell and seatd, empty systemd DropInPaths, and the expected
mrs3y5x82skma9xkz6s035ily6fs308r-k230-sway.conf. The Nix store database
contains the 576 requisite paths without a manual load, and Neofetch reports
T-Head C908 (RISC-V64) (1).
The no-logo daily display path is in use: no /boot/logo.xrgb, no one-shot
splash flag, and /dev/fb0 present. This does not prove logo-to-kernel handoff.
The same boot exposed firewall.service failing with
iptables: Failed to initialize nft: Protocol not supported; the launcher
boot claim does not imply a fully healthy network firewall.
25-second launcher video after reboot,
action script, and console
record Apps, page two, Htop launch and reopening Apps with the same immutable
configuration. Native images show Apps,
desktop entries and Htop.
These are injected touches on the physical board. No home-directory backup was
restored: the fresh shell home had neither a .config directory nor user
application entries before the demonstration. The private backup transfer was
canceled and its partial board copy removed; it is not a shell dependency.
The newly flashed source U-Boot (including patch 0005) also passed the read-only UMS and USB host coexistence cycle: host RTL8152 before UMS, mass-storage enumeration, host RTL8152 after UMS, and return to Linux in 100.2 seconds. This cycle performed no write or full image readback. The separate BootROM recovery drills remain unverified.