[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:
parent
e513a77bc1
commit
657ef21b0b
3 changed files with 48 additions and 1 deletions
|
|
@ -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]
|
||||||
|
|
|
||||||
35
polybar/.config/polybar/scripts/poly-pomo
Executable file
35
polybar/.config/polybar/scripts/poly-pomo
Executable 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
1
polybar/.local/bin/pomo
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../share/pomo/pomo.sh
|
||||||
Loading…
Add table
Add a link
Reference in a new issue