[polybar] Fix pomo timer notification updating

Fixed notifications following outdated pomo timers if the timer was ever
paused or restarted. Will now limit the pomo timer to a single 'running'
instance containing the notification function.
This commit is contained in:
Marty Oehme 2020-05-25 15:00:36 +02:00
parent e513a77bc1
commit 657ef21b0b
No known key found for this signature in database
GPG key ID: 0CCB0526EFB9611A
3 changed files with 48 additions and 1 deletions

View file

@ -57,7 +57,7 @@ padding-left = 0
padding-right = 0 padding-right = 0
module-margin-left = 2 module-margin-left = 2
modules-left = workspaces modules-left = workspaces pomo
modules-center = music date papersdue modules-center = music date papersdue
modules-right = networkspeed archupdates cpu temp backlight volume battery modules-right = networkspeed archupdates cpu temp backlight volume battery
; do not use offsets for the bar, would only work with override-redirect ; do not use offsets for the bar, would only work with override-redirect
@ -235,6 +235,17 @@ click-right = exist rofi-bib-due normal "opening due papers" && rofi-bib-due -p3
format-prefix = " " format-prefix = " "
interval = 120 interval = 120
; displays a small pomodoro timer
[module/pomo]
type = custom/script
exec = $XDG_CONFIG_HOME/polybar/scripts/poly-pomo
exec-if = exist pomo normal "pomodoro timer"
; pause timer
click-left = $XDG_CONFIG_HOME/polybar/scripts/poly-pomo toggle
; restart timer
click-right = $XDG_CONFIG_HOME/polybar/scripts/poly-pomo restart
tail = true
; display unified available packages for update on arch from repos/aur ; display unified available packages for update on arch from repos/aur
; uses pacman-contrib/checkupdates if available to avoid partial arch upgrades ; uses pacman-contrib/checkupdates if available to avoid partial arch upgrades
[module/archupdates] [module/archupdates]

View file

@ -0,0 +1,35 @@
#!/usr/bin/env sh
run_notify() {
pomo notify &
PID_NOTIFY="$!"
echo "$PID_NOTIFY" >"${XDG_RUNTIME_DIR:-$HOME}"/.running-pomo.lock
}
# create background notify process; close it when this process is killed
close_notify() {
lockfile="${XDG_RUNTIME_DIR:-$HOME}"/.running-pomo.lock
[ -f "$lockfile" ] && kill "$(cat "$lockfile")"
kill "$PID_NOTIFY"
rm "${XDG_RUNTIME_DIR:-$HOME}"/.running-pomo.lock
}
trap close_notify EXIT
restart_notify() {
close_notify
run_notify
}
if [ -z "$1" ]; then
run_notify
while true; do
pomo clock
sleep 1
done
elif [ "$1" = "toggle" ]; then
pomo pause
restart_notify
elif [ "$1" = "restart" ]; then
pomo stop && pomo start
restart_notify
fi

1
polybar/.local/bin/pomo Symbolic link
View file

@ -0,0 +1 @@
../share/pomo/pomo.sh