initial commit

This commit is contained in:
2026-04-07 23:46:35 +03:00
commit cdbd8abaa4
13 changed files with 681 additions and 0 deletions

65
config/config.go Normal file
View File

@@ -0,0 +1,65 @@
package config
import (
"fmt"
"os"
"github.com/BurntSushi/toml"
)
type Config struct {
OpenRGB OpenRGBConfig `toml:"openrgb"`
Relay RelayConfig `toml:"relay"`
Monitor MonitorConfig `toml:"monitor"`
}
type OpenRGBConfig struct {
Host string `toml:"host"`
Port int `toml:"port"`
Enabled bool `toml:"enabled"`
}
type RelayConfig struct {
Device string `toml:"device"`
Channel int `toml:"channel"`
Baud int `toml:"baud"`
Enabled bool `toml:"enabled"`
}
type MonitorConfig struct {
// Which D-Bus signals to listen on. Options: "screensaver", "logind", "all"
Method string `toml:"method"`
}
func Load(path string) (*Config, error) {
cfg := &Config{
OpenRGB: OpenRGBConfig{
Host: "localhost",
Port: 6742,
Enabled: true,
},
Relay: RelayConfig{
Device: "/dev/ttyUSB0",
Channel: 1,
Baud: 9600,
Enabled: true,
},
Monitor: MonitorConfig{
Method: "all",
},
}
data, err := os.ReadFile(path)
if err != nil {
if os.IsNotExist(err) {
return cfg, nil
}
return nil, fmt.Errorf("read config: %w", err)
}
if err := toml.Unmarshal(data, cfg); err != nil {
return nil, fmt.Errorf("parse config: %w", err)
}
return cfg, nil
}