はじまり
次の予定が思い出せなくなる度にicalを開いて確認するのも億劫なので、icalBuddy
とGeektool
を用いて、デスクトップにicalを表示してくれるようにしてました。
この辺りの設定の仕方はいろんな方が書かれているので、略します…
icalBuddyとは
icalのデータをコマンドラインで取得できるようにしてくれます。最終更新はかなり前ですが、問題なく使えます。locationやnotesも出力してくれて便利なので、使い始めました。
Geektoolとは
デスクトップを柔軟にカスタマイズできるアプリケーションです。以下の形式のデータをデスクトップに表示できるようにしてくれます。
- Logs
- Script
- Image
- Web
気になってたこと
icalBuddy
のおかげでカレンダーごとに色がついて表示してくれたり、一日ごとに区切って表示してくれたり、と至れり尽くせりだなとは思うものの
今日の終わった予定は表示されない方が嬉しいなぁ
と感じたので、icalBuddy
の出力を変換するシェルスクリプトRemSch.sh
を書いてみました。
RemSch(remaining schedule)について
名前は短絡的ですが、rememberもかかってるようでうまく収まってるなと思ってます。
終わった予定を表示しないようにするついでに、デスクトップに表示されてても嬉しくないデータを非表示にしてしまうようにしました。
環境はzshです。学生として研究室に所属してからなので、触り始めてまだ半年の稚拙なシェルスクリプトにはなってますが、なかなか良いなぁと勝手に思ってます。
仕様について
一般的なお話
日毎の表示で並んでいるからこそメリットがあると思うので、デフォルトの元データは
icalBuddy -sd eventsToday+1
となっていて、常に-sd
オプションは適用されます。オプションとして、icalBuddy
のオプションのいくつかをそのまま選べるようにしました(正直普段自分が使っているやつだけです)。-f
,-nc
に関してはそのままで、-num NUM
だけはeventsToday+NUM
となるようにしてあります。
optional arguments:
-f Format output
-nc No calendar names
-num NUM Print events occurring between today and NUM days into the future
予定が終わっているかは24時間制のhhmm
で現在時刻と、予定のical上での終了時刻を比較して、判断しています。
終日の予定は表示されたままになるようになっています(まだlocationやnotesが入っていない場合しか動作しないので、思い立った時に改善します)。
個人的なお話
私の普段使いではgoogle calendarも読み込んでいることもあってか、note
におけるhangoutsとattendees
が表示されてしまうのが幅をとって鬱陶しかったので、そちらも表示されないようになってます。
以下のような感じで表示されていたので、雑な作りにはなりますが、-::
を含む行の間とattendees
を含む行を削除しています。
• test (fuga@foo.com)
location: hoge
notes: -::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-
説明のこのセクションは編集しないでください。
この予定には Google ビデオハングアウトが含まれています。
参加: https://plus.google.com/hangouts/_/calendar...
-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-
attendees: hoge, hage, bar
18:00 - 20:00
感想
衝動的に踏み出した初投稿なので、読んでくれる方がいたら歓喜です。問題のある仕様や記載があれば、教えていただけると助かります。