From 12d107e3b4404483ad546b64649f1908340a0846 Mon Sep 17 00:00:00 2001 From: Michel Fedde Date: Wed, 22 Oct 2025 22:47:23 +0200 Subject: [PATCH] Fixes media control --- .config/eww/widgets/media/media.yuck | 18 +++++++++++------ .config/eww/widgets/media/style.scss | 9 +++++---- .config/scripts/playerctl-metadata-json.sh | 23 ++++++++++++++++++---- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/.config/eww/widgets/media/media.yuck b/.config/eww/widgets/media/media.yuck index 8d439a0..8a0012c 100644 --- a/.config/eww/widgets/media/media.yuck +++ b/.config/eww/widgets/media/media.yuck @@ -15,8 +15,14 @@ ) ) -(defwidget media-label [text ?class] - (label :text {text} :xalign "0" :class {class}) +(defwidget media-label [text ?header ?icon] + (box + :visible {strlength(text) > 1} + :space-evenly false + :spacing 10 + (image :icon {icon}) + (label :text {text} :xalign "0" :class {header ? "header" : ""}) + ) ) (defwidget media-texts [] @@ -26,9 +32,9 @@ :valign "center" :halign "start" :space-evenly false - (media-label :class "header" :text {media-info["xesam:title"]}) - (media-label :text {media-info["xesam:artist"]}) - (media-label :text {media-info["xesam:album"]}) + (media-label :header true :text {media-info["xesam:title"]} :icon "library-music") + (media-label :text {media-info["xesam:artist"]} :icon "user-identity") + (media-label :text {media-info["xesam:album"] ?: ""} :icon "cd") ) ) @@ -89,7 +95,7 @@ :geometry (geometry :x "10px" :y "50px" - :width "512px" + :width "0px" :height "10%" :anchor "top right") :stacking "fg" diff --git a/.config/eww/widgets/media/style.scss b/.config/eww/widgets/media/style.scss index 1372ac9..8ca11a4 100644 --- a/.config/eww/widgets/media/style.scss +++ b/.config/eww/widgets/media/style.scss @@ -11,11 +11,12 @@ } label { + font-size: 1.2rem; + } + + .header { font-size: 1.5rem; - &.header { - font-size: 2rem; - font-weight: bolder; - } + font-weight: bolder; } progressbar { diff --git a/.config/scripts/playerctl-metadata-json.sh b/.config/scripts/playerctl-metadata-json.sh index 1ef982d..45e2bee 100755 --- a/.config/scripts/playerctl-metadata-json.sh +++ b/.config/scripts/playerctl-metadata-json.sh @@ -1,13 +1,28 @@ #!/bin/bash -formatReturn() { - targetArtPath="/tmp/.eww.media-art.$(tr -dc 'a-zA-Z0-9' /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' }