Терминал несколько приложение для таймера обратного отсчета для Bash / Zsh

Я ищу приложение для организации моих ежедневных задач в различных таймерах обратного отсчета, подобных тому, найденному по www.timeanddate.com/timer/

Функции, которые я ищу, были бы:

  • выполнения в терминальном ударе или zsh
  • несколько независимых таймеров обратного отсчета
  • играет звук или дисплей уведомления, после того как таймер заканчивается

Обратите внимание на то, что timetracking не является важной функцией, просто обратный отсчет достаточно.

Спасибо.


enter image description here

5
задан 24 September 2016 в 19:04

4 ответа

От использования терминала "при" команде для установки таймера, "в" очень гибко для него, может использоваться и с абсолютным и с относительным временем (для большего количества информации: man at):

at now + 1 minute <<<'notify-send ALARM'

"уведомляют - отправляют", поместит, уведомление на Вашем рабочем столе
(не стесняйтесь заменять его т.е. "aplay" для создания звука вместо уведомления).

3
ответ дан 23 November 2019 в 10:26

Можно объединить 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 окон для определенных таймеров заранее.

0
ответ дан 23 November 2019 в 10:26

Вот функция оболочки, придумали сегодня для решения этой точной проблемы для меня. Я, действительно оказывается, думаю, что это работает скорее хорошо. Полные инструкции по использованию включены в комментарии.

обновленный:

Теперь требует новой зависимости, 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
  )

}
0
ответ дан 23 November 2019 в 10:26

Существует сценарий удара здесь в, Спрашивает Ubuntu, названная мультитаймером

multi-timer Дисплей индикатора выполнения

peek wash cycle.png

Функции

  • Сохраняет конфигурацию между использованием.
  • До 19 таймеров, выполненных последовательно в наборе.
  • Индикатор выполнения для каждого таймера.
  • Набор таймеров может быть выполнен многократно.
  • Индикатор выполнения для набора.
  • Индикатор выполнения для всех наборов.
  • Дополнительная подсказка, чтобы запустить каждый таймер и/или установить.
  • Дополнительное всплывающее сообщение, когда каждый таймер и/или концы набора.
  • Дополнительное предупреждение, когда каждый таймер и/или концы набора.
  • Дополнительный экран блокировки, когда каждый таймер ИЛИ набор ИЛИ весь конец наборов.
  • Дополнительный интерфейс к Индикатору Sysmonitor так Systray показывает обратные отсчеты.
  • Дополнительный близкий индикатор выполнения отображается когда все наборы конца таймеров.

Посетите ссылку выше для снимков экрана и колотите код.

0
ответ дан 23 November 2019 в 10:26

Другие вопросы по тегам:

Похожие вопросы: