vmux
AppsvmuxTV

Themes and Settings

Pick a theme, scale the font for ten-foot viewing, and manage open sessions from the Settings tab.

Where settings live

Everything user-configurable in vmuxTV lives in the Settings tab. Open it by swiping the Siri Remote up to the tab bar and selecting the gear icon.

The Settings screen is a single Form view with three sections:

  1. Theme — color scheme picker.
  2. Font Size — terminal font size for the active session.
  3. Sessions — every currently open session, with a close action.

There is no separate keyboard editor, no command palette, and no advanced flags. Apple TV is intentionally a narrow surface.

Theme picker

Pick from the same theme catalog the rest of the vmux family ships. Themes are split into Dark and Light groups in the picker:

GroupExamples
DarkGhostty, Tokyo Night, Catppuccin Mocha, Dracula, Gruvbox Dark, Nord, One Dark, Solarized Dark, GitHub Dark, Monokai, and others
LightSolarized Light, Catppuccin Latte, GitHub Light, One Light, and others

The theme applies immediately. The terminal background becomes the theme's background color, the cursor and ANSI palette switch over, and the status bar text adopts an opacity that complements the new background.

The selection is stored on the device under the key vmuxTV.selectedThemeName and persists across launches. Each Apple TV in the family stores its own choice — themes do not sync between vmux apps automatically.

Importing custom themes

vmuxTV does not support importing VSCode .json themes. Theme import is available on vmuxMac, vmuxPhone, and vmux on visionOS because those platforms expose a Files-style picker; tvOS does not.

If you want a theme that is not in the bundled catalog, the workflow is:

  1. Add it to one of the other vmux apps using their theme importer.
  2. The bundled catalog grows over releases. File a request and the theme often lands in the next ship.

For the broader theme picture, see Themes.

Font size

Terminal font size is controlled per-session and only appears in Settings when at least one session is open.

SettingTypeDescriptionDefault
Font SizeStepperActive session's font size, in points. Increases or decreases in steps of 2.32 pt
Range20 pt minimum, 48 pt maximum

The default of 32 pt is much larger than the rest of the vmux family because Apple TV is read at a typical sofa-to-screen distance of two to three meters. At 32 pt on a 4K 65" television, an 80-column terminal fills roughly the middle two-thirds of the screen and is comfortably legible.

Use the + and - circle buttons next to the size readout to adjust. The change applies immediately to the active session and is stored on that session only — opening a new session resets the size to the 32 pt default.

There is no built-in font picker on tvOS. JetBrains Mono Nerd Font (Regular, Bold, Italic, Bold Italic) ships with vmuxTV and is the only option. This keeps the install size small and avoids the font-import flow that does not work without a Files picker.

Picking a font size for your TV

A rough table for typical setups:

TV sizeViewing distanceRecommended font size
50" 4K2 m28 – 32 pt
55" 4K2.5 m32 – 36 pt
65" 4K3 m32 – 38 pt
75" 4K3 m36 – 42 pt
85" 4K3.5 m40 – 48 pt
1080p (any size)Add 4 – 8 pt vs. the 4K row at the same distance

Bigger fonts mean fewer columns and rows. At 48 pt on a 65" 4K display, expect roughly a 60 × 18 grid. If your remote tools assume an 80-column width, drop the font size to 28 – 30 pt to keep the layout intact.

Sessions list

The Sessions section in Settings is the only place where you can close a session. It lists every open session in order of creation:

  • Title — the session's title (the OSC 0 window title from the remote shell, or the host's display title if the shell has not set one).
  • Subtitle — the host's username@host:port destination.
  • Status dot — green for connected, orange for connecting, gray for disconnected, red for failed.

Long-press a row on the Siri Remote (or click the Options button on a paired controller) to open the context menu. The only entry is Close, which is destructive — it immediately disconnects the underlying SSH or Mosh session and removes the entry from the list.

If no sessions are open, the section reads No active sessions and the font-size controls disappear.

What is not in Settings

Quite a lot, by design. The following options are present on other vmux apps and intentionally excluded from vmuxTV:

SettingWhy it is not on tvOS
Font pickertvOS has no font import path; JetBrains Mono ships built-in.
CRT effects (scanlines, vignette, bloom, etc.)The renderer pipes directly to the TV; CRT post-processing only runs where the app owns a display layer.
Glass background and opacitytvOS draws solid backgrounds; there is no system glass material to render against.
App LockApple TV does not expose Face ID, Touch ID, or Optic ID, and a TV in a living room is not the same threat model as a phone.
Keybind editorCustomize keybinds on vmuxMac or vmuxPhone — the same map drives controller buttons on Apple TV.
Diagnostics exporttvOS does not have a system clipboard for the JSON payload to land in. Use diagnostics export on another vmux app on the same iCloud account.
Command paletteApple TV's input model is too narrow for fuzzy-search command UI. Settings cover the same ground.

Persistence

Settings are saved automatically as you change them.

  • Theme selection is stored in UserDefaults under vmuxTV.selectedThemeName.
  • Saved hosts are stored in a JSON file in the app's container under vmuxTV/.
  • Passwords are stored in the system Keychain under the service app.vmux.tv.passwords. They are never written to disk in plaintext.
  • Font size lives on the active session in memory and resets to 32 pt when a new session opens.
  • Open sessions do not persist across app launches. Quitting vmuxTV (or letting tvOS terminate it) closes every session.