aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
AgeCommit message (Collapse)AuthorFilesLines
7 hoursfeat: K1C printer tab and proper cards for switched-off sourcesDanilo M.1-0/+8
A K1C tab follows a Klipper printer through Moonraker ([k1c] url): state, file, progress with elapsed, left and finish time, layer, the slicer's model thumbnail, nozzle and bed with target and power, fan, speed, position, filament, and the camera snapshot. It is read-only bar one action, the emergency stop (M112), behind a press-and-hold button so a stray touch on an always-on tablet cannot kill a print. Klipper being down (after a stop) shows its message in a red banner. The printer is often off, so a failed poll backs off 10s instead of costing every tick a timeout. File metadata is fetched once per job; the slicer's estimate covers the start of a print until the file-position estimate settles. The tablet loads the camera and the thumbnail straight from the printer, so both need it on the printer's LAN. OBS, the build VM and LLM usage showed raw text when their source was off ("OBS offline: [Errno 111] ..."). They now share static/offline.js: a greyed app icon, what is off, what brings it back, and a pulsing "checking" note, with the raw error in the tooltip. OBS hides its empty blocks while off. The card is not rebuilt on every poll. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 hoursfeat: dashboard-only mode and keystone settings integrationDanilo M.1-2/+13
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>
7 hoursfix: follow UDT's font size and live theme changesDanilo M.1-0/+3
UDT gives font sizes to keystone's fonts page, which writes ~/.config/keystone/fonts.json. deck-it hardcoded px sizes, so changing the size on the fonts page did nothing on the tablet. theme.css now carries --udt-font-size (override.deckit, else base, 8 to 40px, as quickshell checks) on html, and deck.css sizes text in rem, scaled from the old 14px design. The page loaded theme.css once, so a scheme, wallpaper or size change reached the tablet only after a reload. The shell now re-reads it every 5s and on visibility, swapping it into a <style> only when it changed, and sets meta theme-color from --udt-base instead of Macchiato's hardcoded base. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 hourschore: GPLv2-only license, docs and source headersDanilo M.1-12/+53
23 hoursfeat: scaffold and configDanilo M.1-0/+14