From cd7035be76c82c15d172a6827c3c8f81df723424 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 10 Nov 2026 20:09:46 +0100 Subject: feat(deckit): split the settings into a deck-it group of four pages The single long deck-it page becomes its own sidebar group: General (status, Restart, Start, Display, Advanced), Dashboard (Modules, action icons, Hardware), Windows (launchers, workspaces) and Services (OBS, LLM, K1C, build VM). All four share DeckIt.store, so Save on any page writes the whole draft, as the Mail pages do. Each module lists its own fields, so a search jumps to the page holding the field. The small-print text moves to a shared Small.qml. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/deckit/DeckItModule.qml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'desktop/modules/deckit/DeckItModule.qml') diff --git a/desktop/modules/deckit/DeckItModule.qml b/desktop/modules/deckit/DeckItModule.qml index fbf6bd0..973ef1c 100644 --- a/desktop/modules/deckit/DeckItModule.qml +++ b/desktop/modules/deckit/DeckItModule.qml @@ -14,8 +14,8 @@ import QtQuick import "../.." import "../qtmaildir" -// deck-it, the tablet dashboard: whether it starts at login, and its config. -// See README.md. +// deck-it, the tablet dashboard: General, the first of its four pages, with +// its state and Restart in the header. See README.md. Module { id: mod name: "deckit" @@ -23,22 +23,17 @@ Module { // nf-md-tablet, present in Inconsolata Nerd Font. icon: "󰓶" settings: true - group: "Desktop" + group: "deck-it" dirty: DeckIt.store.dirty - keywords: ["deck-it", "tablet", "android", "dashboard", "stream deck", "adb", "wifi", "avnc", - "wayvnc", "second monitor", "launcher", "autostart", "printer", "k1c", "klipper"] + keywords: ["deck-it", "tablet", "android", "stream deck", "adb", "wifi", "avnc", "wayvnc", + "second monitor", "autostart", "display", "resolution", "port", "hyprland", "icon theme"] readonly property var fields: [ ["autostart", "", "Start at login"], ["wifi", "address", "Wi-Fi address"], ["display", "enabled", "Second display"], ["display", "resolution", "Resolution"], ["display", "position", "Position"], ["display", "scale", "Scale"], ["display", "refresh", "Refresh"], ["display", "name", "Output name"], ["ports", "command_center", "Dashboard port"], ["ports", "display", "Display port"], - ["launch", "apps", "Launchers"], ["windows", "workspaces", "Workspaces"], - ["obs", "host", "OBS host"], ["obs", "port", "OBS port"], ["obs", "password", "OBS password"], - ["llm", "url", "LLM dashboard URL"], ["sbbuilder", "host", "Build VM host"], ["k1c", "url", "K1C Moonraker"], - ["hardware", "net", "Network interface"], ["hardware", "battery", "Battery"], - ["hardware", "cpu_sensor", "CPU sensor"], ["hardware", "gpu", "GPU"], - ["hardware", "gpu_mem_total", "GPU memory"], ["icons", "theme", "Fallback icon theme"]] + ["", "hyprland", "Hyprland config"], ["icons", "theme", "Fallback icon theme"]] searchItems: fields.map(f => ({ text: f[2], key: f[0] + "/" + f[1] })) function refresh() { DeckIt.reload(); } @@ -47,6 +42,7 @@ Module { title: "deck-it" // Its state in the header, as the Wallpaper engine page does: // `deck-it status`, polled while the page is open (DeckIt.watchers). + // One draft behind all four deck-it pages: Save writes them all. actions: Component { Row { spacing: 8 @@ -72,7 +68,7 @@ Module { } } } - DeckItPage { width: parent.width } + DeckItGeneralPage { width: parent.width } } } } -- cgit v1.2.3