-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2b39521
commit 8223891
Showing
4 changed files
with
476 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
-- Based on: <https://github.com/BlingCorp/bling/blob/master/widget/tabbar/boxes.lua> | ||
local awful = require("awful") | ||
local gears = require("gears") | ||
local wibox = require("wibox") | ||
|
||
local beautiful = require("beautiful") | ||
|
||
local bg_normal = beautiful.tabbar_bg_normal or beautiful.bg_normal or "#ffffff" | ||
local fg_normal = beautiful.tabbar_fg_normal or beautiful.fg_normal or "#000000" | ||
local bg_focus = beautiful.tabbar_bg_focus or beautiful.bg_focus or "#000000" | ||
local fg_focus = beautiful.tabbar_fg_focus or beautiful.fg_focus or "#ffffff" | ||
local bg_focus_inactive = beautiful.tabbar_bg_focus_inactive or bg_focus | ||
local fg_focus_inactive = beautiful.tabbar_fg_focus_inactive or fg_focus | ||
local bg_normal_inactive = beautiful.tabbar_bg_normal_inactive or bg_normal | ||
local fg_normal_inactive = beautiful.tabbar_fg_normal_inactive or fg_normal | ||
local font = beautiful.tabbar_font or beautiful.font or "Fira Code 13" | ||
local size = beautiful.tabbar_size or 40 | ||
local position = beautiful.tabbar_position or "bottom" | ||
|
||
local function create(c, focused_bool, buttons, inactive_bool) | ||
local bg_temp = inactive_bool and bg_normal_inactive or bg_normal | ||
local fg_temp = inactive_bool and fg_normal_inactive or fg_normal | ||
if focused_bool then | ||
bg_temp = inactive_bool and bg_focus_inactive or bg_focus | ||
fg_temp = inactive_bool and fg_focus_inactive or fg_focus | ||
end | ||
local wid_temp = wibox.widget({ | ||
{ | ||
{ | ||
awful.widget.clienticon(c), | ||
left = 10, | ||
right = 10, | ||
bottom = 10, | ||
top = 10, | ||
widget = wibox.container.margin(), | ||
}, | ||
widget = wibox.container.place(), | ||
}, | ||
buttons = buttons, | ||
bg = bg_temp, | ||
widget = wibox.container.background(), | ||
}) | ||
return wid_temp | ||
end | ||
|
||
local layout = wibox.layout.fixed.horizontal | ||
if position == "left" or position == "right" then | ||
layout = wibox.layout.fixed.vertical | ||
end | ||
|
||
return { | ||
layout = layout, | ||
create = create, | ||
position = position, | ||
size = size, | ||
bg_normal = bg_normal, | ||
bg_focus = bg_normal, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
-- Based on: <https://github.com/BlingCorp/bling/blob/master/widget/tabbar/default.lua> | ||
local gears = require("gears") | ||
local wibox = require("wibox") | ||
|
||
local beautiful = require("beautiful") | ||
|
||
local bg_normal = beautiful.tabbar_bg_normal or beautiful.bg_normal or "#ffffff" | ||
local fg_normal = beautiful.tabbar_fg_normal or beautiful.fg_normal or "#000000" | ||
local bg_focus = beautiful.tabbar_bg_focus or beautiful.bg_focus or "#000000" | ||
local fg_focus = beautiful.tabbar_fg_focus or beautiful.fg_focus or "#ffffff" | ||
local bg_focus_inactive = beautiful.tabbar_bg_focus_inactive or bg_focus | ||
local fg_focus_inactive = beautiful.tabbar_fg_focus_inactive or fg_focus | ||
local bg_normal_inactive = beautiful.tabbar_bg_normal_inactive or bg_normal | ||
local fg_normal_inactive = beautiful.tabbar_fg_normal_inactive or fg_normal | ||
local font = beautiful.tabbar_font or beautiful.font or "Fira Code 13" | ||
local size = beautiful.tabbar_size or 20 | ||
local position = beautiful.tabbar_position or "top" | ||
|
||
local function create(c, focused_bool, buttons, inactive_bool) | ||
local flexlist = wibox.layout.flex.horizontal() | ||
local title_temp = c.name or c.class or "-" | ||
title_temp = gears.string.xml_escape(title_temp) | ||
local bg_temp = inactive_bool and bg_normal_inactive or bg_normal | ||
local fg_temp = inactive_bool and fg_normal_inactive or fg_normal | ||
if focused_bool then | ||
bg_temp = inactive_bool and bg_focus_inactive or bg_focus | ||
fg_temp = inactive_bool and fg_focus_inactive or fg_focus | ||
end | ||
local text_temp = wibox.widget.textbox() | ||
text_temp.align = "center" | ||
text_temp.valign = "center" | ||
text_temp.font = font | ||
text_temp.markup = "<span foreground='" | ||
.. fg_temp | ||
.. "'>" | ||
.. title_temp | ||
.. "</span>" | ||
c:connect_signal("property::name", function(_) | ||
local title_temp = c.name or c.class or "-" | ||
text_temp.markup = "<span foreground='" | ||
.. fg_temp | ||
.. "'>" | ||
.. title_temp | ||
.. "</span>" | ||
end) | ||
local wid_temp = wibox.widget({ | ||
text_temp, | ||
buttons = buttons, | ||
bg = bg_temp, | ||
widget = wibox.container.background(), | ||
}) | ||
return wid_temp | ||
end | ||
|
||
return { | ||
layout = wibox.layout.flex.horizontal, | ||
create = create, | ||
position = position, | ||
size = size, | ||
bg_normal = bg_normal, | ||
bg_focus = bg_focus, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,274 @@ | ||
-- Based on: <https://github.com/BlingCorp/bling/blob/master/widget/tabbar/modern.lua> | ||
local awful = require("awful") | ||
local gears = require("gears") | ||
local wibox = require("wibox") | ||
local beautiful = require("beautiful") | ||
local xresources = require("beautiful.xresources") | ||
local dpi = xresources.apply_dpi | ||
local helpers = require(tostring(...):match(".*bling") .. ".helpers") | ||
|
||
local bg_normal = beautiful.tabbar_bg_normal or beautiful.bg_normal or "#ffffff" | ||
local fg_normal = beautiful.tabbar_fg_normal or beautiful.fg_normal or "#000000" | ||
local bg_focus = beautiful.tabbar_bg_focus or beautiful.bg_focus or "#000000" | ||
local fg_focus = beautiful.tabbar_fg_focus or beautiful.fg_focus or "#ffffff" | ||
local bg_focus_inactive = beautiful.tabbar_bg_focus_inactive or bg_focus | ||
local fg_focus_inactive = beautiful.tabbar_fg_focus_inactive or fg_focus | ||
local bg_normal_inactive = beautiful.tabbar_bg_normal_inactive or bg_normal | ||
local fg_normal_inactive = beautiful.tabbar_fg_normal_inactive or fg_normal | ||
local font = beautiful.tabbar_font or beautiful.font or "Fira Code 13" | ||
local size = beautiful.tabbar_size or dpi(40) | ||
local border_radius = beautiful.mstab_border_radius | ||
or beautiful.border_radius | ||
or 6 | ||
local position = beautiful.tabbar_position or "top" | ||
local close_color = beautiful.tabbar_color_close | ||
or beautiful.xcolor1 | ||
or "#C38F8F" | ||
local min_color = beautiful.tabbar_color_min or beautiful.xcolor3 or "#a0a0a0" | ||
local float_color = beautiful.tabbar_color_float | ||
or beautiful.xcolor5 | ||
or "#8DB8CD" | ||
|
||
-- Helper to create buttons | ||
local function create_title_button(c, color_focus, color_unfocus) | ||
local tb_color = wibox.widget({ | ||
wibox.widget.textbox(), | ||
forced_width = dpi(8), | ||
forced_height = dpi(8), | ||
bg = color_focus, | ||
shape = gears.shape.circle, | ||
widget = wibox.container.background, | ||
}) | ||
|
||
local tb = wibox.widget({ | ||
tb_color, | ||
width = dpi(25), | ||
height = dpi(25), | ||
strategy = "min", | ||
layout = wibox.layout.constraint, | ||
}) | ||
|
||
local function update() | ||
if client.focus == c then | ||
tb_color.bg = color_focus | ||
else | ||
tb_color.bg = color_unfocus | ||
end | ||
end | ||
update() | ||
c:connect_signal("focus", update) | ||
c:connect_signal("unfocus", update) | ||
|
||
tb:connect_signal("mouse::enter", function() | ||
tb_color.bg = color_focus .. "70" | ||
end) | ||
|
||
tb:connect_signal("mouse::leave", function() | ||
tb_color.bg = color_focus | ||
end) | ||
|
||
tb.visible = true | ||
return tb | ||
end | ||
|
||
local function create(c, focused_bool, buttons, inactive_bool) | ||
-- local flexlist = wibox.layout.flex.horizontal() | ||
local title_temp = c.name or c.class or "-" | ||
title_temp = gears.string.xml_escape(title_temp) | ||
local bg_temp = inactive_bool and bg_normal_inactive or bg_normal | ||
local fg_temp = inactive_bool and fg_normal_inactive or fg_normal | ||
if focused_bool then | ||
bg_temp = inactive_bool and bg_focus_inactive or bg_focus | ||
fg_temp = inactive_bool and fg_focus_inactive or fg_focus | ||
end | ||
local text_temp = wibox.widget.textbox() | ||
text_temp.align = "center" | ||
text_temp.valign = "center" | ||
text_temp.font = font | ||
text_temp.markup = "<span foreground='" | ||
.. fg_temp | ||
.. "'>" | ||
.. title_temp | ||
.. "</span>" | ||
c:connect_signal("property::name", function(_) | ||
local title_temp = c.name or c.class or "-" | ||
text_temp.markup = "<span foreground='" | ||
.. fg_temp | ||
.. "'>" | ||
.. title_temp | ||
.. "</span>" | ||
end) | ||
|
||
local tab_content = wibox.widget({ | ||
{ | ||
awful.widget.clienticon(c), | ||
top = dpi(6), | ||
left = dpi(15), | ||
bottom = dpi(6), | ||
widget = wibox.container.margin, | ||
}, | ||
text_temp, | ||
nill, | ||
expand = "inside", | ||
layout = wibox.layout.align.horizontal, | ||
}) | ||
|
||
local close = create_title_button(c, close_color, bg_normal) | ||
close:connect_signal("button::press", function() | ||
c:kill() | ||
end) | ||
|
||
local floating = create_title_button(c, float_color, bg_normal) | ||
floating:connect_signal("button::press", function() | ||
c.floating = not c.floating | ||
end) | ||
|
||
local min = create_title_button(c, min_color, bg_normal) | ||
min:connect_signal("button::press", function() | ||
c.minimized = true | ||
end) | ||
|
||
if focused_bool then | ||
tab_content = wibox.widget({ | ||
{ | ||
awful.widget.clienticon(c), | ||
top = dpi(6), | ||
left = dpi(15), | ||
right = dpi(10), | ||
bottom = dpi(6), | ||
widget = wibox.container.margin, | ||
}, | ||
text_temp, | ||
{ | ||
{ min, floating, close, layout = wibox.layout.fixed.horizontal }, | ||
top = dpi(10), | ||
right = dpi(10), | ||
bottom = dpi(10), | ||
widget = wibox.container.margin, | ||
}, | ||
expand = "inside", | ||
layout = wibox.layout.align.horizontal, | ||
}) | ||
end | ||
|
||
local main_content = nil | ||
local left_shape = nil | ||
local right_shape = nil | ||
|
||
if position == "top" then | ||
main_content = wibox.widget({ | ||
{ | ||
tab_content, | ||
bg = bg_temp, | ||
shape = helpers.shape.prrect( | ||
border_radius, | ||
true, | ||
true, | ||
false, | ||
false | ||
), | ||
widget = wibox.container.background, | ||
}, | ||
top = dpi(8), | ||
widget = wibox.container.margin, | ||
}) | ||
|
||
left_shape = helpers.shape.prrect( | ||
border_radius, | ||
false, | ||
false, | ||
true, | ||
false | ||
) | ||
right_shape = helpers.shape.prrect( | ||
border_radius, | ||
false, | ||
false, | ||
false, | ||
true | ||
) | ||
else | ||
main_content = wibox.widget({ | ||
{ | ||
tab_content, | ||
bg = bg_temp, | ||
shape = helpers.shape.prrect( | ||
border_radius, | ||
false, | ||
false, | ||
true, | ||
true | ||
), | ||
widget = wibox.container.background, | ||
}, | ||
bottom = dpi(8), | ||
widget = wibox.container.margin, | ||
}) | ||
|
||
left_shape = helpers.shape.prrect( | ||
border_radius, | ||
false, | ||
true, | ||
false, | ||
false | ||
) | ||
right_shape = helpers.shape.prrect( | ||
border_radius, | ||
true, | ||
false, | ||
false, | ||
false | ||
) | ||
end | ||
|
||
local wid_temp = wibox.widget({ | ||
buttons = buttons, | ||
{ | ||
{ | ||
{ | ||
wibox.widget.textbox(), | ||
bg = bg_normal, | ||
shape = left_shape, | ||
widget = wibox.container.background, | ||
}, | ||
bg = bg_temp, | ||
shape = gears.rectangle, | ||
widget = wibox.container.background, | ||
}, | ||
width = border_radius + (border_radius / 2), | ||
height = size, | ||
strategy = "exact", | ||
layout = wibox.layout.constraint, | ||
}, | ||
main_content, | ||
{ | ||
{ | ||
{ | ||
wibox.widget.textbox(), | ||
bg = bg_normal, | ||
shape = right_shape, | ||
widget = wibox.container.background, | ||
}, | ||
bg = bg_temp, | ||
shape = gears.rectangle, | ||
widget = wibox.container.background, | ||
}, | ||
width = border_radius + (border_radius / 2), | ||
height = size, | ||
strategy = "exact", | ||
layout = wibox.layout.constraint, | ||
}, | ||
|
||
layout = wibox.layout.align.horizontal, | ||
}) | ||
return wid_temp | ||
end | ||
|
||
return { | ||
layout = wibox.layout.flex.horizontal, | ||
create = create, | ||
position = position, | ||
size = size, | ||
bg_normal = bg_normal, | ||
bg_focus = bg_focus, | ||
} |
Oops, something went wrong.