change configuration format

This commit is contained in:
Simon Vieille 2023-08-26 11:40:58 +02:00
parent 7128ba2425
commit 7915a0dbe4
Signed by: deblan
GPG key ID: 579388D585F70417
2 changed files with 116 additions and 47 deletions

View file

@ -1,6 +1,7 @@
package main
import (
"fmt"
"gopkg.in/yaml.v3"
"os"
)
@ -15,15 +16,25 @@ type ServerConfig struct {
Auth ServerAuthConfig `yaml:"auth"`
}
type RemoteConfigItem struct {
Type string `yaml:"type"`
Label string `yaml:"label"`
Items []map[string]string `yaml:"items"`
type RemoteItemConfigItem struct {
Label string `yaml:"label"`
Message string `yaml:"message"`
}
type RemoteItemConfig struct {
Type string `yaml:"type"`
Label string `yaml:"label"`
Items []RemoteItemConfigItem `yaml:"items"`
}
type RemoteItem struct {
Label string `yaml:"label"`
Items []RemoteItemConfig `yaml:"items"`
}
type Config struct {
Server ServerConfig `yaml:"server"`
Remote map[string][]RemoteConfigItem `yaml:"remote"`
Server ServerConfig `yaml:"server"`
Remote []RemoteItem `yaml:"remote"`
}
func createConfigFromFile(file string) (Config, error) {
@ -40,5 +51,7 @@ func createConfigFromFile(file string) (Config, error) {
return value, err
}
fmt.Printf("%+v\n", value)
return value, nil
}

View file

@ -1,48 +1,104 @@
server:
listen: 0.0.0.0:4000
auth:
username: admin
password: admin
listen: 0.0.0.0:4000
remote:
Keyboard:
- type: live_text
label: Live text
- type: text
label: Text
- type: keys
label: Keys
- type: shortcuts
label: Shortcuts
i3:
- type: messages
label: Workspaces
items:
- '1. DBL': '{"type":"workspace","value":"1. DBL"}'
- '2. WWW': '{"type":"workspace","value":"2. WWW"}'
- '3. MAIL': '{"type":"workspace","value":"3. MAIL"}'
- '4. IM': '{"type":"workspace","value":"4. IM"}'
- '5': '{"type":"workspace","value":"5"}'
- '6. MEDIA': '{"type":"workspace","value":"6. MEDIA"}'
- '7. DEV': '{"type":"workspace","value":"7. DEV"}'
- '8. DEV': '{"type":"workspace","value":"8. DEV"}'
- '9. DEV': '{"type":"workspace","value":"9. DEV"}'
- '10': '{"type":"workspace","value":"10"}'
- '11': '{"type":"workspace","value":"11"}'
- '12': '{"type":"workspace","value":"12"}'
- label: Keyboard
items:
- type: live_text
label: Live text
- type: text
label: Text
- type: keys
label: Keys
- type: shortcuts
label: Shortcuts
- label: i3
items:
- type: messages
label: Workspaces
items:
- label: '1. DBL'
message: '{"type":"workspace","value":"1. DBL"}'
- label: '2. WWW'
message: '{"type":"workspace","value":"2. WWW"}'
- label: '3. MAIL'
message: '{"type":"workspace","value":"3. MAIL"}'
- label: '4. IM'
message: '{"type":"workspace","value":"4. IM"}'
- label: '5'
message: '{"type":"workspace","value":"5"}'
- label: '6. MEDIA'
message: '{"type":"workspace","value":"6. MEDIA"}'
- label: '7. DEV'
message: '{"type":"workspace","value":"7. DEV"}'
- label: '8. DEV'
message: '{"type":"workspace","value":"8. DEV"}'
- label: '9. DEV'
message: '{"type":"workspace","value":"9. DEV"}'
- label: '10'
message: '{"type":"workspace","value":"10"}'
- label: '11'
message: '{"type":"workspace","value":"11"}'
- label: '12'
message: '{"type":"workspace","value":"12"}'
- type: messages
label: Software
items: []
Mouse:
- type: mouse
Media:
- type: spotify
label: Spotify
- type: volume
label: Volume
Desktop:
- type: screenshot
label: Screenshot
- type: live_video
label: Live video
- type: messages
label: Software
items:
- label: 'alacritty'
message: '{"type":"messages","value":[{"type":"keys","value":"win,d"},{"type":"text","value":"alacritty"},{"type":"key","value":"enter"}]}'
- label: 'dmenu'
message: '{"type":"keys","value":"win,d"}'
- type: messages
label: UI
items:
- label: 'win+z'
message: '{"type":"keys","value":"win,z"}'
- label: 'win+e'
message: '{"type":"keys","value":"win,e"}'
- label: 'zp'
message: '{"type":"messages","value":[{"type":"text","value":"zp"},{"type":"key","value":"enter"}]}'
- label: 'zm'
message: '{"type":"messages","value":[{"type":"text","value":"zm"},{"type":"key","value":"enter"}]}'
- type: messages
label: Screensaver
items:
- label: 'ON'
message: '{"type":"messages","value":[{"type":"keys","value":"win,d"},{"type":"text","value":"no-screensaver"},{"type":"key","value":"enter"}]}'
- label: 'OFF'
message: '{"type":"messages","value":[{"type":"keys","value":"win,d"},{"type":"text","value":"pkill no-screensaver"},{"type":"key","value":"enter"}]}'
- type: messages
label: Movie
items:
- label: 'v;mll'
message: '{"type":"messages","value":[{"type":"text","value":"v;mll"},{"type":"key","value":"enter"}]}'
- label: 'mup'
message: '{"type":"messages","value":[{"type":"text","value":"mup"},{"type":"key","value":"enter"}]}'
- label: 'mug'
message: '{"type":"messages","value":[{"type":"text","value":"mug"},{"type":"key","value":"enter"}]}'
- label: 'mup 1'
message: '{"type":"messages","value":[{"type":"text","value":"mup 1"},{"type":"key","value":"enter"}]}'
- label: 'mug 1'
message: '{"type":"messages","value":[{"type":"text","value":"mug 1"},{"type":"key","value":"enter"}]}'
- label: Mouse
items:
- type: mouse
- label: Media
items:
- type: spotify
label: Spotify
- type: volume
label: Volume
- label: Desktop
items:
- type: screenshot
label: Screenshot
- type: live_video
label: Live video