From 58e37da20ed56eef1863f259e17a819105ac33f2 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 10 Nov 2026 10:06:13 +0100 Subject: feat(deckit): settings page for deck-it, the tablet dashboard A page under Desktop for deck-it's ~/.config/deck-it/config.toml and its login line. deck-it now merges that file over its shipped config key by key, so the page writes only what differs and takes its placeholders from `deck-it defaults` rather than copying them. - Start at login edits hypr-theme's autostart.lua at once, as the Autostart page does, through Autostart.js: it re-enables a commented deck-it line or adds `deck-it wifi --wait`; off comments them out. - Every config key, with launchers picked from the installed apps (desktop ids, reorderable) and module switches built from the defaults. - A status line polls `deck-it status` every 2s while the page is open; Restart runs `deck-it stop` and the login command, then reports "Restarted" once the server runs with a tablet tunnelled, or what it saw after 30s. Shared helpers it needed: Toml.js reads plain decimals (the display scale), Store keeps a list of numbers numeric (the workspaces), and ChoiceSetting takes a store as Setting and BoolSetting already do. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/sbbuilder/test_toml.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'desktop/modules/sbbuilder/test_toml.js') diff --git a/desktop/modules/sbbuilder/test_toml.js b/desktop/modules/sbbuilder/test_toml.js index c86741d..7e62b4e 100644 --- a/desktop/modules/sbbuilder/test_toml.js +++ b/desktop/modules/sbbuilder/test_toml.js @@ -102,4 +102,8 @@ assert.deepStrictEqual(T.sections(file), ["manifests", "refresh"]); assert.deepStrictEqual(T.sections("a = 1\n[manifests]\n"), ["manifests"]); assert.deepStrictEqual(T.sections("a = 1\n"), []); +// Decimals: read, and rewritten in place (deck-it's display scale). +assert.strictEqual(T.get("[display]\nscale = 1.5 # hi\n", "display", "scale"), 1.5); +assert.strictEqual(T.set("[display]\nscale = 1.5 # hi\n", "display", "scale", 2), "[display]\nscale = 2 # hi\n"); + console.log("test_toml: ok"); -- cgit v1.2.3