LoginSignup
0
0

More than 1 year has passed since last update.

Ubuntu Mate のタスクバーに Taskwarrior のActiveなタスク名だけ表示する

Posted at

ToDo管理にTaskwarriorを使い始めた。「あれをやらなきゃ」と思った時に、マウスを動かすのが億劫だからだ。
マウスは害悪だ。マウスポインターを目で追ってアイコン等に合わせる事に使う事にも人間は労力を使う。
そのごく僅かな労力だとしても、それが積み重なる事による無駄を自覚すべきだ。
エンジニアよ、怠惰であれ。

Taskwarriorを使いはじめて、まずやったのは Ctl+Alt+Tでターミナルを起動した時に毎回自動的に task を実行する、というものだ。
これは安直にこれでいい。

.bashrc の末尾
task

しかし、休憩から戻ってきた時や、割り込みタスクをさばいた後、「さて、何してたんだったかな…」と思った時、
毎回ターミナルを開くかというとそうではない。
ターミナルを開かなかった場合に、うっかり別のタスクを思い出してしまい、そちらの手を動かしてしまう事がある。
そのため、画面のどこかに常に今やっているタスクを表示しておきたい。

最初はまずターミナルで定期的に task を表示させ続けてそれを最前面に表示させていた。

taskshow.sh
#!/bin/sh
while true
do
  task 
  sleep 10
done

だがシンプルに邪魔である。

表示したいのは「今着手中の1件」でいい。であれば、Mateパネルに単に出ていて、自動で更新されればよい。

良いものがある。
2023-03-20_14-58.png

先に、「Taskwarriorのアクティブなタスクのタスク名だけ表示するコマンドライン」を作る。
アクティブなものだけ表示する、は task active で出るが、色々余計な項目が出るので別な report を定義する。

~/.taskrc の末尾
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`】"

2023-03-20_16-12.png

完成。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0