Migrate awesome to the new stuff.
[~madcoder/dotfiles.git] / config / awesome / rc.lua
index cccf459..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")
@@ -31,7 +25,7 @@ k_a  = {alt}
 k_ac = {alt, control}
 k_c  = {control}
 k_cs = {control, shift}
-k_s = {shift}
+k_s  = {shift}
 
 -- }}}
 
@@ -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
@@ -230,7 +224,7 @@ awful.hooks.timer.register(10, clock_update)
 -- }}}
 
 mymenubox = widget{ type = "textbox", name = "mytextbox", align = "left" }
-mysystray = widget{ type = "systray", name = "mysystray", align = "right" }
+-- mysystray = widget{ type = "systray", name = "mysystray", align = "right" }
 
 -- {{{ Statusbar
 
@@ -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,40 +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,  "Return", function() awful.util.spawn(terminal) end),
-    key(k_ac, "Delete", awesome.restart),
-    key(k_m, "F12", function() awful.util.spawn(lock) 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,
@@ -339,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,
@@ -347,7 +343,13 @@ globalkeys = {
                              awful.prompt.bash,
                              awful.util.getdir("cache").."/lua_commands")
     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
@@ -355,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
@@ -387,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)
+)
 
 ---- }}}
 
@@ -431,19 +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')
+    local class = c.class:lower()
+    if class:find('pinentry')
+    or class:find('kcalc')
+    or class:find('gajim')
     then
         c.floating = true
     end
@@ -458,22 +463,21 @@ end)
 -- (tag switch, new client, etc)
 awful.hooks.arrange.register(function (screen)
     local sel = client.focus
+
     if not sel then
         sel = awful.client.focus.history.get(screen, 0)
-        if sel then client.focus = sel end
+        if not sel then return end
+        client.focus = sel
     end
-    --[[
-    if sel then
-        local m_c = mouse.coords()
-
-        if m_c.x < sel.x - 1 or m_c.x > sel.x + sel.width + 1 or
-            m_c.y < sel.y - 1 or m_c.y > sel.y + sel.height + 1 then
-            if #m_c.buttons == 0 then
-                mouse.coords{x = sel.x + 5, y = sel.y + 5}
-            end
-        end
+
+    local o = mouse.object_under_pointer()
+    if not o or (type(o) == "client" and o ~= sel) then
+        local g = sel:geometry()
+
+        mouse.coords { x = g.x + 5, y = g.y + 5 }
     end
-    ]]--
 end)
 
 -- }}}
+
+awful.util.spawn("xkbcomp -w 0 -R/usr/share/X11/xkb /home/madcoder/.Xkeyboard :0")