DEBIAN · SWAY · BLUETOOTH LE

The TV box that runs a real operating system

pctv is a mini-PC that lives under a television. It boots straight into a Wayland session, takes its input from a phone over Bluetooth LE, and is provisioned from one committed script rather than from a wiki page.

Part of the hiot home-automation system

Not a kiosk. A working environment.

Debian and sway

A full Wayland session on stock Debian, not a locked-down browser shell. sway runs with its own upstream config; pctv's additions live in a drop-in, so a system upgrade never collides with a forked config.

Your phone is the input device

A daemon on the box presents a keyboard and a touchpad over Bluetooth LE GATT. The cursor is 1:1 with your finger, and the link works with no network at all — MQTT is an option, not a requirement.

Provisioned by script

One entry point, one config file per box, every knob documented with its default and its reasoning. Wi-Fi secrets stay in an untracked overlay. Re-running the installer on a working box is safe by design.

It controls the television

Power and input switching are driven from the box, so a single action wakes the TV and puts it on the right source instead of leaving you to find two remotes.

Tuned for latency, measured

The interesting number was never keypress latency — it is what a background writer does to the desktop under load. That is measured on real hardware, and the fix is scheduling policy rather than folklore.

Boots like an appliance

Hidden bootloader, a dimmed wordmark, then the session — one continuous surface on a single background colour, with no console text in between.

Two hardware families

CURRENT

pctv-x86

An Intel mini-PC. The reference target: everything is developed and measured here first, from the compositor build to the input stack.

SECOND TARGET

Banana Pi M5

arm64, for the same session at lower power. Recovery is a documented hardware path rather than a guess when a board stops booting.

Software repository

pctv is moving from "provision a Debian box" to "install a distribution". Downloads and the APT repository are live; the container registry is next.

Published

APT repository

Signed Debian packages. Today it carries the archive keyring; the pctv components — the input daemon, the TV control helper, the compositor build — join it as each moves off its own installer. Install the keyring first, then add the source.

curl -fsSLO https://pctv.pro/apt/pctv-release-key.asc
sudo apt-get install ./pctv-archive-keyring_1.0_all.deb
echo 'deb [signed-by=/usr/share/keyrings/pctv-archive-keyring.gpg] \
https://pctv.pro/apt stable main' \
  | sudo tee /etc/apt/sources.list.d/pctv.list
sudo apt-get update
Published

Downloads

Today: the provisioning toolkit — the scripts that turn a clean Debian install into a pctv box. Installable images join it here when they exist. Every release carries a checksum manifest and a detached signature over that manifest, so verifying what you downloaded never requires trusting this web page.

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --check SHA256SUMS
Awaiting DNS

Container registry

An OCI registry for the components that ship as images: anonymous to pull, credentials to push. It lives on its own hostname because the registry API is defined at the root of a host, not under a path. Built and running; the public name is waiting on a DNS record.

skopeo copy oci:./image docker://registry.pctv.pro/pctv/<name>:<tag>