Я ищу приложение для организации моих ежедневных задач в различных таймерах обратного отсчета, подобных тому, найденному по www.timeanddate.com/timer/
Функции, которые я ищу, были бы:
Обратите внимание на то, что timetracking не является важной функцией, просто обратный отсчет достаточно.
Спасибо.
От использования терминала "при" команде для установки таймера, "в" очень гибко для него, может использоваться и с абсолютным и с относительным временем (для большего количества информации: man at
):
at now + 1 minute <<<'notify-send ALARM'
"уведомляют - отправляют", поместит, уведомление на Вашем рабочем столе
(не стесняйтесь заменять его т.е. "aplay" для создания звука вместо уведомления).
Можно объединить tmux или экран с termdown.
Termdown является ncurses таймером.
http://www.slashgeek.net/2016/10/25/termdown-cli-countdown-timer-stopwatch/ шоу, как termdown работает.
tmux и экран позволяют Вам выполнять несколько обратных отсчетов сразу.
я сделал бы сценарии как
~/.bin/pomodoro:
#!/bin/sh
termdown 25:00 && mplayer /path/to/sound.mp3
~/.bin/5minbreak:
#!/bin/sh
termdown 05:00 && mplayer /path/to/break.mp3
И, я выполню pomodoro
в tmux или экранирую окно. Тем путем я могу создать несколько обратных отсчетов.
Вы хотите уведомления? Можно объединить команды уведомления с termdown, также.
я настроил несколько tmux окон для определенных таймеров заранее.
Вот функция оболочки, придумали сегодня для решения этой точной проблемы для меня. Я, действительно оказывается, думаю, что это работает скорее хорошо. Полные инструкции по использованию включены в комментарии.
обновленный:
Теперь требует новой зависимости, termdown
, для отображения таймера обратного отсчета в терминале.
Если Вы хотите использовать эту функцию оболочки в качестве сценария, то просто копируют, вставляют его в новый файл с #!/bin/sh
хижина как строка 1. И затем в конце файла вызывают функцию как timer "$@"
передать все cmdline аргументы в него.
Надо надеяться, это обращается к ранее повышенной критике.
timer() {
# tested on ubuntu 18.04
# installation: copy-paste this shell function into your ~/.bashrc or ~/.profile
# program dependencies
# to install missing dependancies on ubuntu
# # sudo apt-get install -y xcowsay
# # sudo snap install -y termdown
# this shell function also uses `paplay` (for making a beep / ding sound)
# and `pgrep` for checking when any xcowsay window was clicked on and dismissed
# (however on ubuntu desktop 18.04, both `paplay` and `pgrep` are already installed by default)
# usage examples
# input string is parsed by the unux date command. tested with "date (GNU coreutils) 8.28"
# ... this version of date seems able to understand and translate these human-readable strings
# timer "1h1m30s"
# timer "1h 1m 30s"
# timer "1 minute 30 seconds"
# timer "15 minutes"
# timer "2 hours 30 minutes"
# timer "00:45:00" # = "45 minutes"
# timer "00:00:45" # = "45 seconds"
# timer "1:1:1" # = 1 hour, 1 minute and 1 second
# begin
_time="$1"
_bell_repeat_delay="3"
# convert input string to seconds, and sleep until time is up
# _seconds="$(local epoch=$(date --utc -d @0 +%F); date --utc -d "$epoch $time" +%s.%09N)"
if echo "$_time" | grep -q -E '^[0-9]+$'; then
_seconds="$_time"
else
_date_flag="$(echo "$_time" | sed -e "s/s/SECONDS/g" -e "s/m/MINUTES/g" -e "s/h/HOURS/g")"
_seconds="$(date -d "1970-01-01 00:00:00 UTC ${_date_flag}" "+%s")"
fi
_critical="$(echo $_seconds / 10 | bc)"
if [ $_seconds -lt 60 ]; then
_critical=20
elif [ $_seconds -lt 100 ]; then
_critical=30
elif [ $_seconds -lt 200 ]; then
_critical=40
elif [ $_seconds -lt 300 ]; then
_critical=60
fi
# sleep _seconds && \
termdown --critical $_critical --voice en $_seconds && \
(
# handle ctrl+c gracefully
trap "killall -q xcowsay; exit 1" INT
# display notifications on all monitors, 1 notification per monitor
i=0; num_monitors="$(xrandr -q| grep " connected" | wc -l)"
while [ "$i" -lt "$num_monitors" ]; do
# this cmd displays the notification itself, and is further customizable
xcowsay --monitor=$i --time=0 --cow-size=large "$time is up" &
i="$(expr $i + 1)"
done
_sound_file_timer_expired="/usr/share/sounds/gnome/default/alerts/drip.ogg"
_sound_file_remind_repeat="/usr/share/sounds/freedesktop/stereo/complete.oga"
audacious --pause
# play -v15 "$_sound_file_timer_expired"
paplay "$_sound_file_timer_expired"
while true; do
# detect if any notifications were dismissed, then exit gracefully
num_cows="$(pgrep -c xcowsay)"
[ "$(expr $num_monitors - $num_cows)" -gt 0 ] && break
# make a slowly repeating ding or beep audible alert sound
paplay "$_sound_file_remind_repeat"
sleep $_bell_repeat_delay || break
done
# dismiss all of the notifications, when displayed on multiple monitors
killall -q xcowsay
trap - INT
)
}
Существует сценарий удара здесь в, Спрашивает Ubuntu, названная мультитаймером
multi-timer
Дисплей индикатора выполнения