From e7912fc2a8ec74b25c5de28ed85cbfe3654c9b1b Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee Date: Fri, 22 Mar 2013 00:59:05 -0400 Subject: [PATCH] Fix mod4+[1-9] in default rc.lua The old code had flaws: * If the tag chnaged screen, the code was unstable. * If awful.tag.del was used, then it displayed an error * If tags were added later, the keyboard shortcut were unavailable --- awesomerc.lua.in | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/awesomerc.lua.in b/awesomerc.lua.in index 9a53c4f2..54c42fb4 100644 --- a/awesomerc.lua.in +++ b/awesomerc.lua.in @@ -292,41 +292,39 @@ clientkeys = awful.util.table.join( end) ) --- Compute the maximum number of digit we need, limited to 9 -keynumber = 0 -for s = 1, screen.count() do - keynumber = math.min(9, math.max(#tags[s], keynumber)) -end - -- Bind all key numbers to tags. -- Be careful: we use keycodes to make it works on any keyboard layout. -- This should map on the top row of your keyboard, usually 1 to 9. -for i = 1, keynumber do +for i = 1, 9 do globalkeys = awful.util.table.join(globalkeys, awful.key({ modkey }, "#" .. i + 9, function () local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewonly(tags[screen][i]) + local tag = awful.tag.gettags(screen)[i] + if tag then + awful.tag.viewonly(tag) end end), awful.key({ modkey, "Control" }, "#" .. i + 9, function () local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewtoggle(tags[screen][i]) + local tag = awful.tag.gettags(screen)[i] + if tag then + awful.tag.viewtoggle(tag) end end), awful.key({ modkey, "Shift" }, "#" .. i + 9, function () - if client.focus and tags[client.focus.screen][i] then - awful.client.movetotag(tags[client.focus.screen][i]) - end + local tag = awful.tag.gettags(client.focus.screen)[i] + if client.focus and tag then + awful.client.movetotag(tag) + end end), awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function () - if client.focus and tags[client.focus.screen][i] then - awful.client.toggletag(tags[client.focus.screen][i]) + local tag = awful.tag.gettags(client.focus.screen)[i] + if client.focus and tag then + awful.client.toggletag(tag) end end)) end -- 2.11.4.GIT