Ubuntu 13.10でConkyの背景を透過させた
関連:Ubuntu 12.10でConkyを設定する
長いこと.conkyrcを使い回してきたが、Ubuntu 12.10ではConky起動後にF5キーを押してデスクトップを更新しないと透過せず、Ubuntu 13.04ではアイコンをドラッグしないと透過しないようになるなど、微妙な不具合に遭遇し、ついにUbuntu 13.10でどうやっても背景が透過しなくなってしまったので、仕方なく設定を見直すことにした。
今までの透過は疑似透過だったので、
own_window_type normal own_window_argb_visual yes
という設定に変更して真の透過機能を利用することにした(疑似透過との違いはConkyの背後にアイコンを置いた時に見えるかどうか)。
ただ own_window_type を normal にしてしまうと、全てのウィンドウを閉じた時にフォーカスが失われて一部のキーボードショートカット(ワークスペースの移動など)が利かなくなる(Superキーを押すなどすれば直るが)、というバグがあるので、設定を、
# own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager ↓に変更 own_window_hints below,sticky,skip_taskbar,skip_pager
に変更し、CompizConfig 設定マネージャでウィンドウの装飾の装飾適用ウィンドウの欄を、
any & !(class=Conky)
に変更した。
※Ubuntu 14.04では↑のウィンドウの装飾の設定を変更しても効果がない。仕様が変更されたためと思われる。
さらに、この設定にするとF4キーでConkyのウィンドウを閉じることが出来てしまうため、間違って閉じてしまった時のために、自動でConkyを起動し直すスクリプトを用意した。
#!/bin/sh # http://www.yukun.info/blog/2008/01/shell-script-kill-process.html # http://www.yukun.info/blog/2008/01/shell-script-kill-process-2.html firstRun=`ps -e | grep "conky" | grep -v grep | wc -l` if [ $firstRun = 0 ]; then conky -p 15 & echo "conkyを15秒後に起動します" fi checkRun=`ps -e | grep "CONKY_RUNNER" | grep -v grep | wc -l` if [ $checkRun = 1 ]; then echo "CONKY_RUNNERを起動します" elif [ $checkRun = 2 ]; then #何かcheckRunの値が2になる echo "CONKY_RUNNERを起動します" else echo "既にCONKY_RUNNERが起動中です" exit fi while true do isAlive=`ps -e | grep "conky" | \ grep -v grep | wc -l` if [ $isAlive = 0 ]; then echo "conkyは死んでいます" conky & else echo "conkyは生きています" fi sleep 1 done
このスクリプトを自動起動するアプリケーションに登録しておけばOK。
以下は設定を見直した後の.conkyrc。ほぼ丸パクリ。
# http://1204lts.blogspot.jp/2012/12/ubuntuconky-conky-gray.html use_xft yes xftfont Ricty:size=12 alignment bottom_right background no border_width 1 default_color white default_outline_color grey default_shade_color grey draw_borders no draw_graph_borders yes draw_outline no draw_shades no gap_x 5 gap_y 5 minimum_size 900 40 double_buffer yes out_to_console no own_window yes own_window_class Conky own_window_type normal own_window_transparent no own_window_argb_visual yes own_window_argb_value 155 own_window_colour 1B0D18 own_window_hints below,sticky,skip_taskbar,skip_pager stippled_borders no update_interval 1.0 uppercase no use_spacer none show_graph_scale no show_graph_range no TEXT 以下略