change configuration format
This commit is contained in:
parent
7128ba2425
commit
7915a0dbe4
25
config.go
25
config.go
|
@ -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
|
||||
}
|
||||
|
|
138
config.yaml
138
config.yaml
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue