Add ability to change modes via rules.

This commit is contained in:
Anna Rose Wiggins 2025-07-03 17:10:46 -04:00
parent 8fafe3d27c
commit 034d2a8718
4 changed files with 27 additions and 10 deletions

View file

@ -109,6 +109,11 @@ func makeLatchedRule(ruleConfig RuleConfig, pDevs map[string]*evdev.InputDevice,
func makeRuleTarget(targetConfig RuleTargetConfig, devs map[string]*evdev.InputDevice) (mappingrules.RuleTarget, error) {
ruleTarget := mappingrules.RuleTarget{}
if len(targetConfig.ModeSelect) > 0 {
ruleTarget.ModeSelect = targetConfig.ModeSelect
return ruleTarget, nil
}
device, ok := devs[targetConfig.Device]
if !ok {
return mappingrules.RuleTarget{}, fmt.Errorf("couldn't build rule due to non-existent device '%s'", targetConfig.Device)

View file

@ -28,8 +28,9 @@ type RuleConfig struct {
}
type RuleTargetConfig struct {
Device string `yaml:"device"`
Button string `yaml:"button,omitempty"`
Axis string `yaml:"axis,omitempty"`
Inverted bool `yaml:"inverted,omitempty"`
Device string `yaml:"device,omitempty"`
Button string `yaml:"button,omitempty"`
Axis string `yaml:"axis,omitempty"`
Inverted bool `yaml:"inverted,omitempty"`
ModeSelect []string `yaml:"mode_select,omitempty"`
}