Hey,
I recently made a timer script for my waybar. Maybe someone else may want to use it, so here it is.
Also, is there maybe another way of doing it or does anyone have suggestions on how to make it a bit better?
Put this into $HOME/.config/waybar/modules/timer.sh or make changes according to another path inside the waybar config file. Also you need a timer.wav sound file.
#!/bin/sh
CUR_TIME=$(date +%s)
STATUS=$(cat /var/tmp/waybar_timer)
if [ $STATUS == "READY" ]; then
echo ""
elif [ $STATUS == "FINISHED" ]; then
mpv $HOME/.config/waybar/modules/timer.wav &
echo "READY" > /var/tmp/waybar_timer
echo ""
elif [[ $STATUS > $CUR_TIME ]]; then
DIFF=$(( (STATUS - CUR_TIME) ))
echo $( date -d @$DIFF +%M:%S )
else
if [ -f "/var/tmp/waybar_timer" ]; then
echo "FINISHED" > /var/tmp/waybar_timer
echo ""
else
echo "READY" > /var/tmp/waybar_timer
echo ""
fi
fi
Here is a suggestion for improvement from me. To use the mouse scroll keys for a gradual increase (in my case in 5 minute increments) create the following additional script waybar-timer-steps.sh
#!/bin/bash
TIMER_FILE="/var/tmp/waybar_timer"
case "$1" in
up)
if [ -f "$TIMER_FILE" ] && [ "$(cat "$TIMER_FILE")" != "READY" ]; then
CURRENT_TIMER=$(cat "$TIMER_FILE")
else
CURRENT_TIMER=$(date +%s)
fi
if [ "$CURRENT_TIMER" != "READY" ]; then
NEW_TIMER=$((CURRENT_TIMER + 5 * 60))
echo $NEW_TIMER > "$TIMER_FILE"
fi
echo $(date -d @$CURRENT_TIMER +%M:%S)
;;
down)
if [ -f "$TIMER_FILE" ] && [ "$(cat "$TIMER_FILE")" != "READY" ]; then
CURRENT_TIMER=$(cat "$TIMER_FILE")
else
CURRENT_TIMER=$(date +%s)
fi
NEW_TIMER=$((CURRENT_TIMER - 5 * 60))
if [ "$NEW_TIMER" -lt "$CURRENT_TIMER" ]; then
echo "$NEW_TIMER" > "$TIMER_FILE"
echo $(date -d @"$NEW_TIMER" +%M:%S)
else
echo "READY" > "$TIMER_FILE"
fi
;;
*)
echo "Ungültige Option ausgewählt. Bitte wähle up oder down."
;;
esac
And change your waybar module configuration like this: