80 lines
2.1 KiB
Lua
80 lines
2.1 KiB
Lua
|
local wibox = require("wibox")
|
||
|
local awful = require("awful")
|
||
|
local gears = require("gears")
|
||
|
local beautiful = require("beautiful")
|
||
|
|
||
|
local awmtk = {}
|
||
|
|
||
|
-- {{{ Utils
|
||
|
awmtk.create_class = function(name,overrides,style,parent_class)
|
||
|
return setmetatable(overrides,{
|
||
|
__index = function(self,k)
|
||
|
-- Per-widget overrides are top priority
|
||
|
if rawget(self,k) then
|
||
|
return rawget(self,k)
|
||
|
-- Style overrides are second in priority
|
||
|
elseif type(style[name]) == "table" and rawget(style[name],k) then
|
||
|
return rawget(style[name],k)
|
||
|
-- Parent class is fallback
|
||
|
elseif parent_class[k] then
|
||
|
return parent_class[k]
|
||
|
end
|
||
|
end
|
||
|
})
|
||
|
end
|
||
|
|
||
|
awmtk.create_style = function(style_name,parent,overrides)
|
||
|
local new_style = {}
|
||
|
for name,parent_class in pairs(parent) do
|
||
|
new_style[name] = awmtk.create_class(
|
||
|
name,
|
||
|
(overrides and overrides[name]) or {},
|
||
|
(beautiful[style_name] or {}),
|
||
|
parent_class
|
||
|
)
|
||
|
end
|
||
|
return new_style
|
||
|
end
|
||
|
|
||
|
-- }}}
|
||
|
|
||
|
|
||
|
-- {{{ Default style
|
||
|
|
||
|
-- Default style
|
||
|
awmtk.default = {
|
||
|
base = setmetatable({
|
||
|
-- { Backgrounds
|
||
|
-- custom background color for highlighting elements
|
||
|
bg_highlight = beautiful.bg_highlight or beautiful.bg_focus,
|
||
|
-- }
|
||
|
-- { Borders
|
||
|
-- Borders for popups
|
||
|
shape_border_width = beautiful.shape_border_width or 0,
|
||
|
shape_border_color = beautiful.shape_border_color or beautiful.bg_normal,
|
||
|
-- }
|
||
|
-- { Shapes
|
||
|
inner_margin = beautiful.inner_margin or 5,
|
||
|
rounding = beautiful.rounding or 0,
|
||
|
-- }
|
||
|
},{__index = beautiful})
|
||
|
}
|
||
|
|
||
|
-- Container subclass
|
||
|
awmtk.default.container = awmtk.create_class("container",{
|
||
|
},awmtk.default,awmtk.default.base)
|
||
|
|
||
|
-- Button subclass
|
||
|
awmtk.default.button = awmtk.create_class("button",{
|
||
|
inner_margin = 1
|
||
|
},awmtk.default,awmtk.default.base)
|
||
|
|
||
|
-- Icon subclass
|
||
|
awmtk.default.icon = awmtk.create_class("icon",{
|
||
|
inner_margin = 1
|
||
|
},awmtk.default,awmtk.default.base)
|
||
|
|
||
|
-- }}}
|
||
|
|
||
|
return awmtk
|