deck-it
Turns an Android tablet into a second monitor, a stream-deck and an always-on control surface for a Slackware Hyprland desktop.
A web page on the tablet has tabs for system stats, music, windows, OBS and
LLM/build status. A second headless output is streamed to AVNC as an extra
monitor. Everything runs on the PC and reaches the tablet through adb reverse;
there is no cloud, account or app-store install.
Requirements
PC
- Slackware-current with Hyprland (Lua or classic config)
- Python 3.11+ (python3)
- websocket-client (obs-websocket)
- adb, wayvnc, openssl
- playerctl, wpctl (PipeWire), wtype
- optional: qrencode for Wi-Fi pairing
Tablet - Android with USB debugging or Wireless debugging - AVNC for the extended display - a Chromium-based browser for the web app (install it from the menu)
Install
git clone https://git.danix.xyz/deck-it ~/Programming/GIT/deck-it
ln -s ~/Programming/GIT/deck-it/deck-it ~/bin/deck-it
deck-it
The launcher creates the headless output, starts wayvnc and the server, tunnels
them to the tablet, and opens the dashboard and AVNC. deck-it stop tears it
down. For the dashboard alone, set enabled = false under [display]: no
headless output, wayvnc or AVNC.
Over Wi-Fi, pair once and pass the tablet's Wireless debugging address:
deck-it pair
deck-it wifi 192.168.1.50:41234
Keystone's settings window has a deck-it page: a Start at login switch (it
adds deck-it wifi --wait to hypr-theme's autostart) and every config key,
launchers included, with a Restart button to apply a save.
Usage
- Tabs: Dashboard (draggable/resizable cards, each foldable to its title bar), Windows, OBS, K1C. Swipe the content sideways to change tab; ⟳ at the top right reloads the page.
deck-it installprints theexec-onceline for USB autostart.config.tomlholds the defaults: display, Wi-Fi address, workspaces, launchers (desktop ids), OBS websocket, llm-cost-dashboard URL, build VM host, hardware overrides.~/.config/deck-it/config.tomloverrides any of them key by key and needs only what differs; keystone writes it.- The OBS tab is a stream-deck: scenes, sources, audio sliders, transitions. Long-press a source to open its properties dialog in OBS.
- The Windows tab has workspaces, icon launchers, and a per-window
⋮menu to close it or move it to another desktop. - The K1C tab follows a Klipper printer through Moonraker (
[k1c] url): state, progress with the slicer's model preview, temperatures, camera, and a red emergency stop that fires on a press and hold. - The screen stays on while the dashboard is in front.
License
Copyright (C) 2026 Danilo M. danix@danix.xyz
GPLv2 only. See LICENSE for the full text. Portions derived from tabdeck (MIT) are noted in LICENSE.tabdeck and NOTICE.
Development Approach
This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.
All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.
The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.
