Migrate awesome to the new stuff.
[~madcoder/dotfiles.git] / config / awesome / rc.lua
index 7f42ed3..9e622cb 100644 (file)
@@ -6,12 +6,6 @@ require("eminent")
 require("wicked")
 require("beautiful")
 
-function table.append(t, ...)
-    for _, v in ipairs({...}) do
-        table.insert(t, v)
-    end
-end
-
 terminal = "x-terminal-emulator"
 lock     = 'xscreensaver-command -lock'
 beautiful.init(awful.util.getdir("config").."/theme")
@@ -78,10 +72,10 @@ end
 -- {{{ Taglist
 
 maintaglist = {}
-maintaglist.buttons = {
-    button(k_n, 1, awful.tag.viewonly),
-    button(k_s, 1, awful.client.toggletag)
-}
+maintaglist.buttons = awful.util.table.join(
+    awful.button(k_n, 1, awful.tag.viewonly),
+    awful.button(k_s, 1, awful.client.toggletag)
+)
 
 -- }}}
 -- {{{ Widgets
@@ -265,30 +259,30 @@ end
 ---- {{{ Global keys
 
 local hist = os.getenv("HOME") .. "/.cache/awesome/history"
-globalkeys = {
+globalkeys = awful.util.table.join(
     -- Mod+{A/S}: Switch to prev/next tag
-    key(k_m, "Left",  eminent.tag.prev),
-    key(k_m, "Right", eminent.tag.next),
+    awful.key(k_m, "Left",  eminent.tag.prev),
+    awful.key(k_m, "Right", eminent.tag.next),
 
     -- Mod+Shift+{A/S}: Move window to Prev/Next tag
-    key(k_ms, "Left", function()
+    awful.key(k_ms, "Left", function()
         awful.client.movetotag(eminent.tag.getprev())
         eminent.tag.prev()
     end),
-    key(k_ms, "Right", function()
+    awful.key(k_ms, "Right", function()
         awful.client.movetotag(eminent.tag.getnext())
         eminent.tag.next()
     end),
 
     -- Mod+Shift_{E/D}: move window to next/prev screen
-    key(k_mc, "Right", function()
+    awful.key(k_mc, "Right", function()
        local s = getscreen() + 1
        while s > screen.count() do
            s = s-screen.count()
        end
        client_movetoscreen(s)
     end),
-    key(k_mc, "Left", function()
+    awful.key(k_mc, "Left", function()
        local s = getscreen() - 1
        while s < 1 do
            s = s+screen.count()
@@ -298,42 +292,42 @@ globalkeys = {
 
 
     -- Focus Prev/Next window
-    key(k_m, "j",
+    awful.key(k_m, "j",
         function ()
             awful.client.focus.byidx(1)
             if client.focus then client.focus:raise() end
         end),
-    key(k_m, "k",
+    awful.key(k_m, "k",
         function ()
             awful.client.focus.byidx(-1)
             if client.focus then client.focus:raise() end
         end),
 
     -- Swap window with the Prev/Next one
-    key(k_ms, "j", function () awful.client.swap.byidx(1) end),
-    key(k_ms, "k", function () awful.client.swap.byidx(-1) end),
+    awful.key(k_ms, "j", function () awful.client.swap.byidx(1) end),
+    awful.key(k_ms, "k", function () awful.client.swap.byidx(-1) end),
 
     -- Mod+{E/D}: Switch to next/previous screen
-    key(k_m, "Tab",  function () awful.screen.focus(1) end),
-    key(k_ms, "Tab", function () awful.screen.focus(-1) end),
+    awful.key(k_m, "Tab",  function () awful.screen.focus(1) end),
+    awful.key(k_ms, "Tab", function () awful.screen.focus(-1) end),
 
     -- Mod+Enter: Launch a new terminal
-    key(k_m,  "e",      function() awful.util.spawn("firefox") end),
-    key(k_m,  "Return", function() awful.util.spawn(terminal) end),
-    key(k_ac, "r", awesome.restart),
-    key(k_m, "F12", function() awful.util.spawn(lock) end),
-    key({}, "#148", function() awful.util.spawn("kcalc") end),
+    awful.key(k_m,  "e",      function() awful.util.spawn("firefox") end),
+    awful.key(k_m,  "Return", function() awful.util.spawn(terminal) end),
+    awful.key(k_ac, "r", awesome.restart),
+    awful.key(k_m, "F12", function() awful.util.spawn(lock) end),
+    awful.key({}, "#148", function() awful.util.spawn("kcalc") end),
 
     -- Layout manipulation
-    key(k_m,  "l", function () awful.tag.incmwfact(0.05) end),
-    key(k_m,  "h", function () awful.tag.incmwfact(-0.05) end),
-    key(k_ms, "h", function () awful.tag.incnmaster(1) end),
-    key(k_ms, "l", function () awful.tag.incnmaster(-1) end),
-    key(k_mc, "h", function () awful.tag.incncol(1) end),
-    key(k_mc, "l", function () awful.tag.incncol(-1) end),
+    awful.key(k_m,  "l", function () awful.tag.incmwfact(0.05) end),
+    awful.key(k_m,  "h", function () awful.tag.incmwfact(-0.05) end),
+    awful.key(k_ms, "h", function () awful.tag.incnmaster(1) end),
+    awful.key(k_ms, "l", function () awful.tag.incnmaster(-1) end),
+    awful.key(k_mc, "h", function () awful.tag.incncol(1) end),
+    awful.key(k_mc, "l", function () awful.tag.incncol(-1) end),
 
     -- Menu
-    key(k_m, "r",
+    awful.key(k_m, "r",
         function ()
             awful.prompt.run({ prompt = "Run: " },
                              mymenubox,
@@ -341,7 +335,7 @@ globalkeys = {
                              awful.completion.bash,
                              awful.util.getdir("cache").."/commands")
         end),
-    key(k_m, "F4",
+    awful.key(k_m, "F4",
         function ()
             awful.prompt.run({ prompt = "Run Lua code: " },
                              mymenubox,
@@ -350,12 +344,12 @@ globalkeys = {
                              awful.util.getdir("cache").."/lua_commands")
     end),
 
-    key({}, "#192", function() eminent.tag.goto(1, nil, true) end),
-    key({}, "#193", function() eminent.tag.goto(2, nil, true) end),
-    key({}, "#194", function() eminent.tag.goto(3, nil, true) end),
-    key({}, "#195", function() eminent.tag.goto(4, nil, true) end),
-    key({}, "#196", function() eminent.tag.goto(5, nil, true) end),
-}
+    awful.key({}, "#192", function() eminent.tag.goto(1, nil, true) end),
+    awful.key({}, "#193", function() eminent.tag.goto(2, nil, true) end),
+    awful.key({}, "#194", function() eminent.tag.goto(3, nil, true) end),
+    awful.key({}, "#195", function() eminent.tag.goto(4, nil, true) end),
+    awful.key({}, "#196", function() eminent.tag.goto(5, nil, true) end)
+)
 
 -- Mod+#: Switch to tag
 -- Mod+Shift+#: Toggle tag display
@@ -363,30 +357,31 @@ globalkeys = {
 -- Mod+Alt+#: Toggle client on tag
 
 for i = 1, 10 do
-    table.append(globalkeys,
-                 key(k_m, i % 10,
-                     function()
-                         eminent.tag.goto(i, nil, true)
-                     end),
-
-                 key(k_ms, i % 10,
-                     function ()
-                         local t = eminent.tag.getn(i, nil, true)
-                         if t ~= nil then t.selected = not t.selected end
-                     end),
-                 key(k_mc, i % 10,
-                     function ()
-                         local t = eminent.tag.getn(i, nil, true)
-                         if t ~= nil then awful.client.movetotag(t) end
-                     end)
-                 )
+    globalkeys = awful.util.table.join(
+        globalkeys,
+        awful.key(k_m, i % 10,
+            function()
+                eminent.tag.goto(i, nil, true)
+            end),
+
+        awful.key(k_ms, i % 10,
+            function ()
+                local t = eminent.tag.getn(i, nil, true)
+                if t ~= nil then t.selected = not t.selected end
+            end),
+        awful.key(k_mc, i % 10,
+            function ()
+                local t = eminent.tag.getn(i, nil, true)
+                if t ~= nil then awful.client.movetotag(t) end
+            end)
+    )
 end
 
 ---- }}}
 ---- {{{ Client hotkeys
 
-clientkeys = {
-    key(k_m, "i", function (c)
+clientkeys = awful.util.table.join(
+    awful.key(k_m, "i", function (c)
         if mymenubox.text then
             mymenubox.text = ""
         else
@@ -395,11 +390,11 @@ clientkeys = {
     end),
 
     -- Client manipulation
-    key(k_m, "c", function (c) c:kill() end),
-    key(k_m, "o", awful.client.floating.toggle),
-    key(k_m, "t", awful.client.togglemarked),
-    key(k_m, "F11", function (c) c.fullscreen = not c.fullscreen end)
-}
+    awful.key(k_m, "c", function (c) c:kill() end),
+    awful.key(k_m, "o", awful.client.floating.toggle),
+    awful.key(k_m, "t", awful.client.togglemarked),
+    awful.key(k_m, "F11", function (c) c.fullscreen = not c.fullscreen end)
+)
 
 ---- }}}
 
@@ -439,20 +434,21 @@ awful.hooks.manage.register(function (c, startup)
     end
 
     -- Add mouse bindings
-    c:buttons{
-        button({ }, 1, function (c) client.focus = c; c:raise() end),
-        button(k_a, 1, awful.mouse.client.move),
-        button(k_a, 3, awful.mouse.client.resize)
-    }
+    c:buttons(awful.util.table.join(
+        awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
+        awful.button(k_a, 1, awful.mouse.client.move),
+        awful.button(k_a, 3, awful.mouse.client.resize)
+    ))
 
     -- Create border
     c.border_width = beautiful.border_width
     c.border_color = beautiful.border_normal
 
     -- Make certain windows floating
-    local name = c.name:lower()
-    if name:find('pinentry')
-    or name:find('kcalc')
+    local class = c.class:lower()
+    if class:find('pinentry')
+    or class:find('kcalc')
+    or class:find('gajim')
     then
         c.floating = true
     end
@@ -484,4 +480,4 @@ end)
 
 -- }}}
 
-awful.util.spawn("xkbcomp -w 0 -R/usr/share/X11/xkb ~/.Xkeyboard :0")
+awful.util.spawn("xkbcomp -w 0 -R/usr/share/X11/xkb /home/madcoder/.Xkeyboard :0")