awesome 3.0-rc2

sudo emerge -avuDN worldしたら普通にawesome3.0-rc2が入ってしまった。xcb-util-0.2.1も結局MATSUUさんが入れたのね…恐るべし。

awesome 3.0から設定にluaを利用するようになり、ファイルの置き場も変わっているので、軽くメモっておく。

個人の設定ファイル

~/.config/awesome/rc.lua になる。
1から書くのは正気の沙汰ではない。元ファイルを/etc/xdg/awesome/rc.luaからコピーする。

ターミナル変更

デフォルトがxtermになっているのでmltermに変える。

-- This is used later as the default terminal to run.
terminal = "mlterm"

ここを変えるだけ。気が効いている。
なお、luaは--がC++で言う//、つまり--で行末までコメントになる。

時間表示変更

デフォルトではエポックタイムが表示され、正直使い物にならない。
下のほうにあるコードを修正すればまともな日付表示になる。

-- Hook called every second
function hook_timer ()
    -- For unix time_t lovers
    -- mytextbox.text = " " .. os.time() .. " time_t "
    -- Otherwise use:
    mytextbox.text = " " .. os.date("%Y/%m/%d %a %X") .. " "
end

gmail未読チェック

http://www.yaske.com/file/gmail-notify-helper
を~/binにでも入れて

-- Hock called every min
function hook_min ()
   local f = io.popen('~/bin/gmail-notify-helper')
   mailbox.text = " " .. f:read() .. " "
   f:close()
end
awful.hooks.timer.register(60, hook_min)
hook_min()

あとステータスバー周りはこんな感じに変えた。

-- Create a statusbar for each screen and add it
mystatusbar = {}
-- Create main statusbar
main_statusbar = statusbar({ position = "top", name = "mystatusbar1",
                              fg = beautiful.fg_normal, bg = beautiful.bg_normal })
datebox = widget({ type = "textbox", name = "datebox", align = "right" })
mailbox = widget({ type = "textbox", name = "mailbox", align = "right" })
main_statusbar.widgets = {
   mytaglist,
   mytasklist,
   mypromptbox,
   mailbox,
   datebox,
   mylayoutbox[1],
   mysystray
}
main_statusbar.screen = 1
mystatusbar[1] = main_statusbar

for s = 2, screen.count() do
    mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s,
                                   fg = beautiful.fg_normal, bg = beautiful.bg_normal })
    -- Add widgets to the statusbar - order matters
    mystatusbar[s].widgets =
    {
        mytaglist,
        mytasklist,
        mypromptbox,
        mylayoutbox[s]
    }
    mystatusbar[s].screen = s
end
--table.insert(mystatusbar[screen.count()].widgets, mysystray)
--table.insert(mystatusbar[1].widgets, mysystray)
-- }}}