自分のconky設定
Livedoorブログからの移動
conkyは一度設定してしまえばGoogleカレンダーのウィジェットとして, todo listの表示としてなど様々に使えるんだけれども, 残念ながら日本語資料があまりない.
そして, 全角文字を入れるとうまく働かないことがしばしば. なので, 自分のconky設定とその時に困ったことのメモを残しておく.
設定全体
ディレクトリ構成
~/.conkyにconkyの設定ファイル, 起動スクリプト, 実行するスクリプトなどをまとめている.ニュース
ニュースを表示する設定ファイル. 左上に表示される.# 配置設定 alignment top_left background yes gap_x 0 gap_y 30 minimum_size 5 5 # 概観設定 border_width 1 default_color black default_outline_color black default_shade_color grey draw_borders no draw_graph_borders yes draw_outline no draw_shades no stippled_borders 0 # その他設定 update_interval 10 # ちらつきを抑える. double_buffer yes # 透過させる own_window yes own_window_class Conky own_window_type override own_window_transparent yes own_window_argb_visual yes own_window_argb_value 255 # フォントの設定 use_xft yes xftfont TakaoExGothic:style=Regular:size=10 # 内容 TEXT ## ニュース ${font TakaoExGothic:style=Bold:size=20}ニュース:${font} ${font TakaoExGothic:style=Bold:size=15}トップ${font} ${rss http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss 60 item_titles 5} ## 社会ニュース ${font TakaoExGothic:style=Bold:size=15}社会${font} ${rss http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&topic=y 60 item_titles 2} ## 国際ニュース ${font TakaoExGothic:style=Bold:size=15}国際${font} ${rss http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&topic=b 60 item_titles 2} ## 政治ニュース ${font TakaoExGothic:style=Bold:size=15}政治${font} ${rss http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&topic=p 60 item_titles 2} ## テクノロジー ${font TakaoExGothic:style=Bold:size=15}テクノロジー${font} ${rss http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&topic=t 60 item_titles 2}ちなみに, 白背景, xmonad+xmobarをデスクトップ環境としているので, そうでない人には使いづらいかも.
この設定ファイルで困るところはほとんどない. ただgoogleニュースのrssを取得して, 60分ごと(だったと思う) に内容を更新させているだけ.
カレンダー・todoリスト
Googleカレンダーや, todoリストを表示する設定ファイル. 右上に表示される.# 配置設定 alignment top_right background yes gap_x 0 gap_y 30 minimum_size 5 5 maximum_width 630 #maximum_size 500 500 # 概観設定 border_width 1 default_color black default_outline_color black default_shade_color grey draw_borders no draw_graph_borders yes draw_outline no draw_shades no stippled_borders 0 # その他設定 update_interval 10 # ちらつきを抑える. double_buffer yes # 透過させるための設定 own_window yes own_window_class Conky own_window_type override own_window_transparent yes own_window_argb_visual yes own_window_argb_value 255 # カレンダー表示のための設定 max_port_monitor_connections 64 max_specials 512 max_user_text 30000 text_buffer_size 16384 # フォントの設定 use_xft yes xftfont TakaoExGothic:style=Regular:size=10 # 内容 TEXT ## Googleカレンダー予定表 ${font IPAMincho:style=Bold:size=10.5} ${execpi 300 ~/.conky/gcal.sh} ${font} ## todo.txtの内容 ${color black} ${font TakaoExGothic:style=Bold:size=10.5}Todo List${font} ${font IPAMincho:style=Bold:size=10.5} ${execi 150 ~/.conky/todo.sh} ${font} ${color}正直一番面倒臭かった. gcal.sh, todo.shについては後で説明するとして, 設定ファイル側で詰まったのは, 等幅フォント(っていうのかな?)を使わないとレイアウトが崩れること. ただ, ぐぐってもなかなか日本語に対応した等幅フォントが見つからず苦労した. 試行錯誤の結果, IPA明朝を使っている.
2015/1/5追記. ここを参照に, フォントサイズを10.5ptにしたら, Googleカレンダーもずれなくなった.
で, 次にgcal.shについて. 参考にしたのはここ. 細かい説明(エスケープシーケンスの打ち方とか)はリンク先を見てください. gcalcliのインストールになんか面倒があった気もしたけどもう忘れた.
#!/bin/sh gcalcli --conky calm | sed -e 's/(0\x71(B/-/g' \ -e 's/(0\x78(B/|/g' \ -e 's/(0\x6A(B/+/g' \ -e 's/(0\x6B(B/+/g' \ -e 's/(0\x6C(B/+/g' \ -e 's/(0\x6D(B/+/g' \ -e 's/(0\x6E(B/+/g' \ -e 's/(0\x74(B/+/g' \ -e 's/(0\x75(B/+/g' \ -e 's/(0\x76(B/+/g' \ -e 's/(0\x77(B/+/g' \ -e 's/\${color white}/\${color black}/g' \ -e 's/\${color yellow}/\${color black}/g'リンク先のような英語サイトでは, 枠に─, ┘などの文字を使うことをしている. なんだけれども, 日本語環境でこれを使うと全角文字として表示されて, 一方で, 幅の計算はこれらが半角文字であるとして計算されているから, 変なことになる. 面倒くさくなったので, 枠には-, |, +を使うことで必ず半角文字であるとして表示されるようにした.
最後に, 白背景に白枠とか黄色文字とか見づらい事この上ないので, 全部blackに変換している(下2行).
次, todo.sh. これは, todo.txtという単純なCUIベースのtodoリスト管理ツールの中身を表示するもの. 機能としては, Googleカレンダーのtodoリストに負けるけど, ひたすらにシェル上で使いやすいところが利点. 補間もちゃんとしているのはgcalcliにはないメリット.
#! /bin/sh todo.sh ls | col -x |
sed -e 's/[0-9];30m/\${color black}/g' \
-e 's/[0-9];31m/\${color red}/g' \
-e 's/[0-9];32m/\${color green}/g' \
-e 's/[0-9];33m/\${color yellow}/g' \
-e 's/[0-9];34m/\${color blue}/g' \
-e 's/[0-9];35m/\${color magenta}/g' \
-e 's/[0-9];36m/\${color cyan}/g' \
-e 's/[0-9];37m/\${color white}/g' \
-e 's/[0-9];39m/\${color}/g' \
-e s/'[0-9];[0-9][0-9]m'//g \
-e s/'0m$'/\${color}/g \
-e 's/\${color white}/\${color black}/g' \
-e 's/\${color yellow}/\${color red}/g' \
| head -n 6
時計
時計を表示. 参考はここで, ほぼコピペ. いるのかは微妙だけど, 見やすいのは事実なので置いといている. スペースがたりなくなったら真っ先に削除されだろう.# 配置設定 alignment bottom_left background yes gap_x 0 gap_y 0 minimum_size 5 5 #maximum_width 630 #maximum_size 500 500 # 概観設定 border_width 1 default_color black default_outline_color black default_shade_color grey draw_borders no draw_graph_borders yes draw_outline no draw_shades no stippled_borders 0 # その他設定 update_interval 10 # ちらつきを抑える. double_buffer yes # 透過させるための設定 own_window yes own_window_class Conky own_window_type override own_window_transparent yes own_window_argb_visual yes own_window_argb_value 255 # カレンダー表示のための設定 max_port_monitor_connections 64 max_specials 512 max_user_text 30000 text_buffer_size 16384 # フォントの設定 use_xft yes xftfont TakaoExGothic:style=Regular:size=10 # 内容 TEXT ${font Andale Mono:size=200}${time %H:%M}${font}
起動スクリプト
特に言うこともない起動スクリプト. これをxmonadの立ち上げ時にspawnで起動している.#! /bin/sh conky -c ~/.conky/newsrc -d conky -c ~/.conky/calendarrc -d conky -c ~/.conky/clockrc -d
xmonad
xmonadの設定について. なんかデスクトップ効果かなんかの問題で, xmonadのスタートアップでxcompmgr -c &をしないとうまくconkyが透過されない.
terminal
ただのgnome-terminalの設定. これの背景透過をしないとconkyを使う意義が薄れると思う. 端末で右クリック, プロファイル, 背景, 背景を透明にするにチェック, で透明にできる.以上. 長かった.