#!/bin/bash pomodoro_monitor () { local signal local -a msg gdbus monitor \ --session \ --dest org.gnome.Shell \ --object-path /timepp/zagortenay333/Pomodoro | while read -r -a msg; do signal=${msg[1]} signal=${signal##*.} case "$signal" in "POMO") echo "$signal";; "STOPPED") echo "$signal";; "LONG_BREAK") echo "$signal";; "SHORT_BREAK") echo "$signal";; esac done } # Examples: # timer_start # timer_start 60 # timer_start 30 "get to the chopaaaaaaaaaaa" timer_start () { local time="${1:-0}" local msg="${2:-'null'}" >/dev/null gdbus call \ --session \ --dest org.gnome.Shell \ --object-path /timepp/zagortenay333/Timer \ --method timepp.zagortenay333.Timer.start_from_default_preset "$time" "$msg" } get_tracked_tasks () { local res=$( gdbus call \ --session \ --dest org.gnome.Shell \ --object-path /timepp/zagortenay333/TimeTracker \ --method timepp.zagortenay333.TimeTracker.get_tracked_tasks ) echo "$res" } get_tracked_projects () { local res=$( gdbus call \ --session \ --dest org.gnome.Shell \ --object-path /timepp/zagortenay333/TimeTracker \ --method timepp.zagortenay333.TimeTracker.get_tracked_projects ) echo "$res" } tracker_monitor () { local task # the task string local sig local msg local -a arr gdbus monitor --session --dest org.gnome.Shell \ --object-path /timepp/zagortenay333/TimeTracker | while read -r msg; do read -r -a arr <<< $(echo $msg) sig=${arr[1]} sig=${sig##*.} arr[0]='' arr[1]='' task="${arr[@]}" case "$sig" in "started_tracking") notify-send "started:" "$task";; "stopped_tracking") notify-send "stopped:" "$task";; esac done }