# 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](https://github.com/gujjwal00/avnc) for the extended display - a Chromium-based browser for the web app (install it from the menu) ## Install ```sh 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: ```sh 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), **Windows**, **OBS**. Swipe the content sideways to change tab. - `deck-it install` prints the `exec-once` line for USB autostart. - `config.toml` holds 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.toml` overrides 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. ## License Copyright (C) 2026 Danilo M. GPLv2 only. See [LICENSE](LICENSE) for the full text. Portions derived from tabdeck (MIT) are noted in [LICENSE.tabdeck](LICENSE.tabdeck) and [NOTICE](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.