mirror of
https://codeberg.org/tmayoff/.dotfiles.git
synced 2025-12-06 08:48:34 -05:00
added sketchybar config
This commit is contained in:
parent
87bb07f015
commit
95ebd7af03
38 changed files with 2329 additions and 0 deletions
118
dot_config/sketchybar/items/media.lua
Normal file
118
dot_config/sketchybar/items/media.lua
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
local icons = require("icons")
|
||||
local colors = require("colors")
|
||||
|
||||
local whitelist = { ["Spotify"] = true,
|
||||
["Music"] = true };
|
||||
|
||||
local media_cover = sbar.add("item", {
|
||||
position = "right",
|
||||
background = {
|
||||
image = {
|
||||
string = "media.artwork",
|
||||
scale = 0.85,
|
||||
},
|
||||
color = colors.transparent,
|
||||
},
|
||||
label = { drawing = false },
|
||||
icon = { drawing = false },
|
||||
drawing = false,
|
||||
updates = true,
|
||||
popup = {
|
||||
align = "center",
|
||||
horizontal = true,
|
||||
}
|
||||
})
|
||||
|
||||
local media_artist = sbar.add("item", {
|
||||
position = "right",
|
||||
drawing = false,
|
||||
padding_left = 3,
|
||||
padding_right = 0,
|
||||
width = 0,
|
||||
icon = { drawing = false },
|
||||
label = {
|
||||
width = 0,
|
||||
font = { size = 9 },
|
||||
color = colors.with_alpha(colors.white, 0.6),
|
||||
max_chars = 18,
|
||||
y_offset = 6,
|
||||
},
|
||||
})
|
||||
|
||||
local media_title = sbar.add("item", {
|
||||
position = "right",
|
||||
drawing = false,
|
||||
padding_left = 3,
|
||||
padding_right = 0,
|
||||
icon = { drawing = false },
|
||||
label = {
|
||||
font = { size = 11 },
|
||||
width = 0,
|
||||
max_chars = 16,
|
||||
y_offset = -5,
|
||||
},
|
||||
})
|
||||
|
||||
sbar.add("item", {
|
||||
position = "popup." .. media_cover.name,
|
||||
icon = { string = icons.media.back },
|
||||
label = { drawing = false },
|
||||
click_script = "nowplaying-cli previous",
|
||||
})
|
||||
sbar.add("item", {
|
||||
position = "popup." .. media_cover.name,
|
||||
icon = { string = icons.media.play_pause },
|
||||
label = { drawing = false },
|
||||
click_script = "nowplaying-cli togglePlayPause",
|
||||
})
|
||||
sbar.add("item", {
|
||||
position = "popup." .. media_cover.name,
|
||||
icon = { string = icons.media.forward },
|
||||
label = { drawing = false },
|
||||
click_script = "nowplaying-cli next",
|
||||
})
|
||||
|
||||
local interrupt = 0
|
||||
local function animate_detail(detail)
|
||||
if (not detail) then interrupt = interrupt - 1 end
|
||||
if interrupt > 0 and (not detail) then return end
|
||||
|
||||
sbar.animate("tanh", 30, function()
|
||||
media_artist:set({ label = { width = detail and "dynamic" or 0 } })
|
||||
media_title:set({ label = { width = detail and "dynamic" or 0 } })
|
||||
end)
|
||||
end
|
||||
|
||||
media_cover:subscribe("media_change", function(env)
|
||||
if whitelist[env.INFO.app] then
|
||||
local drawing = (env.INFO.state == "playing")
|
||||
media_artist:set({ drawing = drawing, label = env.INFO.artist, })
|
||||
media_title:set({ drawing = drawing, label = env.INFO.title, })
|
||||
media_cover:set({ drawing = drawing })
|
||||
|
||||
if drawing then
|
||||
animate_detail(true)
|
||||
interrupt = interrupt + 1
|
||||
sbar.delay(5, animate_detail)
|
||||
else
|
||||
media_cover:set({ popup = { drawing = false } })
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
media_cover:subscribe("mouse.entered", function(env)
|
||||
interrupt = interrupt + 1
|
||||
animate_detail(true)
|
||||
end)
|
||||
|
||||
media_cover:subscribe("mouse.exited", function(env)
|
||||
animate_detail(false)
|
||||
end)
|
||||
|
||||
media_cover:subscribe("mouse.clicked", function(env)
|
||||
media_cover:set({ popup = { drawing = "toggle" }})
|
||||
end)
|
||||
|
||||
media_title:subscribe("mouse.exited.global", function(env)
|
||||
media_cover:set({ popup = { drawing = false }})
|
||||
end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue