ToDo管理にTaskwarriorを使い始めた。「あれをやらなきゃ」と思った時に、マウスを動かすのが億劫だからだ。
マウスは害悪だ。マウスポインターを目で追ってアイコン等に合わせる事に使う事にも人間は労力を使う。
そのごく僅かな労力だとしても、それが積み重なる事による無駄を自覚すべきだ。
エンジニアよ、怠惰であれ。
Taskwarriorを使いはじめて、まずやったのは Ctl+Alt+Tでターミナルを起動した時に毎回自動的に task を実行する、というものだ。
これは安直にこれでいい。
task
しかし、休憩から戻ってきた時や、割り込みタスクをさばいた後、「さて、何してたんだったかな…」と思った時、
毎回ターミナルを開くかというとそうではない。
ターミナルを開かなかった場合に、うっかり別のタスクを思い出してしまい、そちらの手を動かしてしまう事がある。
そのため、画面のどこかに常に今やっているタスクを表示しておきたい。
最初はまずターミナルで定期的に task を表示させ続けてそれを最前面に表示させていた。
#!/bin/sh
while true
do
task
sleep 10
done
だがシンプルに邪魔である。
表示したいのは「今着手中の1件」でいい。であれば、Mateパネルに単に出ていて、自動で更新されればよい。
先に、「Taskwarriorのアクティブなタスクのタスク名だけ表示するコマンドライン」を作る。
アクティブなものだけ表示する、は task active
で出るが、色々余計な項目が出るので別な report を定義する。
report.headline.columns=description
report.headline.filter=+ACTIVE
これで headline
というアクティブなタスクの名前だけ出す定義ができる。
$ task headline
Description
今のアクティブなタスク
1 task
ヘッダとタスク数の表示が邪魔である。
$ task rc.verbose=nothing headline
今のアクティブなタスク
大変よろしい。
あとはこれを先ほどのアプレットのコマンドに設定する。
少し飾りなどをつけるため、sh
で括って…
sh -c "echo 📝DOING Now:【`task rc.verbose=nothing headline`】"
完成。