2012年3月14日水曜日

Mac, Geektool, Command line calendar, Holydays of Japanese

昨日のエントリーでMacのgeektoolを使う事になって,いろいろいじっている,と書いた.
今日たまたまネットを見ていて,「ラスカマンの超きまぐれなホームページ」でLinux用の日本の祝日対応カレンダーユーティリティを見つけた.
おもむろにダウンロードし,なんとなくmakeしてみたら,そのままビルドでき,実行してみるとそこそこいい感じに表示できたので,それをgeektoolで使ってみよう,という話.
ただし,幸せになるためには,ソースのフォントカラーを指定している部分にちょっと手を加える必要がある.

以下,備忘録的メモ.
リンク先よりtar.gzで圧縮されたファイルをダウンロード,適当な場所に展開する.
フォントカラーを指定している部分は,output_calendar.cにある.
ソース(output_calendar.c)を読めばわかるが,平日を黒色(\x1b[30m)で出力するようになっている.これでは,geektool上でフォントカラーを変更しても,曜日の平日部分は黒いままになってしまう.惜しいなぁ.(そもそも,これでは黒背景のターミナルを使っている場合,文字が読めないんじゃないのかな?黒背景の時は白く表示されるの?この辺検証していないのでわからない.)
ということで,フォントカラーを黒に指定しているところを,フォントカラーリセット(\x1b[0m)に置き換えてやる.
具体的には,output_calendar.c中で\x1b[30mとなっているところを,ことごとく\x1b[0mに置き換える.
※ちなみに,\はエンではなくてバックスラッシュ(optionを押しながら\エン)です.
置き換えが済んだら,ファイルを保存して,makeする.これで曜日平日部分のフォントカラーをgeektool上から自由に設定できる.
geektool使っている人はgeekという前提で話をしているので,geekってなにそれ臭いの?とか,makeってなにそれ美味しいのなんてことは言わないように.大体臭くて不味いです.
jhcalをソースレベルでいろいろいじれば,土日祝日の色や背景色なんかももっといろいろ変更できると思うけど,現状で満足しているのでやらない.
曜日表記を日本語から英語にしたい場合は,
sed -e "2 s/日/Su/" -e "2 s/月/Mo/" …(略)
みたいにしてsedでガリガリ置き換えたらいい.2というのは2行目を意味する.1行目に月表示があるので,置き換え対象となる行を指定してやらないと,"2012年 3Mo"という素晴らしい置き換えが発生する.
これで,あとは昨日のエントリーを参考に,geektoolにコマンドを書いてあげる.
/PATH/jhcal -m | head -8
/PATH/jhcal -nm | head -8
echo "------------------------"
echo "Agenda"
echo ""
/usr/local/bin/icalBuddy -sd -nc eventsToday+10 | sed -e "s/today:/今日:/" -e "s/day after tomorrow:/明後日:/" -e "s/tomorrow:/明日:/"
PATHは例のごとく,jhcalを置いたフォルダまでのパスを記述する.
表示としては,こんな感じになる.フォントは,OSAKAのレギュラー等幅に設定てある.ターミナル上の表示と見比べて欲しい.geektool上では,head -8にしているので,"20(火)春分の日"という行が表示されない.jhcalのコマンドオプションなど詳しい説明は,jhcal -?などとして,ヘルプを参照して欲しい.

そういえば,その昔Ubuntuでconkyをいじった時に,このユーティリティを使った気がする. 素晴らしい具合に忘却の彼方だった.

0 件のコメント:

コメントを投稿