~mil/sxmo-utils

28172aa6757042ff2e12cf753d76166e8d67b582 — Stacy Harper 3 months ago 8d2afc8
Prevent more multikey hold chains

I enlarge the sleep on overflow by 2. But I make this check only
applicable for holded buttons.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
1 files changed, 6 insertions(+), 4 deletions(-)

M scripts/core/sxmo_multikey.sh
M scripts/core/sxmo_multikey.sh => scripts/core/sxmo_multikey.sh +6 -4
@@ 16,22 16,24 @@ else
	counter=1
fi

printf %s "$counter" > "$count_file"

shift "$counter"
if [ "$#" -eq 0 ]; then
	exit
fi
printf %s "$counter" > "$count_file"

sleep "$threshold"

if [ "$counter" != "$(cat "$count_file")" ]; then
new_counter="$(cat "$count_file")"
if [ "$counter" != "$new_counter" ] && [ "$#" -ne 1 ]; then # Only the last count can overflow
	exit
fi

eval "$1" &

if [ "$#" -eq 1 ]; then
	sleep "$threshold" # prevent holded presses to chain
if [ "$counter" != "$new_counter" ]; then # overlowed
	printf "%s * 2" "$threshold" | bc | xargs sleep
fi

rm "$count_file"