Theme catalog

GhosttyThemeCatalog

public enum GhosttyThemeCatalog {
    public static let allThemes: [GhosttyThemeDefinition]
    public static func theme(named name: String) -> GhosttyThemeDefinition?
    public static func search(_ query: String) -> [GhosttyThemeDefinition]
}

GhosttyThemeDefinition

public struct GhosttyThemeDefinition: Sendable, Hashable, Identifiable {
    public var id: String { get }
    public let name: String
    public let background: String
    public let foreground: String
    public let cursorColor: String?
    public let cursorText: String?
    public let selectionBackground: String?
    public let selectionForeground: String?
    public let palette: [Int: String]
}

Conversion helpers

public extension GhosttyThemeDefinition {
    func toTerminalConfiguration() -> TerminalConfiguration
    func toTerminalTheme() -> TerminalTheme
    var isDark: Bool { get }
}