(defvar media_reveal_controls false) (deflisten media :initial "{}" `python3 ./scripts/mediaplayer.py`) (defwidget media [] (eventbox :onhover "eww update media_reveal_controls=true" :onhoverlost "eww update media_reveal_controls=false" (box :class "mediaplayer ${ media_reveal_controls ? 'revealed' : '' }" :space-evenly false :visible { media.title == "null" && media.artist == "null" ? false : "${ active_window.class =~ media.player || active_window.title =~ media.title ? false : true }" } (label :class "media-title" :text "${media.title}") (label :class "media-artist" :text "${media.artist}") (revealer :class "media-controls-revealer" :reveal { media_reveal_controls ? true : false } :transition "slideright" :duration "180ms" (box (button :class "previous" :onclick "playerctl previous --player=${media.player}" "󰒮") (button :class "toggle play-pause" :onclick "playerctl play-pause --player=${media.player}" { media.status == "playing" ? "󰏤" : "󰐊" }) (button :class "next" :onclick "playerctl next --player=${media.player}" "󰒭") ) ) ) ) )