movyの紹介

awesomeは便利だ。 しかしその便利さは、自分でカスタマイズできてこそである。 大方デフォルトの設定で問題はないのだが、所々気になることがある。 例えば、Gunuplotを起動する時。 基本的にfloat以外のlayoutを使っているときは、新しくでたGnuplotの図はlayoutに組み込まれる。 この挙動はちょっと気に入らない。 というのも ・図の大きさがwindowとあっていない ・foucsがGnuplotにとられる 一つ目は再描画すればいいし、後者にいたってはMod4-jを1回おせばいいだけだ。 さらにMod4-Ctrl-Spaceでfloatにするという選択肢もある。 とはいえ、この手の細かい挙動は操作性に大きく影響する。 そこで起動と同時にfloatにしたい。 それにはデフォルトでのruleを使うか、Shiftyを用いてもいい。 Shiftyのときは

shifty.config.apps = {
    {
        match = {"Gnuplot"},
        nofocus = true,
        float = true,
        run = function (c) c.ontop = true end,
    }
}
これで起動すると同時にfloatにしてfocusを移さずに、 さらに常に最前面(ontop)にできる。 これでそこそこ使いよいのだが、たまにwindowが邪魔だ。 Gnuplotならすぐ消す場合が多いのだが、windowを動かす方法が欲しい。 そんなに真面目に探してないのだが、見当たらなかったので、練習に作ってみることにした。 movyに行くとzipが落とせるはず。(github初めてなのでまだよくわからない) 中身はclientkeyに登録する用の関数群となっている。 movy.scaleがclientのサイズを変更する関数を提供し、 movy.moveがclientを移動させる関数を提供する。 rc.lua内でrequire("movy")として、clientkeyに登録して使う。

clientkeys = awful.util.table.join(clientkeys,
    awful.key({modkey ,"Mod1"}, "s", function (c) movy.scale.rescale(c,1.1) end),
    awful.key({modkey ,"Shift", "Mod1"}, "s", function (c) movy.scale.rescale(c,0.9) end),
    awful.key({modkey , "Mod1"}, "c", function (c) movy.move.set_place(c,"center") end),
    awful.key({modkey , "Mod1"}, "j", function (c) movy.move.down(c) end),
    awful.key({modkey , "Mod1"}, "h", movy.move.left),
    awful.key({modkey , "Mod1"}, "k", movy.move.up),
    awful.key({modkey , "Mod1"}, "l", movy.move.right),
    awful.key({modkey ,"Shift", "Mod1"}, "j", function (c) movy.move.move(c,0.0,1.0) end),
    awful.key({modkey ,"Shift", "Mod1"}, "k", function (c) movy.move.move(c,0.0,-1.0) end),
    awful.key({modkey ,"Shift", "Mod1"}, "l", function (c) movy.move.move(c,1.0,0.0) end),
    awful.key({modkey ,"Shift", "Mod1"}, "h", function (c) movy.move.move(c,-1.0,0.0) end)
    )
マニュアルはそのうち作ろう。(ちなみにMod1はAlt) これでfloatになったclientを上下左右、自由に動かせるようになる。 とりあえず動くことは確認したけども、ほとんどテストとかしていないので、使うときは気をつけて。