package app import ( "encoding/json" "log" "os" ) type Config struct { Keybinds map[InputAction]string `json:"keybinds"` } var defaultConfig Config = Config{ Keybinds: map[InputAction]string{ InputNextFile: "Right", InputPreviousFile: "Left", InputMinimize: "Escape", InputClearFilter: "0", InputGroup1: "1", InputGroup2: "2", InputGroup3: "3", InputGroup4: "4", InputGroup5: "5", InputGroup6: "6", InputGroup7: "7", InputGroup8: "8", InputGroup9: "9", }, } var configPaths = []string{"config.json"} func LoadConfig() (Config, error) { log.Println(" >> load config") config := defaultConfig for _, path := range configPaths { configJson, err := os.ReadFile(path) if err != nil { if os.IsNotExist(err) { continue } return config, err } log.Printf(" - load from %s", path) return config, json.Unmarshal(configJson, &config) } return config, os.ErrNotExist }