(defwindow music [pos gaps] :monitor "" :geometry (geometry :x { pos == "right" ? gaps == "true" ? "-8px" : "2px" : "0px" } :y { gaps == "true" ? "-8px" : "2px" } :height {128 + 16} :anchor { pos == "right" ? "bottom right" : "bottom center" } ) :stacking "fg" :windowtype "dock" :wm-ignore true (box :class "main" :orientation "h" :spacing 8 :space-evenly false :height {128 + 16} (image :path song-cover :image-width 128 :image-height 128 ) (box :class "left" :orientation "v" :spacing 0 :space-evenly true :hexpand true (box :class "info" :orientation "v" :space-evenly false :valign "center" (label :class "song-title" :text {song.title} :halign "start" ) (label :class "song-album" :text {song.album} :halign "start" ) (label :class "song-artist" :text {song.artist} :halign "start" ) ) (box :class "control" :space-evenly false :halign "center" :valign "end" (button :onclick `playerctl --player=cmus,firefox,%any previous` "󰒮" ) (button :onclick `playerctl --player=cmus,firefox,%any play-pause` { song.status == "Playing" ? "󰏤" : "󰐊" } ) (button :onclick `playerctl --player=cmus,firefox,%any next` "󰒭" ) ; Offset controls to center of screen (box :width {128 + 8}) ) ) ) ) (deflisten song-cover `playerctl --player=cmus,firefox,%any -F metadata title | get-album-art` ) (deflisten song `playerctl --player=cmus,firefox,%any -F metadata --format='{"title": "{{title}}", "album": "{{album}}", "artist": "{{artist}}", "status": "{{status}}"}'` )