Aplicativo de temporizador de contagem regressiva com vários terminais para Bash / Zsh

4

Estou procurando um aplicativo para organizar minhas tarefas diárias em diferentes cronômetros de contagem regressiva semelhantes aos encontrados em www.timeanddate.com/ temporizador /

Os recursos que estou procurando seriam:

  • é executado no terminal bash ou zsh
  • vários cronômetros independentes de contagem regressiva
  • reproduz uma exibição de som ou notificação quando um tempo se esgota

Por favor, note que o timetracking não é uma característica importante, apenas a contagem regressiva é suficiente.

Obrigado.

    
por somethis 25.09.2016 / 04:04

4 respostas

2

Do terminal, use o comando "at" para definir o temporizador, "at" é muito flexível, pois pode ser usado com tempo absoluto e relativo (para mais informações: man at ):

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

"notify-send" colocará uma notificação em sua área de trabalho
(fique à vontade para substituí-lo, ou seja, "aplay" para fazer um som em vez de uma notificação).

    
por thom 06.10.2016 / 17:44
0

Você pode combinar o tmux ou a tela com o prazo.

Termdown é um temporizador de ncurses.

link mostra como o termo funciona.

O tmux e o ecrã permitem-lhe executar várias contagens regressivas de uma só vez.

Eu criaria scripts como

~/.bin/pomodoro:
#!/bin/sh
termdown 25:00 && mplayer /path/to/sound.mp3

~/.bin/5minbreak:
#!/bin/sh
termdown 05:00 && mplayer /path/to/break.mp3

E eu vou executar pomodoro em um tmux ou janela de tela. Dessa forma, posso criar várias contagens regressivas.

Você quer notificações? Você também pode combinar comandos de notificação com o período de término.

Eu configurei várias janelas tmux para timers específicos antecipadamente.

    
por crocket 29.04.2017 / 18:03
0

Heres uma função shell surgiu hoje para resolver este problema exato para mim. Eu acho que isso funciona muito bem. Instruções completas de uso estão incluídas nos comentários.

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
    # 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
    # BE SURE TO WRAP THE "TIME YOU SPECIFY" IN DOUBLE QUOTES
    # You can also optionally suffix & at the end of the command to
    # run the job in the background, to do other things or start multiple timers

    # 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

    # script begin
    time=""
    bell_repeat_delay="3" # seconds

    # convert input string to seconds, and sleep until time is up
    sleep $(local epoch=$(date --utc -d @0 +%F); date --utc -d "$epoch $time" +%s.%09N) && \
    (
        # 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


        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 /usr/share/sounds/freedesktop/stereo/complete.oga
            sleep $bell_repeat_delay || break
        done

        # dismiss all of the notifications, when displayed on multiple monitors
        killall -q xcowsay
        trap - INT
    )

}
    
por Dreamcat4 23.06.2018 / 21:39
0

Existe um script bash aqui em Ask Ubuntu chamado multi-temporizador

multi-timer exibição da barra de andamento

Recursos

  • Mantém a configuração entre os usos.
  • Até 19 timers são executados sequencialmente em um conjunto.
  • Barra de progresso para cada temporizador.
  • O conjunto de cronômetros pode ser executado várias vezes.
  • Barra de progresso para o conjunto.
  • Barra de progresso para todos os conjuntos.
  • Prompt opcional para iniciar cada cronômetro e / ou conjunto.
  • Mensagem pop-up opcional quando cada timer e / ou conjunto termina.
  • Alarme opcional quando cada timer e / ou conjunto termina.
  • Tela de bloqueio opcional quando cada timer OU conjunto OU todos os conjuntos terminam.
  • Interface opcional para o indicador Sysmonitor, para que o Systray mostre as contagens regressivas.
  • A barra de progresso de fechamento opcional é exibida quando todos os conjuntos de cronômetros terminam.

Visite o link acima para capturas de tela e código bash.

    
por WinEunuuchs2Unix 23.06.2018 / 23:17