// Copyright (C) 2026 Danilo M. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. import Quickshell import QtQuick import "../.." import "../qtmaildir" // deck-it, the tablet dashboard: whether it starts at login, and its config. // See README.md. Module { id: mod name: "deckit" label: "deck-it" // nf-md-tablet, present in Inconsolata Nerd Font. icon: "󰓶" settings: true group: "Desktop" dirty: DeckIt.store.dirty keywords: ["deck-it", "tablet", "android", "dashboard", "stream deck", "adb", "wifi", "avnc", "wayvnc", "second monitor", "launcher", "autostart", "printer", "k1c", "klipper"] 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"]] searchItems: fields.map(f => ({ text: f[2], key: f[0] + "/" + f[1] })) function refresh() { DeckIt.reload(); } page: Component { Page { title: "deck-it" actions: Component { SaveBar { dirty: DeckIt.store.dirty; valid: DeckIt.store.valid; error: DeckIt.store.error onSave: DeckIt.save(); onDiscard: DeckIt.store.discard() } } DeckItPage { width: parent.width } } } }