Initial Push
This commit is contained in:
71
Settings.swift
Normal file
71
Settings.swift
Normal file
@@ -0,0 +1,71 @@
|
||||
import Cocoa
|
||||
import Foundation
|
||||
|
||||
// MARK: - Terminal Settings
|
||||
class TerminalSettings {
|
||||
static let shared = TerminalSettings()
|
||||
|
||||
var theme: Theme = .dracula
|
||||
var fontSize: CGFloat = 14
|
||||
var fontName: String = "Menlo"
|
||||
var opacity: CGFloat = 1.0
|
||||
var aiProvider: AIProvider = .ollama
|
||||
var openAIKey: String = ""
|
||||
var ollamaURL: String = "http://localhost:11434"
|
||||
var ollamaModel: String = "llama3.2:latest"
|
||||
var enableAutoSuggestions: Bool = true
|
||||
var maxHistorySize: Int = 1000
|
||||
|
||||
enum AIProvider: String, CaseIterable {
|
||||
case none = "None"
|
||||
case openai = "OpenAI"
|
||||
case ollama = "Ollama"
|
||||
}
|
||||
|
||||
struct Theme {
|
||||
let name: String
|
||||
let background: NSColor
|
||||
let foreground: NSColor
|
||||
let cursor: NSColor
|
||||
let selection: NSColor
|
||||
let suggestion: NSColor
|
||||
|
||||
static let dracula = Theme(
|
||||
name: "Dracula",
|
||||
background: NSColor(red: 0.16, green: 0.16, blue: 0.21, alpha: 1.0),
|
||||
foreground: NSColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1.0),
|
||||
cursor: NSColor(red: 0.97, green: 0.97, blue: 0.95, alpha: 1.0),
|
||||
selection: NSColor(red: 0.27, green: 0.28, blue: 0.35, alpha: 1.0),
|
||||
suggestion: NSColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 0.6)
|
||||
)
|
||||
|
||||
static let solarizedDark = Theme(
|
||||
name: "Solarized Dark",
|
||||
background: NSColor(red: 0.0, green: 0.17, blue: 0.21, alpha: 1.0),
|
||||
foreground: NSColor(red: 0.51, green: 0.58, blue: 0.59, alpha: 1.0),
|
||||
cursor: NSColor(red: 0.51, green: 0.58, blue: 0.59, alpha: 1.0),
|
||||
selection: NSColor(red: 0.03, green: 0.21, blue: 0.26, alpha: 1.0),
|
||||
suggestion: NSColor(red: 0.4, green: 0.5, blue: 0.5, alpha: 0.6)
|
||||
)
|
||||
|
||||
static let nord = Theme(
|
||||
name: "Nord",
|
||||
background: NSColor(red: 0.18, green: 0.20, blue: 0.25, alpha: 1.0),
|
||||
foreground: NSColor(red: 0.85, green: 0.87, blue: 0.91, alpha: 1.0),
|
||||
cursor: NSColor(red: 0.85, green: 0.87, blue: 0.91, alpha: 1.0),
|
||||
selection: NSColor(red: 0.26, green: 0.30, blue: 0.37, alpha: 1.0),
|
||||
suggestion: NSColor(red: 0.5, green: 0.55, blue: 0.6, alpha: 0.6)
|
||||
)
|
||||
|
||||
static let classic = Theme(
|
||||
name: "Classic",
|
||||
background: .black,
|
||||
foreground: NSColor(red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0),
|
||||
cursor: NSColor(red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0),
|
||||
selection: NSColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1.0),
|
||||
suggestion: NSColor(red: 0.0, green: 0.6, blue: 0.0, alpha: 0.6)
|
||||
)
|
||||
|
||||
static let allThemes: [Theme] = [.dracula, .solarizedDark, .nord, .classic]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user