Files
Termind/Frameworks/TermindPersistence/TerminalPreferences+Defaults.swift

36 lines
2.0 KiB
Swift

// SPDX-FileCopyrightText: 2026 Kaede Akino
// SPDX-License-Identifier: GPL-3.0-only
import Foundation
import TermindApplication
import TermindDomain
extension TerminalPreferences {
public nonisolated init(defaults: UserDefaults) {
self.init()
darkTheme = defaults.string(forKey: SettingsKey.terminalThemeDark) ?? darkTheme
lightTheme = defaults.string(forKey: SettingsKey.terminalThemeLight) ?? lightTheme
darkCustomEnabled =
defaults.object(forKey: SettingsKey.terminalCustomConfigurationDarkEnabled) as? Bool ?? false
lightCustomEnabled =
defaults.object(forKey: SettingsKey.terminalCustomConfigurationLightEnabled) as? Bool ?? false
darkCustomConfiguration = defaults.string(forKey: SettingsKey.terminalCustomConfigurationDark) ?? ""
lightCustomConfiguration = defaults.string(forKey: SettingsKey.terminalCustomConfigurationLight) ?? ""
shellIntegration = defaults.object(forKey: SettingsKey.shellIntegration) as? Bool ?? shellIntegration
copyOnSelect = defaults.bool(forKey: SettingsKey.terminalCopyOnSelect)
pasteOnRightClick = defaults.bool(forKey: SettingsKey.terminalPasteOnRightClick)
}
public nonisolated func mirror(to defaults: UserDefaults) {
defaults.set(darkTheme, forKey: SettingsKey.terminalThemeDark)
defaults.set(lightTheme, forKey: SettingsKey.terminalThemeLight)
defaults.set(darkCustomEnabled, forKey: SettingsKey.terminalCustomConfigurationDarkEnabled)
defaults.set(lightCustomEnabled, forKey: SettingsKey.terminalCustomConfigurationLightEnabled)
defaults.set(darkCustomConfiguration, forKey: SettingsKey.terminalCustomConfigurationDark)
defaults.set(lightCustomConfiguration, forKey: SettingsKey.terminalCustomConfigurationLight)
defaults.set(shellIntegration, forKey: SettingsKey.shellIntegration)
defaults.set(copyOnSelect, forKey: SettingsKey.terminalCopyOnSelect)
defaults.set(pasteOnRightClick, forKey: SettingsKey.terminalPasteOnRightClick)
}
}