Je suis à la recherche d'une application pour organiser mes tâches quotidiennes dans différents comptes à rebours similaires à celui trouvé sur www.timeanddate.com/timer/
Les caractéristiques que je cherche seraient:
S'il vous plaît noter que le chronométrage n'est pas une fonctionnalité importante, juste le compte à rebours est suffisant.
Je vous remercie.
Depuis le terminal, utilisez la commande "at" pour régler votre temporisateur, "at" est très flexible car il peut être utilisé avec un temps absolu et relatif (pour plus d'informations: man at
):
at now + 1 minute <<<'notify-send ALARM'
"notify-send" placera une notification sur votre bureau
(n'hésitez pas à le remplacer par "aplay" pour émettre un son au lieu d'une notification).
La fonction Heres a Shell a mis au point aujourd'hui pour résoudre ce problème précis pour moi-même. Je pense que cela fonctionne plutôt bien. Des instructions d'utilisation complètes sont incluses dans les commentaires.
mis à jour:
Nécessite maintenant une nouvelle dépendance, termdown
, pour afficher un compte à rebours dans le terminal.
Si vous souhaitez utiliser cette fonction Shell en tant que script, copiez-le simplement, collez-le dans un nouveau fichier portant le #!/bin/sh
Shebang en tant que ligne 1. Ensuite, à la fin du fichier, appelez la fonction timer "$@"
pour y passer tous les arguments de la ligne de commande.
J'espère que cela répond aux critiques formulées précédemment.
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
)
}
Il y a un script bash ici dans Ask Ubuntu appelé multi-timer
multi-timer
Affichage de la barre de progressionVous pouvez combiner tmux ou screen avec termdown.
Termdown est un minuteur ncurses.
http://www.slashgeek.net/2016/10/25/termdown-cli-countdown-timer-stopwatch/ montre le fonctionnement de termdown.
tmux et screen vous permettent de lancer plusieurs comptes à la fois.
Je ferais des scripts comme
~/.bin/pomodoro:
#!/bin/sh
termdown 25:00 && mplayer /path/to/sound.mp3
~/.bin/5minbreak:
#!/bin/sh
termdown 05:00 && mplayer /path/to/break.mp3
Et, je vais exécuter pomodoro
dans un tmux ou une fenêtre d’écran. De cette façon, je peux créer plusieurs comptes à rebours.
Voulez-vous des notifications? Vous pouvez également combiner des commandes de notification avec termdown.
J'avais déjà configuré plusieurs fenêtres tmux pour des minuteries spécifiques.