This commit is contained in:
crater2150 2013-04-13 17:17:09 +02:00
parent d4097316e1
commit b241b19f44
53 changed files with 1156 additions and 853 deletions

128
tags.lua
View file

@ -1,21 +1,60 @@
-- tags and layouts
local awful = awful
local conf = conf
local modkey = conf.modkey or "Mod4"
-- {{{ Tags
tags={}
tags.setup = {
{ name = "1:⚙", layout = layouts[1] },
local tags={ mt={} }
local layouts = layouts
local function funcViewOnly(i)
return function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end
end
local function funcViewToggle(i)
return function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i])
end
end
end
local function funcMoveTo(i)
return function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end
end
local function funcToggle(i)
return function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end
end
local defaultsetup = {
{"1:⚙"},
{ name = "2:⌘", layout = layouts[5] },
{ name = "3:☻", layout = layouts[3], mwfact = 0.20 },
{ name = "4:✉", layout = layouts[5] },
{ name = "5:☑", layout = layouts[1] },
{ name = "6:♫", layout = layouts[1] },
{ name = "7:☣", layout = layouts[1] },
{ name = "8:☕", layout = layouts[1] },
{ name = "9:⚂", layout = layouts[1] },
{ name = "0:☠", layout = layouts[1] },
{ name = "F1:☭", layout = layouts[1] },
{ name = "F2:♚", layout = layouts[1] },
{ name = "F3:♛", layout = layouts[1] },
{ name = "F4:♜", layout = layouts[1] }--,
{"5:☑"},
{"6:♫"},
{"7:☣"},
{"8:☕"},
{"9:⚂"},
{"0:☠"},
{"F1:☭"},
{"F2:♚"},
{"F3:♛"},
{"F4:♜"}--,
-- { name = "F5:♝", layout = layouts[1] },
-- { name = "F6:♞", layout = layouts[1] },
-- { name = "F7:♟", layout = layouts[1] },
@ -26,15 +65,54 @@ tags.setup = {
-- { name = "F12:⚙", layout = layouts[1] }
}
for s = 1, screen.count() do
tags[s] = {}
for i, t in ipairs(tags.setup) do
tags[s][i] = tag({ name = t.name })
tags[s][i].screen = s
awful.tag.setproperty(tags[s][i], "layout", t.layout)
awful.tag.setproperty(tags[s][i], "mwfact", t.mwfact)
awful.tag.setproperty(tags[s][i], "hide", t.hide)
end
tags[s][1].selected = true
local list = {}
function tags.setup(setuptable)
local setup = setuptable or defaultsetup
for s = 1, screen.count() do
list[s] = {}
for i, t in ipairs(setup) do
local layout = t.layout or layouts[1]
local name = t.name or t[1]
list[s][i] = awful.tag.new({name}, s, layout)[1];
list[s][i].selected = false
if(t.mwfact) then
awful.tag.setmwfact(t.mwfact,list[s][i])
end
end
list[s][1].selected = true
end
end
-- }}}
function tags.extend_key_table(globalkeys)
-- Compute the maximum number of digit we need, limited to 22
keynumber = 0
for s = 1, screen.count() do
keynumber = math.min(22, math.max(#(list[s]), keynumber));
end
local inspect = require("inspect")
local tagkeys = globalkeys or {}
-- Bind all key numbers to tags, using keycodes
for i = 1, keynumber do
if i < 10 then
k = "#" .. i + 9 -- number keys 1-9
elseif i == 10 then
k = "#19" -- zero
elseif i > 10 then
k = "F" .. i - 10 -- F keys
end
tagkeys = awful.util.table.join(tagkeys,
awful.key( { modkey }, k, funcViewOnly(i)),
awful.key( { modkey, "Control" }, k, funcViewToggle(i)),
awful.key( { modkey, "Shift" }, k, funcMoveTo(i)),
awful.key( { modkey, "Control", "Shift" }, k, funcToggle(i))
)
end
return tagkeys;
end
tags.mt.__index = list
tags.mt.__newindex = list
return setmetatable(tags, tags.mt)