aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/sbbuilder/Toml.js
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-10 10:06:13 +0100
committerDanilo M. <danix@danix.xyz>2026-11-10 10:06:13 +0100
commit58e37da20ed56eef1863f259e17a819105ac33f2 (patch)
tree17e39338164390043b30e10aded0aecb2e6e3e03 /desktop/modules/sbbuilder/Toml.js
parentd10f2cc00c1091f63e335df1d6913c7abddf06e5 (diff)
downloadquickshell-58e37da20ed56eef1863f259e17a819105ac33f2.tar.gz
quickshell-58e37da20ed56eef1863f259e17a819105ac33f2.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/sbbuilder/Toml.js')
-rw-r--r--desktop/modules/sbbuilder/Toml.js4
1 files changed, 2 insertions, 2 deletions
diff --git a/desktop/modules/sbbuilder/Toml.js b/desktop/modules/sbbuilder/Toml.js
index dddb6f7..eb29c88 100644
--- a/desktop/modules/sbbuilder/Toml.js
+++ b/desktop/modules/sbbuilder/Toml.js
@@ -17,7 +17,7 @@
// set again is activated. Top-level keys are section "".
//
// ponytail: the TOML these files use, one key per line: strings, integers,
-// booleans, one-line arrays. A value with anything but a comment after it
+// plain decimals, booleans, one-line arrays. A value with anything but a comment after it
// (multi-line strings and arrays included) is refused: entries() skips it and
// set() throws rather than write a duplicate key; such a file is edited by
// hand. Also not recognised: CRLF line endings, `[ spaced ]` and `[[array]]`
@@ -67,7 +67,7 @@ function val(s, i) {
}
return { v: out, i: i + 1 };
}
- const m = /^(true|false|[+-]?[0-9][0-9_]*)(?=[\s#,\]]|$)/.exec(s.slice(i));
+ const m = /^(true|false|[+-]?[0-9][0-9_]*(?:\.[0-9][0-9_]*)?)(?=[\s#,\]]|$)/.exec(s.slice(i));
if (!m) return null;
const v = m[1] === "true" ? true : m[1] === "false" ? false : Number(m[1].replace(/_/g, ""));
return { v: v, i: i + m[1].length };