2009年5月7日木曜日

awesomeとxcompmgr

なんか、ラベルで分類して後から見たときに分かりやすくしようと思っていたんだけど、うまくいかない(^^;とりあえす、最近設定いじるのにはまってるawesomeのこと書く時はラベル「awesome」で統一しておこう。

wikiのAwesomeにも紹介されている通り、xcompmgrというプログラムはクライアントウインドウを透明化できる。あちこちのawesomeのデスクトップスクリーンショットを見ると、ターミナル越しにルートウインドウの壁紙が透けて見えてたりしてカッコ良さげだったので、使い始めたんだけれど、実はかっこいいだけじゃなくとっても便利だったりした。

むかし、rxvtだったかのターミナルエミュレータ自身が同じように透明化できたけれど、透明化というよりも、ルートウインドのコピーをするだけで、実際には、その間に別のウインドウがあってもそのウインドウを見ることができなかった。でも、xcompmgrは、すぐ下のウインドウクライアントを透かした状態でちゃんとみせてくれる!

設定の仕方は、wikiの通り。
xcompmgr自体は、.xinitrcで起動するか、rc.luaの最後の方にwikiのオートスタートアップを付け足してそこにいれておいてもいい。うちでは、こんな感じ。


autorun = true
autorunApps =
{
"xcompmgr"
}
if autorun then
for app = 1, #autorunApps do
awful.util.spawn(autorunApps[app])
end
end

ただ単に、

awful.util.spawn("xcompmgr")

で呼び出すだけでもOKと思う。あと、xcompmgrとconkyの相性は悪いようなので、conkyと一緒には使わないようにする。(画面がチカチカしてフォーカスがあちこち飛びまくる?)

ここで、xcompmgrを呼び出しただけで勝手にクライアントは透明化しない。
wikiのとおり、awful.hooks.focus.register と awful.hooks.unfocus.register の内容に c.opacity = 1等の透明度の設定を追加する。
うちの場合、透明化するのをxtermだけにしてあるので、次のような感じ。

-- Hook function to execute when focusing a client.
awful.hooks.focus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_focus
if c.class == "XTerm" then c.opacity = 0.7 end
end
end)

-- Hook function to execute when unfocusing a client.
awful.hooks.unfocus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_normal
if c.class == "XTerm" then c.opacity = 0.6 end
end
end)


これで、awesomeを再起動して完了。

で、何が便利かというと、あるタグでブラウザを開いてwebブラウズしているときに、xtermを開くとタイル型WMなので当然画面が2分割になる。S101は小さいパソコンなので、ブラウザ側は見づらくなる。特にArchlinuxのwikiとかは文章の横幅が画面サイズの何割かに設定されているみたいでめちゃめちゃ見づらい。




ここで、xtermにフォーカスした状態で、winキー+fでxtermをフルサイズ化する!



これが、めちゃめちゃ気に入った^0^
xtermだけをフルサイズ化している間は、winキー+jとかでフォーカス移動してブラウザ側に移ってもxtermが前面にあるままなので、ターミナル画面はそのままで、適当にブラウザのページを進めることもできる。ターミナルに字がいっぱいで見にくいときは、ブラウザもフルサイズ化すれば、フォーカス移動で前面表示が入れ替わるようになる。

この使い方はほんと、S101みたいなネットブックには便利だと思う。

0 件のコメント:

コメントを投稿