www.timeanddate.com/timer/ にあるものと同様の異なるカウントダウンタイマーで毎日のタスクを整理するアプリを探しています。
私が探している機能は次のとおりです。
タイムトラッキングは重要な機能ではなく、カウントダウンだけで十分です。
ありがとうございました。
端末から「at」コマンドを使用してタイマーを設定します。「at」は、絶対時間と相対時間の両方で使用できるため、非常に柔軟です(詳細:man at
):
at now + 1 minute <<<'notify-send ALARM'
「notify-send」はデスクトップに通知を送信します
(通知の代わりに音を出すために「aplay」に自由に置き換えてください)。
この問題を自分で解決するために、シェル関数が今日登場しました。私はそれがかなりうまくいくと思います。完全な使用手順はコメントに含まれています。
updated:
ターミナルにカウントダウンタイマーを表示するには、新しい依存関係termdown
が必要になりました。
このシェル関数をスクリプトとして使用する場合は、#!/bin/sh
Shebangを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
)
}
ここにbashスクリプトがありますmulti-timer と呼ばれるUbuntuに尋ねます
multi-timer
進行状況バーの表示Tmuxまたはscreenとtermdownを組み合わせることができます。
Termdownはncursesタイマーです。
http://www.slashgeek.net/2016/10/25/termdown-cli-countdown-timer-stopwatch/ は、termdownの動作を示します。
tmuxとscreenを使用すると、一度に複数のカウントダウンを実行できます。
次のようなスクリプトを作成します
~/.bin/pomodoro:
#!/bin/sh
termdown 25:00 && mplayer /path/to/sound.mp3
~/.bin/5minbreak:
#!/bin/sh
termdown 05:00 && mplayer /path/to/break.mp3
そして、tmuxまたは画面ウィンドウでpomodoro
を実行します。そうすれば、複数のカウントダウンを作成できます。
通知が必要ですか?通知コマンドとtermdownを組み合わせることもできます。
事前に特定のタイマー用に複数のtmuxウィンドウを設定していました。