dish(1)

DISH(1) User Commands DISH(1)

NAME

dish - wireless gamepad client for the Satellite server

SYNOPSIS

dish

DESCRIPTION

Dish streams a local gamepad to a Satellite server on the same network over an encrypted UDP channel. Sticks, buttons, motion and touchpad travel out; rumble and battery level come back. Servers are found over LAN broadcast and mDNS, or entered by address, and pairing pins the server's key on first use.

Dish takes no command-line options. Everything is configured in the UI.

USB-DIRECT

Supported controllers can be claimed directly through /dev/hidraw*, which raises the polling rate above what the SDL path allows. Those nodes are root-only by default, so the claim needs the udev rule this package installs at /usr/lib/udev/rules.d/70-dish-hidraw.rules. If the rule is absent, or udev has not been reloaded since it was installed, every claim fails with a permission error and Dish keeps the controller on the SDL path — still streaming, just rate-capped. Reload with:

sudo udevadm control --reload-rules && sudo udevadm trigger

FILES

~/.config/TinkerNorth/Dish.conf
Settings, paired servers and pinned keys.
$XDG_STATE_HOME/dish/crash.log
Backtrace written by the crash handler.
/usr/lib/udev/rules.d/70-dish-hidraw.rules
hidraw access for the supported controllers.

UPDATES

Dish never installs its own updates. It checks a release manifest and links out to the release page; the package manager owns the binary. Set updates_check_enabled=false in the configuration to disable the check entirely.

BUGS

Report at https://github.com/TinkerNorth/dish-linux/issues

SEE ALSO

udevadm(8)

2026-08-20 dish