Themes & Customisation

23 built-in terminal themes, a real GUI theme editor, JSON import/export, per-host overrides, color tags, and a customisable 1–5 row on-screen keyboard.

🎨 The 23 Built-in Themes

Defined in BuiltInThemes.kt:

  • System (3): System Default, System Dark, System Light
  • Classic (12): Dracula, Solarized Dark, Solarized Light, Nord, One Dark, Monokai, Gruvbox Dark, Gruvbox Light, Tomorrow Night, GitHub Light, Atom One Dark, Material Dark
  • Modern (8): Tokyo Night, Tokyo Night Light, Catppuccin, RosΓ© Pine, Everforest, Kanagawa, Night Owl, Cobalt2

All themes ship with a 16-color palette (8 normal + 8 bright), foreground, background, cursor, and selection colors. WCAG-AA contrast checks pass on all dark themes.

✏️ GUI Theme Editor (Wave 2.4)

ThemeEditorActivity β€” make your own themes without writing JSON.

  • Color picker for each of the 16 ANSI colors plus FG / BG / cursor / selection
  • Live preview pane shows your colors against typical terminal output
  • Name and save β€” appears alongside the built-ins
  • Duplicate a built-in theme to use as a starting point
  • Optionally export the theme as JSON for sharing

πŸ“¦ JSON Import / Export

  • Import: menu β†’ Import Theme β†’ pick a .json file. TabSSH validates it (structure + color format) and adds it to your theme list.
  • Export: long-press a theme β†’ Export. Choose where to save via SAF.
  • Compatible with the format used by other terminal emulators that ship JSON theme bundles.
  • Shared with desktop: the JSON theme format is identical across mobile and desktop β€” when desktop ships theme support, your custom themes will move across without conversion.

πŸŒ— App Theme (Light / Dark / System)

  • Settings β†’ General β†’ App theme: Dark, Light, or Follow system.
  • Live switching β€” no restart required (uses AppCompatDelegate.setDefaultNightMode).
  • Material Design 3 with proper DayNight colors (values-night/colors.xml).
  • This is the app chrome (toolbars, list backgrounds, menus). The terminal theme is independent.

🎯 Per-Host Theme Override

  • From a connection's edit screen, pick a specific terminal theme. Overrides the global default.
  • Useful for visually distinguishing prod / staging / lab β€” set "Tokyo Night" for prod, "Solarized Light" for lab, etc.

🏷️ Color Tags Per Host (Wave 3.1)

A separate, lighter-weight visual cue than picking a whole theme.

  • Each connection profile has a color_tag field β€” an ARGB int.
  • Pick from a palette in the connection edit screen.
  • Surfaces in the connection list and tab strip β€” instantly tells you which host you're on.
  • Independent from group color (which colors a whole folder of hosts).

⌨️ Customisable On-Screen Keyboard

  • 1 to 5 extra keyboard rows above the standard Android IME.
  • Pick which keys go on which row in Settings β†’ Keyboard customisation.
  • Modifier keys (Ctrl, Alt, Esc) can be sticky or one-shot.
  • Useful presets for tmux, screen, vim, emacs.
Back to Documentation All Features β†’