Files
mac-dots/sketchybar/items/message.lua
xenomxrph 8d16baf6f1 initalize
2025-07-16 15:00:51 +02:00

56 lines
1.2 KiB
Lua

local constants = require("constants")
local settings = require("config.settings")
local message = sbar.add("item", constants.items.MESSAGE, {
width = 0,
position = "center",
popup = { align = "center" },
label = {
padding_left = 0,
padding_right = 0,
},
background = {
padding_left = 0,
padding_right = 0,
}
})
local messagePopup = sbar.add("item", {
position = "popup." .. message.name,
width = "dynamic",
label = {
padding_right = settings.dimens.padding.label,
padding_left = settings.dimens.padding.label,
},
icon = {
padding_left = 0,
padding_right = 0,
},
})
local function hideMessage()
message:set({ popup = { drawing = false } })
end
local function showMessage(content, hold)
hideMessage()
message:set({ popup = { drawing = true } })
messagePopup:set({ label = { string = content } })
if hold == false then
sbar.delay(5, function()
if hold then return end
hideMessage()
end)
end
end
message:subscribe(constants.events.SEND_MESSAGE, function(env)
local content = env.MESSAGE
local hold = env.HOLD ~= nil and env.HOLD == "true" or false
showMessage(content, hold)
end)
message:subscribe(constants.events.HIDE_MESSAGE, hideMessage)