aboutsummaryrefslogtreecommitdiffstats
path: root/deckit
AgeCommit message (Collapse)AuthorFilesLines
6 hoursfeat(k1c): live camera stream instead of snapshotsHEADmasterDanilo M.1-9/+9
The camera was a snapshot reloaded on every poll. It is now the webcam's MJPEG stream_url, which an <img> plays by itself at the camera's own rate (15 fps on the K1C). The stream connects only while the K1C tab is on screen and the page visible, and disconnects otherwise, so a hidden tab does not keep the printer streaming. A dropped stream hides the image and reconnects on the next poll. The image is shown as soon as its source is set, since a never-ending stream may never fire load. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 hoursfix(k1c): read the part fan from Creality's output_pin fan0Danilo M.1-2/+9
Creality's K1C firmware drives the part cooling fan as `output_pin fan0` and reports the standard `fan` object with speed null, so the tab showed no fan speed. The standard object still wins when it has a value. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 hoursfeat: K1C printer tab and proper cards for switched-off sourcesDanilo M.1-0/+147
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 hoursfix: window list flicker and icons missing from the icon themeDanilo M.1-6/+9
The Windows tab rebuilt every row once a second, and each rebuild walked every window icon through its fallback names again, so the rows blinked. It now re-renders only when the state changed. Icon lookup only searched the configured theme, so an app the theme lacks (pcmanfm-qt under candy-icons) lost its icon and showed its label. It now falls back to hicolor, as the icon theme spec does, in hicolor's size/category layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 hoursfeat: dashboard-only mode and keystone settings integrationDanilo M.3-44/+77
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-2/+24
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.15-0/+240
20 hoursfeat: auto-below placement re-reads the live layoutDanilo M.1-0/+11
20 hoursfix: window focus and close must call hl.dispatchDanilo M.1-1/+1
20 hoursfeat: window rows get app icons and a close/move menuDanilo M.1-1/+63
21 hoursfeat: launcher icons follow the icon theme Keystone setsDanilo M.1-3/+17
21 hoursfeat: launcher icons come from the configured icon themeDanilo M.1-0/+20
21 hoursfeat: Windows tab shows all workspaces and icon-only launchersDanilo M.1-2/+14
21 hoursfeat: long-press an OBS source to open its properties; fix server detectionDanilo M.1-1/+8
21 hoursfeat: paint the virtual monitor with the first monitor's swaybg wallpaperDanilo M.1-7/+48
22 hoursfeat: opencode session spend and brand marks in the LLM cardDanilo M.1-2/+9
22 hoursfeat: LLM card shows current session models with section headersDanilo M.1-2/+22
22 hoursfeat: animate the UDT border gradient on the cardsDanilo M.1-2/+17
22 hoursfeat: build VM card shows the real stats dashboardDanilo M.1-7/+11
22 hoursfeat: card headers, music art/seek, clearer build cardDanilo M.3-5/+41
22 hoursfix: use OBS's stored password and explain auth failuresDanilo M.2-3/+29
22 hoursfix: aggregate opencode rows from /api/summaryDanilo M.1-1/+19
22 hoursfeat: Intel xe GPU stats (temp, fan, VRAM)Danilo M.1-37/+58
23 hoursfix: OBS idle timeout, payload validation, workspace listDanilo M.4-10/+30
23 hoursfeat: sb-builder status moduleDanilo M.1-0/+36
23 hoursfeat: llm usage panelDanilo M.1-7/+15
23 hoursfeat: llm-cost-dashboard relay moduleDanilo M.1-0/+46
23 hoursfeat: OBS stream-deck moduleDanilo M.3-0/+130
23 hoursfeat: obs-websocket v5 clientDanilo M.1-0/+99
23 hoursfeat: windows moduleDanilo M.1-0/+92
23 hoursfeat: music moduleDanilo M.1-0/+49
23 hoursfeat: stats moduleDanilo M.2-0/+168
23 hoursfeat: virtual monitor setupDanilo M.1-0/+61
23 hoursfeat: HTTP server with trust, auth, module routingDanilo M.3-1/+190
23 hoursfeat: module contract and registryDanilo M.1-0/+45
23 hoursfeat: UDT palette themingDanilo M.1-0/+58
23 hoursfeat: scaffold and configDanilo M.2-0/+41