diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-10 10:03:00 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-10 10:03:00 +0100 |
| commit | 819745a39220b49e848422b4bf0ee71dc317fc4d (patch) | |
| tree | 17475ac554a44eec1f9adee45ad0be3a437509d3 /deckit/__main__.py | |
| parent | 5ebfb5850713c038e37baddbadde3320aca2c4e4 (diff) | |
| download | deck-it-819745a39220b49e848422b4bf0ee71dc317fc4d.tar.gz deck-it-819745a39220b49e848422b4bf0ee71dc317fc4d.zip | |
feat: dashboard-only mode and keystone settings integration
The second display is now optional: [display] enabled = false skips the
headless output, wayvnc, AVNC and the VNC tunnel, so the tablet runs the
dashboard alone. `deck-it env` reports it as EXTEND.
Keystone's new deck-it page (quickshell, desktop/modules/deckit) edits
the config and the autostart line, which needed:
- The user config is merged over the shipped config.toml key by key
within each table instead of replacing it whole, so the page writes a
sparse file and an unset key falls back to the default.
- `deck-it defaults` prints the shipped config as JSON for the page's
placeholders, so keystone never copies the defaults.
- `deck-it status` prints one JSON line (server, display, waiting,
tablet, extend) for the page's status line and restart check.
- [launch] is now `apps`, a list of desktop ids run with gtk-launch,
with name and icon read from the .desktop file, so the page can pick
launchers from the installed apps. The old command tables are gone;
the client still sends only an id, which must be listed and installed.
A launcher whose icon the theme lacks shows its name.
- [wifi] address gives the tablet's address in config. The last address
that worked is kept in ~/.config/deck-it/last-wifi: `stop` deletes the
runtime serial file, so a restart from the page used to wait forever.
- `stop` also ends a login's `wifi --wait`, matched by its own command
line only, so repeated restarts do not pile up waiters.
Also fixed: `deck-it env` fell through into the usage text, and the
usage text printed the license header since the header was added.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'deckit/__main__.py')
| -rw-r--r-- | deckit/__main__.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/deckit/__main__.py b/deckit/__main__.py index 5b6cda8..98a7169 100644 --- a/deckit/__main__.py +++ b/deckit/__main__.py @@ -14,7 +14,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"""`python3 -m deckit [setup-display | env]`.""" +"""`python3 -m deckit [setup-display | env | defaults]`.""" import sys @@ -27,7 +27,12 @@ def main(): cfg = config.load_config() d, p = cfg.get("display", {}), cfg.get("ports", {}) print(f"MON={d.get('name', 'TAB')} PORT={p.get('command_center', 8765)} " - f"VNC_PORT={p.get('display', 5900)}") + f"VNC_PORT={p.get('display', 5900)} EXTEND={int(d.get('enabled', True))} " + f"WIFI_ADDR={cfg.get('wifi', {}).get('address', '')}") + elif args == ["defaults"]: + # For keystone's settings page: the shipped values a user file overrides. + import json + print(json.dumps(config.defaults())) elif args == ["setup-display"]: from .display import setup_display setup_display(config.load_config()) |
