Added dark theme and white theme switching

This commit is contained in:
2025-06-09 02:29:15 +08:00
parent 7f97b4a937
commit aff08f4d3d
23 changed files with 630 additions and 218 deletions

View File

@@ -56,6 +56,18 @@ const (
ThemeTokyoNightDay ThemeType = "tokyo-night-day"
)
// SystemThemeType 系统主题类型定义
type SystemThemeType string
const (
// SystemThemeDark 深色系统主题
SystemThemeDark SystemThemeType = "dark"
// SystemThemeLight 浅色系统主题
SystemThemeLight SystemThemeType = "light"
// SystemThemeAuto 跟随系统主题
SystemThemeAuto SystemThemeType = "auto"
)
// GeneralConfig 通用设置配置
type GeneralConfig struct {
AlwaysOnTop bool `json:"alwaysOnTop" yaml:"always_on_top" mapstructure:"always_on_top"` // 窗口是否置顶
@@ -95,8 +107,9 @@ type EditingConfig struct {
// AppearanceConfig 外观设置配置
type AppearanceConfig struct {
Language LanguageType `json:"language" yaml:"language" mapstructure:"language"` // 界面语言
Theme ThemeType `json:"theme" yaml:"theme" mapstructure:"theme"` // 编辑器主题
Language LanguageType `json:"language" yaml:"language" mapstructure:"language"` // 界面语言
Theme ThemeType `json:"theme" yaml:"theme" mapstructure:"theme"` // 编辑器主题
SystemTheme SystemThemeType `json:"systemTheme" yaml:"system_theme" mapstructure:"system_theme"` // 系统界面主题
}
// KeyBindingsConfig 快捷键设置配置
@@ -164,8 +177,9 @@ func NewDefaultAppConfig() *AppConfig {
AutoSaveDelay: 5000, // 5秒后自动保存
},
Appearance: AppearanceConfig{
Language: LangZhCN,
Theme: ThemeDefaultDark, // 默认使用深色主题
Language: LangZhCN,
Theme: ThemeDefaultDark, // 默认使用深色主题
SystemTheme: SystemThemeDark, // 默认使用深色系统主题
},
KeyBindings: KeyBindingsConfig{
// 预留给未来的快捷键配置

View File

@@ -127,6 +127,7 @@ func setDefaults(v *viper.Viper) {
// 外观设置默认值
v.SetDefault("appearance.language", defaultConfig.Appearance.Language)
v.SetDefault("appearance.theme", defaultConfig.Appearance.Theme)
v.SetDefault("appearance.system_theme", defaultConfig.Appearance.SystemTheme)
// 元数据默认值
v.SetDefault("metadata.version", defaultConfig.Metadata.Version)
@@ -262,6 +263,7 @@ func (cs *ConfigService) ResetConfig() {
// 外观设置 - 批量设置到viper中
cs.viper.Set("appearance.language", defaultConfig.Appearance.Language)
cs.viper.Set("appearance.theme", defaultConfig.Appearance.Theme)
cs.viper.Set("appearance.system_theme", defaultConfig.Appearance.SystemTheme)
// 元数据 - 批量设置到viper中
cs.viper.Set("metadata.version", defaultConfig.Metadata.Version)