]> git.madduck.net Git - etc/awesome.git/blobdiff - .awesomerc.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

follow config changes
[etc/awesome.git] / .awesomerc.lua
index 6373c1c2cf71b8a53384cca32e877581a8681247..d2c717ea9648422fc797c87d0b26e0c8eac5d854 100644 (file)
@@ -72,68 +72,86 @@ for s = 1, screen.count() do
     tags[s] = {}
     -- Create 9 tags per screen
     for tagnumber = 1, 9 do
-        tags[s][tagnumber] = tag.new({ name = tagnumber, layout = layouts[1] })
+        tags[s][tagnumber] = tag({ name = tagnumber, layout = layouts[1] })
         -- Add tags to screen one by one
         -- split at 0.5/50% exactly
-        tags[s][tagnumber]:mwfact_set(0.5)
+        tags[s][tagnumber].mwfact = 0.5
         tags[s][tagnumber]:add(s)
     end
     -- I'm sure you want to see at least one tag.
-    tags[s][1]:view(true)
+    tags[s][1].selected = true
 end
 -- }}}
 
 -- {{{ Statusbar
 -- Create a taglist widget
-mytaglist = widget.new({ type = "taglist", name = "mytaglist" })
-mytaglist:mouse_add(mouse.new({}, 1, function (object, tag) awful.tag.viewonly(tag) end))
-mytaglist:mouse_add(mouse.new({ modkey }, 1, function (object, tag) awful.client.movetotag(tag) end))
-mytaglist:mouse_add(mouse.new({}, 3, function (object, tag) tag:view(not tag:isselected()) end))
-mytaglist:mouse_add(mouse.new({ modkey }, 3, function (object, tag) awful.client.toggletag(tag) end))
-mytaglist:mouse_add(mouse.new({ }, 4, awful.tag.viewnext))
-mytaglist:mouse_add(mouse.new({ }, 5, awful.tag.viewprev))
-mytaglist.text_focus = "<bg color='"..bg_focus.."'/> <span color='"..fg_focus.."'><title/></span> "
+mytaglist = widget({ type = "taglist", name = "mytaglist" })
+mytaglist:mouse_add(mouse({}, 1, function (object, tag) awful.tag.viewonly(tag) end))
+mytaglist:mouse_add(mouse({ modkey }, 1, function (object, tag) awful.client.movetotag(tag) end))
+mytaglist:mouse_add(mouse({}, 3, function (object, tag) tag.selected = not tag.selected end))
+mytaglist:mouse_add(mouse({ modkey }, 3, function (object, tag) awful.client.toggletag(tag) end))
+mytaglist:mouse_add(mouse({ }, 4, awful.tag.viewnext))
+mytaglist:mouse_add(mouse({ }, 5, awful.tag.viewprev))
+function mytaglist.label(t)
+    local text = ""
+    if t.selected then
+        text = "<bg color='"..bg_focus.."'/> <span color='"..fg_focus.."'>"..t.name.."</span> "
+    else
+        text = " "..t.name.." "
+    end
+    return text
+end
 
 -- Create a tasklist widget
-mytasklist = widget.new({ type = "tasklist", name = "mytasklist" })
-mytasklist:mouse_add(mouse.new({ }, 1, function (object, c) c:focus_set(); c:raise() end))
-mytasklist:mouse_add(mouse.new({ }, 4, function () awful.client.focus(1) end))
-mytasklist:mouse_add(mouse.new({ }, 5, function () awful.client.focus(-1) end))
-mytasklist.text_focus = "<bg color='"..bg_focus.."'/> <span color='"..fg_focus.."'><title/></span> "
+mytasklist = widget({ type = "tasklist", name = "mytasklist" })
+mytasklist:mouse_add(mouse({ }, 1, function (object, c) c:focus_set(); c:raise() end))
+mytasklist:mouse_add(mouse({ }, 4, function () awful.client.focus(1) end))
+mytasklist:mouse_add(mouse({ }, 5, function () awful.client.focus(-1) end))
+function mytasklist.label(c)
+    local text = ""
+    if c.floating then
+        text = "<bg image=\"@AWESOME_ICON_PATH@/floatingw.png\" align=\"right\"/>"
+    end
+    if client.focus_get() == c then
+        text = text .. " <bg color='"..bg_focus.."'/><span color='"..awful.escape(fg_focus).."'>"..c.name.."</span> "
+    else
+        text = text .. " "..awful.escape(c.name).." "
+    end
+    return text
+end
 
 -- Create a textbox widget
-mytextbox = widget.new({ type = "textbox", name = "mytextbox", align = "right" })
+mytextbox = widget({ type = "textbox", name = "mytextbox", align = "right" })
 -- Set the default text in textbox
 mytextbox.text = "<b><small> awesome " .. AWESOME_VERSION .. " </small></b>"
-mypromptbox = widget.new({ type = "textbox", name = "mypromptbox", align = "left" })
+mypromptbox = widget({ type = "textbox", name = "mypromptbox", align = "left" })
 
 -- Create an iconbox widget
-myiconbox = widget.new({ type = "textbox", name = "myiconbox", align = "left" })
+myiconbox = widget({ type = "textbox", name = "myiconbox", align = "left" })
 myiconbox.text = "<bg image=\"" .. AWESOME_DATADIR .. "/icons/awesome16.png\" resize=\"true\"/>"
 
 -- Create a systray
-mysystray = widget.new({ type = "systray", name = "mysystray", align = "right" })
+mysystray = widget({ type = "systray", name = "mysystray", align = "right" })
 
 -- Create an iconbox widget which will contains an icon indicating which layout we're using.
 -- We need one layoutbox per screen.
 mylayoutbox = {}
 for s = 1, screen.count() do
-    mylayoutbox[s] = widget.new({ type = "textbox", name = "mylayoutbox", align = "right" })
-    mylayoutbox[s]:mouse_add(mouse.new({ }, 1, function () awful.layout.inc(layouts, 1) end))
-    mylayoutbox[s]:mouse_add(mouse.new({ }, 3, function () awful.layout.inc(layouts, -1) end))
-    mylayoutbox[s]:mouse_add(mouse.new({ }, 4, function () awful.layout.inc(layouts, 1) end))
-    mylayoutbox[s]:mouse_add(mouse.new({ }, 5, function () awful.layout.inc(layouts, -1) end))
-    mylayoutbox[s].text = "<bg image=\"" .. AWESOME_DATADIR .. "/icons/layouts/tilew.png\" resize=\"true\"/>"
+    mylayoutbox[s] = widget({ type = "textbox", name = "mylayoutbox", align = "right" })
+    mylayoutbox[s]:mouse_add(mouse({ }, 1, function () awful.layout.inc(layouts, 1) end))
+    mylayoutbox[s]:mouse_add(mouse({ }, 3, function () awful.layout.inc(layouts, -1) end))
+    mylayoutbox[s]:mouse_add(mouse({ }, 4, function () awful.layout.inc(layouts, 1) end))
+    mylayoutbox[s]:mouse_add(mouse({ }, 5, function () awful.layout.inc(layouts, -1) end))
+    mylayoutbox[s].text = "<bg image=\"" .. AWESOME_DATADIR .. "/layouts/tilew.png\" resize=\"true\"/>"
 end
 
 -- Create a statusbar for each screen and add it
 mystatusbar = {}
 for s = 1, screen.count() do
-    mystatusbar[s] = statusbar.new({ position = "top", name = "mystatusbar" .. s,
+    mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s,
                                    fg = fg_normal, bg = bg_normal })
     -- Add widgets to the statusbar - order matters
     mystatusbar[s]:widget_add(mytaglist)
-    mystatusbar[s]:widget_add(myiconbox)
     mystatusbar[s]:widget_add(mytasklist)
     mystatusbar[s]:widget_add(mypromptbox)
     mystatusbar[s]:widget_add(mytextbox)
@@ -144,9 +162,9 @@ mystatusbar[screen.count()]:widget_add(mysystray)
 -- }}}
 
 -- {{{ Mouse bindings
-awesome.mouse_add(mouse.new({ }, 3, function () awful.spawn(terminal) end))
-awesome.mouse_add(mouse.new({ }, 4, awful.tag.viewnext))
-awesome.mouse_add(mouse.new({ }, 5, awful.tag.viewprev))
+awesome.mouse_add(mouse({ }, 3, function () awful.spawn(terminal) end))
+awesome.mouse_add(mouse({ }, 4, awful.tag.viewnext))
+awesome.mouse_add(mouse({ }, 5, awful.tag.viewprev))
 -- }}}
 
 -- {{{ Key bindings
@@ -159,77 +177,77 @@ for s = 1, screen.count() do
 end
 
 for i = 1, keynumber do
-    keybinding.new({ modkey }, i,
+    keybinding({ modkey }, i,
                    function ()
-                       local screen = mouse.screen_get()
+                       local screen = mouse.screen
                        if tags[screen][i] then
                            awful.tag.viewonly(tags[screen][i])
                        end
                    end):add()
-    keybinding.new({ modkey, "Control" }, i,
+    keybinding({ modkey, "Control" }, i,
                    function ()
-                       local screen = mouse.screen_get()
+                       local screen = mouse.screen
                        if tags[screen][i] then
-                           tags[i]:view(not tags[screen][i]:isselected())
+                           tags[screen][i].selected = not tags[screen][i].selected
                        end
                    end):add()
-    keybinding.new({ modkey, "Shift" }, i,
+    keybinding({ modkey, "Shift" }, i,
                    function ()
-                       local screen = mouse.screen_get()
+                       local screen = mouse.screen
                        if tags[screen][i] then
                            awful.client.movetotag(tags[screen][i])
                        end
                    end):add()
-    keybinding.new({ modkey, "Control", "Shift" }, i,
+    keybinding({ modkey, "Control", "Shift" }, i,
                    function ()
-                       local screen = mouse.screen_get()
+                       local screen = mouse.screen
                        if tags[screen][i] then
                            awful.client.toggletag(tags[screen][i])
                        end
                    end):add()
 end
 
-keybinding.new({ modkey }, "Left", awful.tag.viewprev):add()
-keybinding.new({ modkey }, "Right", awful.tag.viewnext):add()
+keybinding({ modkey }, "Left", awful.tag.viewprev):add()
+keybinding({ modkey }, "Right", awful.tag.viewnext):add()
 
 -- Standard program
-keybinding.new({ modkey }, "Return", function () awful.spawn(terminal) end):add()
+keybinding({ modkey }, "Return", function () awful.spawn(terminal) end):add()
 
-keybinding.new({ modkey, "Control" }, "r", awesome.restart):add()
-keybinding.new({ modkey, "Shift" }, "q", awesome.quit):add()
+keybinding({ modkey, "Control" }, "r", awesome.restart):add()
+keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
 
 -- Client manipulation
-keybinding.new({ modkey, "Shift" }, "Escape", function () client.focus_get():kill() end):add()
-keybinding.new({ modkey }, "k", function () awful.client.focus(1); client.focus_get():raise() end):add()
-keybinding.new({ modkey }, "j", function () awful.client.focus(-1);  client.focus_get():raise() end):add()
-keybinding.new({ modkey, "Shift" }, "k", function () awful.client.swap(1) end):add()
-keybinding.new({ modkey, "Shift" }, "j", function () awful.client.swap(-1) end):add()
-keybinding.new({ modkey, "Control" }, "k", function () awful.screen.focus(1) end):add()
-keybinding.new({ modkey, "Control" }, "j", function () awful.screen.focus(-1) end):add()
-keybinding.new({ modkey, "Control" }, "space", awful.client.togglefloating):add()
-keybinding.new({ modkey, "Control" }, "Return", function () client.focus_get():swap(awful.client.master()) end):add()
-keybinding.new({ modkey }, "o", awful.client.movetoscreen):add()
+keybinding({ modkey, "Shift" }, "c", function () client.focus_get():kill() end):add()
+keybinding({ modkey }, "j", function () awful.client.focus(1); client.focus_get():raise() end):add()
+keybinding({ modkey }, "k", function () awful.client.focus(-1);  client.focus_get():raise() end):add()
+keybinding({ modkey, "Shift" }, "j", function () awful.client.swap(1) end):add()
+keybinding({ modkey, "Shift" }, "k", function () awful.client.swap(-1) end):add()
+keybinding({ modkey, "Control" }, "j", function () awful.screen.focus(1) end):add()
+keybinding({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end):add()
+keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
+keybinding({ modkey, "Control" }, "Return", function () client.focus_get():swap(awful.client.master()) end):add()
+keybinding({ modkey }, "o", awful.client.movetoscreen):add()
 
 -- Layout manipulation
-keybinding.new({ modkey }, "l", function () awful.tag.incmwfact(0.05) end):add()
-keybinding.new({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end):add()
-keybinding.new({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1) end):add()
-keybinding.new({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end):add()
-keybinding.new({ modkey, "Control" }, "h", function () awful.tag.incncol(1) end):add()
-keybinding.new({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end):add()
-keybinding.new({ modkey }, "space", function () awful.layout.inc(layouts, 1) end):add()
-keybinding.new({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end):add()
+keybinding({ modkey }, "l", function () awful.tag.incmwfact(0.05) end):add()
+keybinding({ modkey }, "h", function () awful.tag.incmwfact(-0.05) end):add()
+keybinding({ modkey, "Shift" }, "h", function () awful.tag.incnmaster(1) end):add()
+keybinding({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end):add()
+keybinding({ modkey, "Control" }, "h", function () awful.tag.incncol(1) end):add()
+keybinding({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end):add()
+keybinding({ modkey }, "space", function () awful.layout.inc(layouts, 1) end):add()
+keybinding({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end):add()
 
 -- Prompt
-keybinding.new({ modkey }, "F1", function ()
+keybinding({ modkey }, "F1", function ()
                                      awful.prompt({ prompt = "Run: ", cursor_fg = fg_focus, cursor_bg = bg_focus }, mypromptbox, awful.spawn, awful.completion.bash)
                                  end):add()
-keybinding.new({ modkey }, "F4", function ()
+keybinding({ modkey }, "F4", function ()
                                      awful.prompt({ prompt = "Run Lua code: ", cursor_fg = fg_focus, cursor_bg = bg_focus }, mypromptbox, awful.eval, awful.prompt.bash)
                                  end):add()
 
 --- Tabulous, tab manipulation
-keybinding.new({ modkey, "Control" }, "y", function ()
+keybinding({ modkey, "Control" }, "y", function ()
     local tabbedview = tabulous.tabindex_get()
     local nextclient = awful.client.next(1)
 
@@ -247,9 +265,9 @@ keybinding.new({ modkey, "Control" }, "y", function ()
     end
 end):add()
 
-keybinding.new({ modkey, "Shift" }, "y", tabulous.untab):add()
+keybinding({ modkey, "Shift" }, "y", tabulous.untab):add()
 
-keybinding.new({ modkey }, "y", function ()
+keybinding({ modkey }, "y", function ()
    local tabbedview = tabulous.tabindex_get()
 
    if tabbedview ~= nil then
@@ -259,8 +277,8 @@ keybinding.new({ modkey }, "y", function ()
 end):add()
 
 -- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
-keybinding.new({ modkey }, "t", awful.client.togglemarked):add()
-keybinding.new({ modkey, 'Shift' }, "t", function ()
+keybinding({ modkey }, "t", awful.client.togglemarked):add()
+keybinding({ modkey, 'Shift' }, "t", function ()
     local tabbedview = tabulous.tabindex_get()
     local clients = awful.client.getmarked()
 
@@ -276,9 +294,9 @@ keybinding.new({ modkey, 'Shift' }, "t", function ()
 end):add()
 
 for i = 1, keynumber do
-    keybinding.new({ modkey, "Shift" }, "F" .. i,
+    keybinding({ modkey, "Shift" }, "F" .. i,
                    function ()
-                       local screen = mouse.screen_get()
+                       local screen = mouse.screen
                        if tags[screen][i] then
                            for k, c in pairs(awful.client.getmarked()) do
                                awful.client.movetotag(tags[screen][i], c)
@@ -292,31 +310,31 @@ end
 -- Hook function to execute when focusing a client.
 function hook_focus(c)
     if not awful.client.ismarked(c) then
-        c:border_set({ width = border_width, color = border_focus })
+        c.border_color = border_focus
     end
 end
 
 -- Hook function to execute when unfocusing a client.
 function hook_unfocus(c)
     if not awful.client.ismarked(c) then
-        c:border_set({ width = border_width, color = border_normal })
+        c.border_color = border_normal
     end
 end
 
 -- Hook function to execute when marking a client
 function hook_marked(c)
-    c:border_set({ width = border_width, color = border_marked })
+    c.border_color = border_marked
 end
 
 -- Hook function to execute when unmarking a client
 function hook_unmarked(c)
-    c:border_set({ width = border_width, color = border_focus })
+    c.border_color = border_focus
 end
 
 -- Hook function to execute when the mouse is over a client.
 function hook_mouseover(c)
     -- Sloppy focus, but disabled for magnifier layout
-    if awful.layout.get(c:screen_get()) ~= "magnifier" then
+    if awful.layout.get(c.screen) ~= "magnifier" then
         c:focus_set()
     end
 end
@@ -324,44 +342,44 @@ end
 -- Hook function to execute when a new client appears.
 function hook_manage(c)
     -- Add mouse bindings
-    c:mouse_add(mouse.new({ }, 1, function (c) c:focus_set(); c:raise() end))
-    c:mouse_add(mouse.new({ modkey }, 1, function (c) c:mouse_move() end))
-    c:mouse_add(mouse.new({ modkey }, 3, function (c) c:mouse_resize() end))
+    c:mouse_add(mouse({ }, 1, function (c) c:focus_set(); c:raise() end))
+    c:mouse_add(mouse({ modkey }, 1, function (c) c:mouse_move() end))
+    c:mouse_add(mouse({ modkey }, 3, function (c) c:mouse_resize() end))
     -- New client may not receive focus
     -- if they're not focusable, so set border anyway.
-    c:border_set({ width = border_width, color = border_normal })
+    c.border_width = border_width
+    c.border_color = border_normal
     c:focus_set()
-    if floatings[c:name_get():lower()] then
-        c:floating_set(true)
+    if floatings[c.name:lower()] then
+        c.floating = true
     end
     -- Honor size hints
-    c:honorsizehints_set(true)
+    c.honorsizehints = true
 end
 
 -- Hook function to execute when arranging the screen
 -- (tag switch, new client, etc)
 function hook_arrange(screen)
     local layout = awful.layout.get(screen)
-    mylayoutbox[screen].text = "<bg image=\"" .. AWESOME_DATADIR .. "/icons/layouts/" .. layout .. "w.png\" resize=\"true\"/>"
+    mylayoutbox[screen].text = "<bg image=\"@AWESOME_ICON_PATH@/layouts/" .. layout .. "w.png\" resize=\"true\"/>"
 
     -- Uncomment if you want mouse warping
     --[[
     local sel = client.focus_get()
     if sel then
-        local c_c = sel:coords_get()
-        local m_c = mouse.coords_get()
+        local c_c = sel.coords
+        local m_c = mouse.coords
 
         if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
             m_c.y < c_c.y or m_c.y >= c_c.y + c_c.height then
             if table.maxn(m_c.buttons) == 0 then
-                mouse.coords_set(c_c.x + 5, c_c.y + 5)
+                mouse.coords = { x = c_c.x + 5, y = c_c.y + 5}
             end
         end
     end
     ]]
 end
 
-
 -- Hook called every second
 function hook_timer ()
     -- For unix time_t lovers
@@ -384,24 +402,24 @@ awful.hooks.timer(1, hook_timer)
 cmdmodkey = "Mod3"
 
 -- xmms2 & sound
-keybinding.new({ cmdmodkey }, "Prior", function () awful.spawn("amixer set Master 2+") end):add()
-keybinding.new({ cmdmodkey }, "Next", function () awful.spawn("amixer set Master 2-") end):add()
-keybinding.new({ cmdmodkey }, "Up", function () awful.spawn("amixer set PCM 2+") end):add()
-keybinding.new({ cmdmodkey }, "Down", function () awful.spawn("amixer set PCM 2-") end):add()
-keybinding.new({ cmdmodkey }, "Home", function () awful.spawn("amixer set Mic toggle") end):add()
-keybinding.new({ cmdmodkey }, "End", function () awful.spawn("amixer set Master toggle") end):add()
-keybinding.new({ cmdmodkey }, "Left", function () awful.spawn("xmms2 prev") end):add()
-keybinding.new({ cmdmodkey }, "Right", function () awful.spawn("xmms2 next") end):add()
-keybinding.new({ cmdmodkey }, "space", function () awful.spawn("xmms2 toggle") end):add()
-keybinding.new({ cmdmodkey }, "backslash", function () awful.spawn("xmms2 current | head -1 | xmessage -nearmouse -timeout 5 -file -") end):add()
-keybinding.new({ cmdmodkey, "Shift" }, "backslash", function () awful.spawn("xmms2 list | xmessage -nearmouse -timeout 5 -file -") end):add()
+keybinding({ cmdmodkey }, "Prior", function () awful.spawn("amixer set Master 2+") end):add()
+keybinding({ cmdmodkey }, "Next", function () awful.spawn("amixer set Master 2-") end):add()
+keybinding({ cmdmodkey }, "Up", function () awful.spawn("amixer set PCM 2+") end):add()
+keybinding({ cmdmodkey }, "Down", function () awful.spawn("amixer set PCM 2-") end):add()
+keybinding({ cmdmodkey }, "Home", function () awful.spawn("amixer set Mic toggle") end):add()
+keybinding({ cmdmodkey }, "End", function () awful.spawn("amixer set Master toggle") end):add()
+keybinding({ cmdmodkey }, "Left", function () awful.spawn("xmms2 prev") end):add()
+keybinding({ cmdmodkey }, "Right", function () awful.spawn("xmms2 next") end):add()
+keybinding({ cmdmodkey }, "space", function () awful.spawn("xmms2 toggle") end):add()
+keybinding({ cmdmodkey }, "backslash", function () awful.spawn("xmms2 current | head -1 | xmessage -nearmouse -timeout 5 -file -") end):add()
+keybinding({ cmdmodkey, "Shift" }, "backslash", function () awful.spawn("xmms2 list | xmessage -nearmouse -timeout 5 -file -") end):add()
 
 -- misc apps
-keybinding.new({ cmdmodkey }, "n", function () awful.spawn("sensible-browser") end):add()
-keybinding.new({ cmdmodkey }, "m", function () awful.spawn(terminal .. " -e mutt -f =store") end):add()
-keybinding.new({ cmdmodkey }, "t", function () awful.spawn(terminal) end):add()
-keybinding.new({ cmdmodkey }, "c", function () awful.spawn(terminal .. " -e python") end):add()
-keybinding.new({ cmdmodkey }, "r", function () awful.spawn("gmrun") end):add()
-keybinding.new({ cmdmodkey }, "j", function () awful.spawn("jpilot") end):add()
-keybinding.new({ cmdmodkey }, "x", function () awful.spawn("/sbin/start-stop-daemon --start --background --exec /usr/bin/xscreensaver; xscreensaver-command -lock") end):add()
-keybinding.new({ cmdmodkey, "Shift" }, "x", function () awful.spawn("xscreensaver-command -exit") end):add()
+keybinding({ cmdmodkey }, "n", function () awful.spawn("sensible-browser") end):add()
+keybinding({ cmdmodkey }, "m", function () awful.spawn(terminal .. " -e mutt -f =store") end):add()
+keybinding({ cmdmodkey }, "t", function () awful.spawn(terminal) end):add()
+keybinding({ cmdmodkey }, "c", function () awful.spawn(terminal .. " -e python") end):add()
+keybinding({ cmdmodkey }, "r", function () awful.spawn("gmrun") end):add()
+keybinding({ cmdmodkey }, "j", function () awful.spawn("jpilot") end):add()
+keybinding({ cmdmodkey }, "x", function () awful.spawn("/sbin/start-stop-daemon --start --background --exec /usr/bin/xscreensaver; xscreensaver-command -lock") end):add()
+keybinding({ cmdmodkey, "Shift" }, "x", function () awful.spawn("xscreensaver-command -exit") end):add()