From 74fde3e0dae5a40c522ada14cf04945f3c806730 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 17 Oct 2026 10:01:40 +0200 Subject: desktop: settings search, and an About landing page The landing page's tiles repeated the sidebar. It now says what the shell is and where things live, which is what a landing page is for. The sidebar gains a search. A page is a Component loaded only when opened, so its contents cannot be indexed without loading every page; instead a module lists keywords for the settings buried in its page, and the search matches those and the label. An entry matched by a keyword shows which one, Enter opens the first match, Escape clears and then steps out as before. Co-Authored-By: Claude Opus 5.5 --- desktop/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'desktop/README.md') diff --git a/desktop/README.md b/desktop/README.md index 187def6..ed30620 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -36,8 +36,14 @@ gear tile opens it, and so does IPC: qs -p ./desktop ipc call settings toggle `open` takes a page name; an unknown or empty one opens the landing page, -a tile per settings page. A page's back arrow and Escape return there; -Escape on the landing page closes the window. +a short About. A page's back arrow and Escape return there; Escape on the +landing page closes the window. + +The search above the list matches each page's label and its module's +`keywords`, the settings buried inside the page; an entry matched by a +keyword shows which one. Enter opens the first match, Escape clears. Pages +load only when opened, so their live contents (a git alias, an autostart +command) are not searched, only the keywords. ## The modules @@ -72,6 +78,8 @@ drawer needs to show it: - `page`: a `Component` for the full-height page behind the tile, or null. - `settings`: the page lives in the settings window, not the drawer, and the module has no tile. +- `keywords`: for a settings page, the words its search should find besides + the label. - `activate()`: what a tile with no page does when clicked. - `alwaysActive`: declares whether the module's service is meant to run while the drawer is closed. The drawer does not read it, the module implements its -- cgit v1.2.3