add new calendar widget with ics file support, fix some bugs and added some game rules so steam games fullscreen isn't as annoying
This commit is contained in:
@@ -95,9 +95,6 @@ tag.connect_signal(
|
||||
---@param icon_override_hover string | nil the hover effect color
|
||||
function Hover_signal(widget, bg_override, fg_override, border_override, icon_override, icon_override_hover)
|
||||
local old_wibox, old_cursor, old_bg, old_fg, old_border
|
||||
|
||||
local r, g, b
|
||||
|
||||
widget.bg = widget.bg or "#000000"
|
||||
widget.fg = widget.fg or "#000000"
|
||||
widget.border_color = widget.border_color or "#000000"
|
||||
@@ -107,62 +104,72 @@ function Hover_signal(widget, bg_override, fg_override, border_override, icon_ov
|
||||
widget.icon = widget:get_children_by_id("icon")[1]
|
||||
end
|
||||
|
||||
--[[ local r_timed_bg = rubato.timed { duration = 0.5 }
|
||||
local g_timed_bg = rubato.timed { duration = 0.5 }
|
||||
local b_timed_bg = rubato.timed { duration = 0.5 }
|
||||
local _, rb, gb, bb = widget.bg:get_rgba()
|
||||
local _, rf, gf, bf = widget.fg:get_rgba()
|
||||
local rbo, gbo, bbo = color.utils.hex_to_rgba(widget.border_color)
|
||||
|
||||
local r_timed_bg = rubato.timed { duration = 0.3, pos = math.floor(rb * 255) }
|
||||
local g_timed_bg = rubato.timed { duration = 0.3, pos = math.floor(gb * 255) }
|
||||
local b_timed_bg = rubato.timed { duration = 0.3, pos = math.floor(bb * 255) }
|
||||
|
||||
local r_timed_fg = rubato.timed { duration = 0.3, pos = math.floor(rf * 255) }
|
||||
local g_timed_fg = rubato.timed { duration = 0.3, pos = math.floor(gf * 255) }
|
||||
local b_timed_fg = rubato.timed { duration = 0.3, pos = math.floor(bf * 255) }
|
||||
|
||||
local r_timed_border = rubato.timed { duration = 0.3, pos = math.floor(rbo) }
|
||||
local g_timed_border = rubato.timed { duration = 0.3, pos = math.floor(gbo) }
|
||||
local b_timed_border = rubato.timed { duration = 0.3, pos = math.floor(bbo) }
|
||||
|
||||
local function update_bg()
|
||||
widget:set_bg("#" .. color.utils.rgba_to_hex { r_timed_bg.pos, g_timed_bg.pos, b_timed_bg.pos })
|
||||
end
|
||||
|
||||
local function update_fg()
|
||||
widget:set_fg("#" .. color.utils.rgba_to_hex { r_timed_fg.pos, g_timed_fg.pos, b_timed_fg.pos })
|
||||
end
|
||||
|
||||
local function update_border()
|
||||
widget:set_border_color("#" .. color.utils.rgba_to_hex { r_timed_border.pos, g_timed_border.pos, b_timed_border.pos })
|
||||
end
|
||||
|
||||
r_timed_bg:subscribe(update_bg)
|
||||
g_timed_bg:subscribe(update_bg)
|
||||
b_timed_bg:subscribe(update_bg)
|
||||
|
||||
r_timed_fg:subscribe(update_fg)
|
||||
g_timed_fg:subscribe(update_fg)
|
||||
b_timed_fg:subscribe(update_fg)
|
||||
|
||||
r_timed_border:subscribe(update_border)
|
||||
g_timed_border:subscribe(update_border)
|
||||
b_timed_border:subscribe(update_border)
|
||||
|
||||
local function set_bg(newbg)
|
||||
r_timed_bg.target, g_timed_bg.target, b_timed_bg.target = color.utils.hex_to_rgba(newbg)
|
||||
end ]]
|
||||
|
||||
local mouse_enter = function()
|
||||
_, r, g, b, _ = widget.bg:get_rgba()
|
||||
old_bg = RGB_to_hex(r, g, b)
|
||||
if bg_override or old_bg then
|
||||
widget:set_bg(bg_override or old_bg .. "dd")
|
||||
end
|
||||
_, r, g, b, _ = widget.fg:get_rgba()
|
||||
old_fg = RGB_to_hex(r, g, b)
|
||||
if fg_override or old_fg then
|
||||
widget:set_fg(fg_override or old_fg .. "dd")
|
||||
end
|
||||
old_border = widget.border_color
|
||||
if border_override or old_border then
|
||||
widget.border_color = border_override or old_border .. "dd"
|
||||
end
|
||||
if icon and widget.icon and icon_override and icon_override_hover then
|
||||
widget.icon.image = gears.color.recolor_image(icon, icon_override_hover)
|
||||
end
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = "hand1"
|
||||
end
|
||||
r_timed_bg.target, g_timed_bg.target, b_timed_bg.target = newbg[1], newbg[2], newbg[3]
|
||||
end
|
||||
|
||||
--[[ local button_press = function()
|
||||
if old_bg or bg_override then
|
||||
if bg_override then
|
||||
bg_override = bg_override .. "bb"
|
||||
end
|
||||
widget.bg = bg_override or old_bg .. "bb"
|
||||
end
|
||||
if fg_override or old_fg then
|
||||
if fg_override then
|
||||
fg_override = fg_override .. "bb"
|
||||
end
|
||||
widget.fg = fg_override or old_fg .. "bb"
|
||||
end
|
||||
local function set_fg(newfg)
|
||||
r_timed_fg.target, g_timed_fg.target, b_timed_fg.target = newfg[1], newfg[2], newfg[3]
|
||||
end
|
||||
|
||||
local function set_border(newborder)
|
||||
r_timed_border.target, g_timed_border.target, b_timed_border.target = newborder[1], newborder[2], newborder[3]
|
||||
end
|
||||
|
||||
local _, rbg, gbg, bbg, abg = widget.bg:get_rgba()
|
||||
old_bg = RGB_to_hex(rbg, gbg, bbg)
|
||||
local _, rfg, gfg, bfg, afg = widget.fg:get_rgba()
|
||||
old_fg = RGB_to_hex(rfg, gfg, bfg)
|
||||
old_border = widget.border_color
|
||||
local rborder, gborder, bborder = color.utils.hex_to_rgba(old_border)
|
||||
|
||||
local function match_hex(hex1, hex2)
|
||||
local r1, g1, b1 = color.utils.hex_to_rgba(hex1)
|
||||
local r2, g2, b2 = color.utils.hex_to_rgba(hex2)
|
||||
return math.abs(r1 - r2) <= 100 and math.abs(g1 - g2) <= 100 and math.abs(b1 - b2) <= 100
|
||||
end
|
||||
|
||||
--[[
|
||||
local button_release = function()
|
||||
if old_bg or bg_override then
|
||||
if bg_override then
|
||||
@@ -179,14 +186,18 @@ function Hover_signal(widget, bg_override, fg_override, border_override, icon_ov
|
||||
end ]]
|
||||
|
||||
local mouse_leave = function()
|
||||
|
||||
if old_bg then
|
||||
widget:set_bg(old_bg)
|
||||
local r, g, b = color.utils.hex_to_rgba(old_bg)
|
||||
set_bg({ r, g, b })
|
||||
end
|
||||
if old_fg then
|
||||
widget:set_fg(old_fg)
|
||||
local r, g, b = color.utils.hex_to_rgba(old_fg)
|
||||
set_fg({ r, g, b })
|
||||
end
|
||||
if old_border then
|
||||
widget.border_color = old_border
|
||||
local r, g, b = color.utils.hex_to_rgba(old_border)
|
||||
set_border({ r, g, b })
|
||||
end
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
@@ -197,8 +208,76 @@ function Hover_signal(widget, bg_override, fg_override, border_override, icon_ov
|
||||
end
|
||||
end
|
||||
|
||||
local mouse_enter = function()
|
||||
_, rbg, gbg, bbg, abg = widget.bg:get_rgba()
|
||||
if not match_hex(RGB_to_hex(rbg, gbg, bbg), old_bg) then
|
||||
old_bg = RGB_to_hex(rbg, gbg, bbg)
|
||||
set_bg({ rbg * 0.9 * 255, gbg * 0.9 * 255, bbg * 0.9 * 255 })
|
||||
end
|
||||
if old_bg then
|
||||
if bg_override then
|
||||
rbg, gbg, bbg = color.utils.hex_to_rgba(bg_override)
|
||||
set_bg({ rbg, gbg, bbg })
|
||||
else
|
||||
set_bg({ rbg * 0.9 * 255, gbg * 0.9 * 255, bbg * 0.9 * 255 })
|
||||
end
|
||||
end
|
||||
|
||||
_, rfg, gfg, bfg, afg = widget.fg:get_rgba()
|
||||
if not match_hex(RGB_to_hex(rfg, gfg, bfg), old_fg) then
|
||||
old_fg = RGB_to_hex(rfg, gfg, bfg)
|
||||
set_fg({ rfg * 0.9 * 255, gfg * 0.9 * 255, bfg * 0.9 * 255 })
|
||||
end
|
||||
if fg_override or old_fg then
|
||||
if fg_override then
|
||||
rfg, gfg, bfg = color.utils.hex_to_rgba(fg_override)
|
||||
set_fg({ rfg, gfg, bfg })
|
||||
else
|
||||
set_fg({ rfg * 0.9 * 255, gfg * 0.9 * 255, bfg * 0.9 * 255 })
|
||||
end
|
||||
end
|
||||
|
||||
if not match_hex(old_border, widget.border_color) then
|
||||
old_border = widget.border_color
|
||||
rborder, gborder, bborder = color.utils.hex_to_rgba(old_border)
|
||||
end
|
||||
if border_override or old_border then
|
||||
if border_override then
|
||||
rborder, gborder, bborder = color.utils.hex_to_rgba(border_override)
|
||||
set_border({ rborder, gborder, bborder })
|
||||
else
|
||||
set_border({ rborder * 0.9, gborder * 0.9, bborder * 0.9 })
|
||||
end
|
||||
end
|
||||
if icon and widget.icon and icon_override and icon_override_hover then
|
||||
widget.icon.image = gears.color.recolor_image(icon, icon_override_hover)
|
||||
end
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = "hand1"
|
||||
end
|
||||
--widget:connect_signal("mouse::leave", mouse_leave)
|
||||
end
|
||||
|
||||
local button_press = function()
|
||||
--[[ if old_bg or bg_override then
|
||||
if bg_override then
|
||||
bg_override = bg_override .. "bb"
|
||||
end
|
||||
widget.bg = bg_override or old_bg .. "bb"
|
||||
end
|
||||
if fg_override or old_fg then
|
||||
if fg_override then
|
||||
fg_override = fg_override .. "bb"
|
||||
end
|
||||
widget.fg = fg_override or old_fg .. "bb"
|
||||
end ]]
|
||||
--widget:disconnect_signal("mouse::leave", mouse_leave)
|
||||
end
|
||||
|
||||
widget:connect_signal("mouse::enter", mouse_enter)
|
||||
--widget:connect_signal("button::press", button_press)
|
||||
widget:connect_signal("button::press", button_press)
|
||||
--widget:connect_signal("button::release", button_release)
|
||||
widget:connect_signal("mouse::leave", mouse_leave)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user