Skip to content

Commit

Permalink
Update docs and add more options
Browse files Browse the repository at this point in the history
  • Loading branch information
javacafe01 committed Apr 8, 2021
1 parent 97c0177 commit 9289ec4
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 44 deletions.
19 changes: 10 additions & 9 deletions docs/theme.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,14 @@ theme.tabbar_color_min = "#fbdf90" -- chnges the color of the minimize
theme.tabbar_color_float = "#ccaced" -- chnges the color of the float button

-- tag preview widget
theme.tag_preview_widget_border_radius = 0 -- Border radius of the widget (With AA)
theme.tag_preview_client_border_radius = 0 -- Border radius of each client in the widget (With AA)
theme.tag_preview_client_opacity = 0.5 -- Opacity of each client
theme.tag_preview_client_bg = "#000000" -- The bg color of each client
theme.tag_preview_client_border_color = "#ffffff" -- The border color of each client
theme.tag_preview_client_border_width = 3 -- The border width of each client
theme.tag_preview_widget_bg = "#000000" -- The bg color of the widget
theme.tag_preview_widget_border_color = "#ffffff" -- The border color of the widget
theme.tag_preview_widget_border_width = 3 -- The border width of the widget
theme.tag_preview_widget_border_radius = 0 -- Border radius of the widget (With AA)
theme.tag_preview_client_border_radius = 0 -- Border radius of each client in the widget (With AA)
theme.tag_preview_client_opacity = 0.5 -- Opacity of each client
theme.tag_preview_client_bg = "#000000" -- The bg color of each client
theme.tag_preview_client_border_color = "#ffffff" -- The border color of each client
theme.tag_preview_client_border_width = 3 -- The border width of each client
theme.tag_preview_widget_bg = "#000000" -- The bg color of the widget
theme.tag_preview_widget_border_color = "#ffffff" -- The border color of the widget
theme.tag_preview_widget_border_width = 3 -- The border width of the widget
theme.tag_preview_widget_margin = 0 -- The margin of the widget
```
13 changes: 8 additions & 5 deletions docs/widgets/tag_preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ bling.widget.tag_preview.enable {
show_client_content = false, -- Whether or not to show the client content
x = 10, -- The x-coord of the popup
y = 10, -- The y-coord of the popup
scale = 0.25 -- The scale of the previews compared to the screen
}
scale = 0.25, -- The scale of the previews compared to the screen
honor_padding = false, -- Honor padding when creating widget size
honor_workarea = false -- Honor work area when creating widget size
}
```

Here are the signals available:
Expand All @@ -25,7 +27,7 @@ Here are the signals available:
-- bling::tag_preview::update -- first line is the signal
-- t (tag) -- indented lines are function parameters
-- bling::tag_preview::visibility
-- s (screen)
-- t (tag)
-- v (boolean)
```

Expand Down Expand Up @@ -96,7 +98,7 @@ s.mytaglist = awful.widget.taglist {
-- BLING: Update the widget with the new tag
awesome.emit_signal("bling::tag_preview::update", c3)
-- BLING: Show the widget
awesome.emit_signal("bling::tag_preview::visibility", mouse.screen, true)
awesome.emit_signal("bling::tag_preview::visibility", c3, true)
end

if self.bg ~= '#ff0000' then
Expand All @@ -108,7 +110,7 @@ s.mytaglist = awful.widget.taglist {
self:connect_signal('mouse::leave', function()

-- BLING: Turn the widget off
awesome.emit_signal("bling::tag_preview::visibility", mouse.screen, false)
awesome.emit_signal("bling::tag_preview::visibility", c3, false)

if self.has_backup then self.bg = self.backup end
end)
Expand All @@ -132,6 +134,7 @@ theme.tag_preview_client_border_width = 3 -- The border width of each
theme.tag_preview_widget_bg = "#000000" -- The bg color of the widget
theme.tag_preview_widget_border_color = "#ffffff" -- The border color of the widget
theme.tag_preview_widget_border_width = 3 -- The border width of the widget
theme.tag_preview_widget_margin = 0 -- The margin of the widget
```

