From 824046aca14171c59d79d7ff4bb0908f8bfa51ab Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 15 Apr 2024 18:09:21 +0000 Subject: [PATCH] swaync-fbcli: fix CPU pegging --- .../programs/swaynotificationcenter/swaync-fbcli | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hosts/common/programs/swaynotificationcenter/swaync-fbcli b/hosts/common/programs/swaynotificationcenter/swaync-fbcli index 931672fd..6db682ea 100755 --- a/hosts/common/programs/swaynotificationcenter/swaync-fbcli +++ b/hosts/common/programs/swaynotificationcenter/swaync-fbcli @@ -28,21 +28,22 @@ start() { trap cleanup SIGINT SIGQUIT SIGTERM - local extraFbcliArgs=() + local timeout= case "$event" in phone-incoming-call) - extraFbcliArgs=("-t" "20") + timeout=20 ;; *) ;; esac + local cli="fbcli --event $event ${timeout:+ -t $timeout}" + # feedbackd stops playback when the caller exits # and fbcli will exit immediately if it has no stdin. # so spoof a stdin. - # TODO: this maybe pegs CPU at 100% when receiving a call, and never exits? - log "fbcli --event $event ${extraFbcliArgs[*]}" - /bin/sh -c "true | fbcli --event $event ${extraFbcliArgs[*]}" & + log "$cli" + /bin/sh -c "sleep $((3 ${timeout:+ + $timeout})) | $cli" & child=$! wait }