my complicated awesomewm config (SUNSETTED)
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.
 
 
 

96 lines
3.5 KiB

local awful = require("awful")
local wibox = require("wibox")
local gears = require("gears")
local beautiful = require("beautiful")
local awmtk = require("awmtk")
local tasklist_buttons = gears.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
c:emit_signal(
"request::activate",
"tasklist",
{raise = true}
)
end
end),
awful.button({ }, 3, function()
awful.menu.client_list({ theme = { width = 250 } })
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
end))
return function(options)
local style = awmtk.style(awmtk.defaults,options.style or {},"tasklist_")
-- Color definitions
local constraint = options.constraint or style.tasklist_constraint
--This one is a little bit awkward, considering that we just
--need the templates, not the widgets
local _style = awmtk._create_preprocess_style(style,"tasklist_")
_style.button_shape = awmtk.preprocess.button_shape(_style)
local container = style.tasklist_button_widget(_style)
return function(s)
local tasklist = {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons,
style = {
shape = container.shape,
shape_border_width = container.shape_border_width,
shape_border_color = container.shape_border_color
},
layout = options.container or {
spacing = style.tasklist_container_spacing,
layout = (options.vertical and
wibox.layout.fixed.vertical
) or ((not options.stretch) and
wibox.layout.flex.horizontal
) or
wibox.layout.fixed.horizontal
},
widget_template = container
}
if constraint then
tasklist.widget_template = {
container,
widget = wibox.container.constraint,
width = (type(constraint) == "number" and constraint) or 180,
strategy = "exact"
}
end
local top = awmtk.utils.get_child_by_id(
tasklist.widget_template,"widget_container"
)[1]
top[1] = {
{
id = 'clienticon',
widget = awful.widget.clienticon,
},
(options.names and {
id = 'text_role',
widget = wibox.widget.textbox,
ellipsize = "end",
}),
left = style.tasklist_padding or ((not options.vertical) and 6),
right = style.tasklist_padding or ((not options.vertical) and 6),
layout = (options.vertical and wibox.layout.fixed.vertical) or
wibox.layout.fixed.horizontal,
spacing = 3,
}
local top = awmtk.utils.get_child_by_id(
tasklist.widget_template,"widget_background"
)[1]
top.id = "background_role"
tasklist.widget_template.create_callback = function(self, c, index, objects)
self:get_children_by_id('clienticon')[1].client = c
end
return awful.widget.tasklist(tasklist)
end
end