NOTE: I recommend to only use the widget border radius theme variable when not using shadows with a compositor, as anti-aliased rounding with the outer widgets made with AwesomeWM rely on the actual bg being transparent. If you want rounding with shadows on the widget, use a compositor like [jonaburg's fork](https://github.com/jonaburg/picom).
1 change: 1 addition & 0 deletions theme-var-template.lua
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,5 @@ theme.tag_preview_client_border_width = 3 -- The border width of each
theme.tag_preview_widget_bg = "#000000" -- The bg color of the widget
theme.tag_preview_widget_border_color = "#ffffff" -- The border color of the widget
theme.tag_preview_widget_border_width = 3 -- The border width of the widget
theme.tag_preview_widget_margin = 0 -- The margin of the widget
-- LuaFormatter on
71 changes: 41 additions & 30 deletions widget/tag_preview.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
-- bling::tag_preview::update -- first line is the signal
-- t (tag) -- indented lines are function parameters
-- bling::tag_preview::visibility
-- s (screen)
-- t (tag)
-- v (boolean)
--
local awful = require("awful")
Expand All @@ -15,14 +15,14 @@ local dpi = beautiful.xresources.apply_dpi
local cairo = require("lgi").cairo

local function draw_widget(tag_preview_box, t, tag_preview_image, scale,
prev_screen_width, prev_screen_height, screen_radius,
client_radius, client_opacity, client_bg,
client_border_color, client_border_width, widget_bg,
widget_border_color, widget_border_width)
screen_radius, client_radius, client_opacity,
client_bg, client_border_color, client_border_width,
widget_bg, widget_border_color, widget_border_width,
geo, margin)

local client_list = wibox.layout.manual()
client_list.forced_height = prev_screen_height
client_list.forced_width = prev_screen_width
client_list.forced_height = geo.height
client_list.forced_width = geo.width
local tag_screen = t.screen
for i, c in ipairs(t:clients()) do

Expand Down Expand Up @@ -86,8 +86,8 @@ local function draw_widget(tag_preview_box, t, tag_preview_image, scale,
}

client_box.point = {
x = math.floor((c.x - tag_screen.geometry.x) * scale),
y = math.floor((c.y - tag_screen.geometry.y) * scale)
x = math.floor((c.x - geo.x) * scale),
y = math.floor((c.y - geo.y) * scale)
}

client_list:add(client_box)
Expand All @@ -98,15 +98,21 @@ local function draw_widget(tag_preview_box, t, tag_preview_image, scale,
{
{
{
client_list,
forced_height = prev_screen_height,
forced_width = prev_screen_width,
bg = widget_bg,
widget = wibox.container.background
{
client_list,
forced_height = geo.height,
forced_width = geo.width,
bg = widget_bg,
widget = wibox.container.background
},
layout = wibox.layout.align.horizontal
},
layout = wibox.layout.align.horizontal
layout = wibox.layout.align.vertical

},
layout = wibox.layout.align.vertical
margins = margin,
widget = wibox.container.margin

},
bg = widget_bg,
border_width = widget_border_width,
Expand All @@ -120,6 +126,7 @@ local enable = function(opts)
local tag_preview_image = false
local widget_x = dpi(20)
local widget_y = dpi(20)
local margin = beautiful.tag_preview_widget_margin or dpi(0)
local screen_radius = beautiful.tag_preview_widget_border_radius or dpi(0)
local client_radius = beautiful.tag_preview_client_border_radius or dpi(0)
local client_opacity = beautiful.tag_preview_client_opacity or 0.5
Expand All @@ -135,25 +142,21 @@ local enable = function(opts)
dpi(3)

local scale = 0.2
local work_area = false
local padding = false

if opts then
tag_preview_image = opts.show_client_content or tag_preview_image
widget_x = opts.x or widget_x
widget_y = opts.y or widget_y
scale = opts.scale or scale
work_area = opts.honor_workarea or work_area
padding = opts.honor_padding or padding
end

local prev_screen_width = math.floor(
awful.screen.focused().workarea.width * scale)
local prev_screen_height = math.floor(
awful.screen.focused().workarea.height *
scale)

local tag_preview_box = wibox({
visible = false,
ontop = true,
width = prev_screen_width,
height = prev_screen_height,
input_passthrough = true,
bg = "#00000000"
})
Expand All @@ -165,16 +168,24 @@ local enable = function(opts)
end)

awesome.connect_signal("bling::tag_preview::update", function(t)
draw_widget(tag_preview_box, t, tag_preview_image, scale,
prev_screen_width, prev_screen_height, screen_radius,

local geo = t.screen:get_bounding_geometry{
honor_padding = padding,
honor_workarea = work_area
}

tag_preview_box.width = scale * geo.width + margin * 2
tag_preview_box.height = scale * geo.height + margin * 2

draw_widget(tag_preview_box, t, tag_preview_image, scale, screen_radius,
client_radius, client_opacity, client_bg,
client_border_color, client_border_width, widget_bg,
widget_border_color, widget_border_width)
widget_border_color, widget_border_width, geo, margin)
end)

awesome.connect_signal("bling::tag_preview::visibility", function(s, v)
tag_preview_box.x = s.geometry.x + widget_x
tag_preview_box.y = s.geometry.y + widget_y
awesome.connect_signal("bling::tag_preview::visibility", function(t, v)
tag_preview_box.x = t.screen.geometry.x + widget_x
tag_preview_box.y = t.screen.geometry.y + widget_y
tag_preview_box.visible = v
end)
end
Expand Down

0 comments on commit 9289ec4

Please sign in to comment.