Fixes media control

This commit is contained in:
Michel Fedde 2025-10-22 22:47:23 +02:00
parent 6e303a2ff8
commit 12d107e3b4
3 changed files with 36 additions and 14 deletions

View file

@ -15,8 +15,14 @@
) )
) )
(defwidget media-label [text ?class] (defwidget media-label [text ?header ?icon]
(label :text {text} :xalign "0" :class {class}) (box
:visible {strlength(text) > 1}
:space-evenly false
:spacing 10
(image :icon {icon})
(label :text {text} :xalign "0" :class {header ? "header" : ""})
)
) )
(defwidget media-texts [] (defwidget media-texts []
@ -26,9 +32,9 @@
:valign "center" :valign "center"
:halign "start" :halign "start"
:space-evenly false :space-evenly false
(media-label :class "header" :text {media-info["xesam:title"]}) (media-label :header true :text {media-info["xesam:title"]} :icon "library-music")
(media-label :text {media-info["xesam:artist"]}) (media-label :text {media-info["xesam:artist"]} :icon "user-identity")
(media-label :text {media-info["xesam:album"]}) (media-label :text {media-info["xesam:album"] ?: ""} :icon "cd")
) )
) )
@ -89,7 +95,7 @@
:geometry (geometry :geometry (geometry
:x "10px" :x "10px"
:y "50px" :y "50px"
:width "512px" :width "0px"
:height "10%" :height "10%"
:anchor "top right") :anchor "top right")
:stacking "fg" :stacking "fg"

View file

@ -11,11 +11,12 @@
} }
label { label {
font-size: 1.2rem;
}
.header {
font-size: 1.5rem; font-size: 1.5rem;
&.header { font-weight: bolder;
font-size: 2rem;
font-weight: bolder;
}
} }
progressbar { progressbar {

View file

@ -1,13 +1,28 @@
#!/bin/bash #!/bin/bash
formatReturn() { currentArtUrl=""
targetArtPath="/tmp/.eww.media-art.$(tr -dc 'a-zA-Z0-9' </dev/urandom | head -c 10)" currentArtPath=""
updateArtPath() {
local url="$1"
if [[ "$url" == "$currentArtUrl" ]]; then
return 0
fi
currentArtUrl="$url"
currentArtPath="/tmp/.eww.media-art.$(tr -dc 'a-zA-Z0-9' </dev/urandom | head -c 10)"
rm /tmp/.eww.media-art.* rm /tmp/.eww.media-art.*
curl $(playerctl metadata mpris:artUrl) -o "$targetArtPath" >/dev/null curl "$url" -o "$currentArtPath" >/dev/null
}
playerctl metadata | jq -R -s -c -r --arg artPath "$targetArtPath" 'split("\n") | map(match("(\\w+) {1}([\\w:]+) {3,}(.+)") | {(.captures[1].string): .captures[2].string}) | add | .["mpris:artUrl"] = $artPath' formatReturn() {
updateArtPath $(playerctl metadata mpris:artUrl)
playerctl metadata | jq -R -s -c -r --arg artPath "$currentArtPath" 'split("\n") | map(match("(\\w+) {1}([\\w:]+) {3,}(.+)") | {(.captures[1].string): .captures[2].string}) | add | .["mpris:artUrl"] = $artPath'
} }