sxmo: friendly format with which to define bonsai map

This commit is contained in:
Colin 2023-11-20 07:23:47 +00:00
parent c7b065eed9
commit 96a63d0e89

View File

@ -432,45 +432,34 @@ in
event_name = eventName; event_name = eventName;
inherit transitions; inherit transitions;
}; };
in [ friendlyToBonsai = { timeout ? null, trigger ? null, power_pressed ? {}, power_released ? {}, voldown_pressed ? {}, voldown_released ? {}, volup_pressed ? {}, volup_released ? {} }: [
# define mappings for 1, 2, or 3 repeat presses of each primary button (lib.mkIf (timeout != null) (onIdle timeout))
(onEvent "power_pressed" [ (lib.mkIf (trigger != null) (doExec trigger))
(onIdle "powerbutton_three") (lib.mkIf (power_pressed != {}) (onEvent "power_pressed" (friendlyToBonsai power_pressed)))
(onEvent "power_released" [ (lib.mkIf (power_released != {}) (onEvent "power_released" (friendlyToBonsai power_released)))
(onIdle "powerbutton_one") (lib.mkIf (voldown_pressed != {}) (onEvent "voldown_pressed" (friendlyToBonsai voldown_pressed)))
(onEvent "power_released" [ (lib.mkIf (voldown_released != {}) (onEvent "voldown_released" (friendlyToBonsai voldown_released)))
(onIdle "powerbutton_two") (lib.mkIf (volup_pressed != {}) (onEvent "volup_pressed" (friendlyToBonsai volup_pressed)))
(onEvent "power_released" [ (lib.mkIf (volup_released != {}) (onEvent "volup_released" (friendlyToBonsai volup_released)))
(doExec "powerbutton_three") ];
]) in friendlyToBonsai {
]) # map sequences of "events" to an argument to pass to sxmo_hook_inputhandler.sh
])
]) power_pressed.timeout = "powerbutton_three"; # hold/stuck state machine
(onEvent "voldown_pressed" [ power_pressed.power_released.timeout = "powerbutton_one";
(onIdle "voldown_three") power_pressed.power_released.power_released.timeout = "powerbutton_two";
(onEvent "voldown_released" [ power_pressed.power_released.power_released.power_released.trigger = "powerbutton_three";
(onIdle "voldown_one")
(onEvent "voldown_released" [ voldown_pressed.timeout = "voldown_three"; # hold/stuck state machine
(onIdle "voldown_two") voldown_pressed.voldown_released.timeout = "voldown_one";
(onEvent "voldown_released" [ voldown_pressed.voldown_released.voldown_released.timeout = "voldown_two";
(doExec "voldown_three") voldown_pressed.voldown_released.voldown_released.voldown_released.trigger = "voldown_three";
])
]) volup_pressed.timeout = "volup_three"; # hold/stuck state machine
]) volup_pressed.volup_released.timeout = "volup_one";
]) volup_pressed.volup_released.volup_released.timeout = "volup_two";
(onEvent "volup_pressed" [ volup_pressed.volup_released.volup_released.volup_released.trigger = "volup_three";
(onIdle "volup_three") };
(onEvent "volup_released" [
(onIdle "volup_one")
(onEvent "volup_released" [
(onIdle "volup_two")
(onEvent "volup_released" [
(doExec "volup_three")
])
])
])
])
];
# sxmo puts in /share/sxmo: # sxmo puts in /share/sxmo:
# - profile.d/sxmo_init.sh # - profile.d/sxmo_init.sh