webmacs
What it is
Section titled “What it is”webmacs is a keyboard-driven web browser modeled on Conkeror (the historical Mozilla-based Emacs-keybinding browser, now defunct). Every browser action is a key chord: navigation, tabs, link selection (link “hints” labeled with single characters; the user types the label to follow the link), back/forward, text editing inside web forms (with full Emacs-style movement: C-a start of line, C-e end, C-w kill-region, etc.). The browser is highly customizable in Python — user configuration is Python code, plugins are Python modules — and ships with a fast integrated ad-blocker and a “live documentation” facility that surfaces the docstring of whatever command the user is about to invoke.
For KN-86 this is the canonical reference for “Emacs keybindings applied to a domain that isn’t editing text.” The deck’s cart-content surface is exactly that domain — a non-text-editing interactive application where every action should still feel like Emacs.
Key takeaways for KN-86
Section titled “Key takeaways for KN-86”- Emacs keybindings inside non-text contexts. webmacs proves that the Emacs idiom (
C-a,C-e,C-n,C-p,C-w,M-xfor command dispatch, etc.) can drive a fully interactive non-text application coherently. KN-86’s nEmacs surface (ADR-0016) inherits this: the same key chords that work in a text-editing context should work in a cart’s interactive context, with the cart binding the chords to its own verbs while preserving the spatial intuitions of Emacs movement. - Link hints as a navigation idiom. webmacs labels every link on a page with a single character; the user types the label to follow the link. For KN-86 the equivalent is single-character labels on every actionable item in the current surface — mission-board contracts labeled
a–z, cart-manifest entries labeleda–z, dispatch transmissions labeleda–z. The user types the label to act on the item. Combined with the Xiki expansion model, this gives a TERM-key surface that’s both typeable (verbs) and selectable (labels) without ever needing a pointer. - Python as the customization language. webmacs’s “configure with Python” decision is the right move because Python is what the audience already knows. For KN-86 the equivalent is KEC Lisp as the configuration / scripting language (ADR-0001) — same posture, language chosen for the audience (cart authors, who will know enough Lisp to make Fe usable). webmacs is the structural precedent.
- Live documentation surfaces docstrings. When the user starts typing a command, webmacs shows the docstring of the command being completed. For KN-86 the same affordance — surfacing the help text of the command being completed at the TERM line — is the right pairing with the Perkins
?overlay and l123’s F1 context help. - Integrated ad-blocker, fast. Not relevant to KN-86 (no web context), but worth noting: a small, single-purpose service running alongside the main application is a clean architectural pattern. KN-86’s analog is the Pi Pico 2 coprocessor (ADR-0017) — a small dedicated service running alongside the main runtime, handling a focused job (PSG + OLED). Conceptual parallel only.
No image downloaded.
- Cross-link exwm.md — EXWM is “Emacs WM-level”; webmacs is “Emacs per-application.” Together they bracket the philosophy.
- Cross-link xiki.md — for the expandable-tree interaction model that pairs with link-hint selection.
- Cross-link history.el.md — webmacs has its own back/forward; KN-86’s REPL surface should compose webmacs’s hint-driven selection with history.el-style non-destructive history.
- The link-hint single-character-label pattern is the single most-borrowable specific affordance. Promote: every actionable item on every KN-86 surface gets a single-character label; the user types the label to act. Add to the promote-to-spec list.