Settings in config.json
| Setting | What it does |
|---|---|
favorites |
The starting Favorites row, by app name. Once you change Favorites on the TV, the TV’s choice wins. |
exclude |
Apps to leave out of the launcher entirely, by name (e.g. ["Music", "Sports Alert"]). |
inputNames |
Names for inputs, by ID (e.g. {"HDMI_1": "Xbox"}). Otherwise the device’s own name or the TV’s label is used. |
showAllInputs |
true to show inputs with nothing plugged in. |
weather.zip |
The ZIP code for the weather. Leave weather out to hide it. weather.units is fahrenheit or celsius. |
screensaverMinutes |
Idle minutes before the screensaver starts (default 5); 0 turns it off. |
screensaverFolder |
A folder of your own pictures and videos for the screensaver, shown in random order, e.g. "~/Pictures/Launcher screen savers". Pictures stay up 12 seconds; videos play through. Leave it empty to show Plex artwork instead. |
screensaverNames |
Names for the screensaver’s files in the sidebar’s picker, by file name, e.g. {"IMG_0042.jpg": "Mountain lake"}. Files without one are named after the file. |
relay.host |
The always-on computer that runs the phone remote’s relay (npm run relay-setup), reached over SSH: a host, or user@host. |
relay.dir |
Where the relay goes on that computer, a path from the SSH user’s home folder or an absolute one (default tv-remote). For a Docker manager such as Arcane or Dockge, its projects folder plus /tv-remote. |
tv.mac |
The MAC address of the TV’s wired network port, for the relay to wake it. Read from the TV when it’s left out. |
plex.appId |
The app the Plex cards open, by app ID. Defaults to the official Plex app; e.g. "com.beb.plxnative" for PlxNative. |
theme |
The starting theme: ambient, aurora, midnight, ocean, sunset, space, or a wallpaper’s ID such as wall-revan (wall- and its name in lowercase, with dashes for spaces). Once you pick one with the blue button, the TV’s choice wins. |
tiles |
Your own tile looks, keyed by app name or ID, or input ID: title (a new name), bgColor, icon (a picture; plain margins are trimmed), removeBackground (makes the icon’s plain border see-through, for icons that come on a solid square), and for the glass icons glassColor (the logo’s color) and glassIcon (a picture or .svg to use as its silhouette). E.g. {"Netflix": {"bgColor": "#000000"}, "HDMI_2": {"icon": "media/tiles/spectrum-tv.png", "bgColor": "#ffffff"}}. |
wallpapers |
Your own wallpapers, each a theme of its own: a list of { "name": "Revan", "file": "~/Videos/revan.mp4" }. A file is a picture or a short looping video (.mp4 or .webm); videos play silently. Keep videos short; the whole file goes onto the TV. The older single wallpaper (a file) still works, as a theme named Wallpaper. |
Pictures and videos for the wallpapers and screensaver are converted to 1080p (JPEG, or silent H.264 video) when they’re synced; a wallpaper video that’s already H.264 at 1080p or less goes as it is. Converted copies are kept in media/cache, so only new or changed files are converted again.
The updater picks up changes here, and files added to the screensaver folder, within the hour. To see them right away, run npm run sync and npm run deploy.

