8501fd074c
Go TUI sleep timer with modular architecture. - Config: YAML-based, profile inheritance, auto WM detection - Engine: timer, executor, stage pipeline (pre→timer→post) - Modules: workspace (niri/hyprland/kde), media, lock, kill, notify, sound, brightness, mute, custom, script - TUI: bubbletea app with profiles, module toggles, progress bar - CLI: run, list-profiles, export, import, history, stats - History: JSONL log with statistics - QR: config export as ASCII QR
58 lines
941 B
Go
58 lines
941 B
Go
package config
|
|
|
|
func DefaultConfig() *Config {
|
|
return &Config{
|
|
Profiles: map[string]Profile{
|
|
"default": {
|
|
Modules: DefaultModules(),
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func DefaultModules() *Modules {
|
|
return &Modules{
|
|
Workspace: &WorkspaceConfig{
|
|
Enabled: true,
|
|
Backend: "",
|
|
Workspace: 12,
|
|
},
|
|
Media: &MediaConfig{
|
|
Enabled: true,
|
|
Action: "stop",
|
|
},
|
|
Lock: &LockConfig{
|
|
Enabled: true,
|
|
Command: "",
|
|
},
|
|
Kill: &KillConfig{
|
|
Enabled: false,
|
|
Processes: nil,
|
|
},
|
|
Notify: &NotifyConfig{
|
|
Enabled: false,
|
|
Sound: "",
|
|
},
|
|
Sound: &SoundConfig{
|
|
Enabled: true,
|
|
File: "/usr/share/sounds/freedesktop/stereo/complete.oga",
|
|
},
|
|
Brightness: &BrightnessConfig{
|
|
Enabled: false,
|
|
Value: 0,
|
|
},
|
|
Mute: &MuteConfig{
|
|
Enabled: false,
|
|
},
|
|
Custom: &CustomConfig{
|
|
Enabled: false,
|
|
Pre: nil,
|
|
Post: nil,
|
|
},
|
|
Script: &ScriptConfig{
|
|
Enabled: false,
|
|
Path: "",
|
|
},
|
|
}
|
|
}
|