Themes

GhosttyTheme ships 485 terminal color themes from iTerm2-Color-Schemes. Each theme can render directly into TerminalConfiguration and participate in light/dark switching.

Catalog lookup

import GhosttyTheme

let theme = GhosttyThemeCatalog.theme(named: "Dracula")
let matches = GhosttyThemeCatalog.search("solarized")
let all = GhosttyThemeCatalog.allThemes

Apply to a terminal

Wrap one or two definitions in TerminalTheme, then assign it to the controller or state container.

import GhosttyTerminal
import GhosttyTheme

let dark = GhosttyThemeCatalog.theme(named: "Dracula")!
let light = GhosttyThemeCatalog.theme(named: "Solarized Light")!

let theme = TerminalTheme(
    light: light.toTerminalConfiguration(),
    dark: dark.toTerminalConfiguration()
)

terminal.setTheme(theme)

TerminalSurfaceView follows the SwiftUI color scheme and asks TerminalController to resolve the effective config for the active appearance.

Custom colors

let config = TerminalConfiguration.default
    .background("#101010")
    .foreground("#f0f0f0")
    .cursorColor("#ffd866")
    .selectionBackground("#334455")
    .palette(0, color: "#1b1d23")
    .palette(1, color: "#ef6155")

terminal.setTerminalConfiguration(config)