You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
10 years ago
|
------------------------------------------
|
||
|
-- Effortless wmii-style dynamic tagging.
|
||
|
------------------------------------------
|
||
|
-- Lucas de Vries <lucas@glacicle.org>
|
||
|
-- Licensed under the WTFPL version 2
|
||
|
-- * http://sam.zoy.org/wtfpl/COPYING
|
||
|
-----------------------------------------
|
||
|
-- Cut version
|
||
|
-----------------------------------------
|
||
|
|
||
|
-- Grab environment
|
||
|
local ipairs = ipairs
|
||
|
local awful = require("awful")
|
||
|
local table = table
|
||
|
local capi = {
|
||
|
screen = screen,
|
||
|
}
|
||
|
|
||
|
-- Eminent: Effortless wmii-style dynamic tagging
|
||
|
module("eminent")
|
||
|
|
||
|
-- Grab the original functions we're replacing
|
||
|
local deflayout = nil
|
||
|
local orig = {
|
||
|
new = awful.tag.new,
|
||
|
taglist = awful.widget.taglist.new,
|
||
|
filter = awful.widget.taglist.filter.all,
|
||
|
}
|
||
|
|
||
|
-- Return tags with stuff on them, mark others hidden
|
||
|
function gettags(screen)
|
||
|
local tags = {}
|
||
|
|
||
|
for k, t in ipairs(capi.screen[screen]:tags()) do
|
||
|
if t.selected or #t:clients() > 0 then
|
||
|
awful.tag.setproperty(t, "hide", false)
|
||
|
table.insert(tags, t)
|
||
|
else
|
||
|
awful.tag.setproperty(t, "hide", true)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return tags
|
||
|
end
|
||
|
|
||
|
-- Pre-create tags
|
||
|
awful.tag.new = function (names, screen, layout)
|
||
|
deflayout = layout and layout[1] or layout
|
||
|
return orig.new(names, screen, layout)
|
||
|
end
|
||
|
|
||
|
-- Taglist label functions
|
||
|
awful.widget.taglist.filter.all = function (t, args)
|
||
|
if t.selected or #t:clients() > 0 then
|
||
|
return orig.filter(t, args)
|
||
|
end
|
||
|
end
|