diff options
| author | Caroline Larimore <caroline@larimo.re> | 2024-09-17 21:37:33 -0700 |
|---|---|---|
| committer | Caroline Larimore <caroline@larimo.re> | 2024-09-17 21:37:33 -0700 |
| commit | 6bc6e37af5b21b0356d0e008f83eee5378fc8b43 (patch) | |
| tree | 0fd4e2fdf9ddd1937b3a02de57d11e4ff1ade6fc /roles/home/desktop/eww/panels/music.yuck | |
| parent | 485dc4b641f6b07def1bfa28c7c3ab83e764f29e (diff) | |
home: desktop: update eww widgets
Diffstat (limited to 'roles/home/desktop/eww/panels/music.yuck')
| -rw-r--r-- | roles/home/desktop/eww/panels/music.yuck | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/roles/home/desktop/eww/panels/music.yuck b/roles/home/desktop/eww/panels/music.yuck new file mode 100644 index 0000000..757efd5 --- /dev/null +++ b/roles/home/desktop/eww/panels/music.yuck @@ -0,0 +1,102 @@ + +(defwidget music [] + (box :class "panel music" + :orientation "h" + :spacing 8 + :space-evenly false + :height {128 + 16 + 4} + + (image + :path song-cover + :image-width 128 + :image-height 128 + ) + + (box :class "right" + :orientation "v" + :spacing 0 + :space-evenly true + :hexpand true + + (box :class "info" + :orientation "v" + :space-evenly false + :valign "center" + + (tooltip {song.title} + (label :class "song-title" + :text {song.title} + :halign "start" + :truncate true + ) + ) + (tooltip {song.album} + (label :class "song-album" + :text {song.album} + :halign "start" + :truncate true + ) + ) + (tooltip {song.artist} + (label :class "song-artist" + :text {song.artist} + :halign "start" + :truncate true + ) + ) + ) + + (box + :valign "end" + :space-evenly false + + (box :class "control" + :space-evenly false + + (button :class "icon" + :width 36 + :onclick `playerctl --player=cmus,firefox,%any previous` + + "" + ) + (button :class "icon" + :onclick `playerctl --player=cmus,firefox,%any play-pause` + :width 36 + + { song.status == "Playing" ? "" : "" } + ) + (button :class "icon" + :width 36 + :onclick `playerctl --player=cmus,firefox,%any next` + + "" + ) + ) + + (scale + :hexpand true + :value {song-position} + :max {song.length/1000/1000} + ;:onchange `/home/c/seek.sh {}` + ) + + {formattime(round(song-position, 0), "%M:%S") + " / " + formattime(round(song.length/1000/1000, 0), "%M:%S")} + + (box :width 16) + ) + ) + ) +) + +(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}}", "length": "{{mpris:length}}"}'` +) + +(defpoll song-position + :interval "0.2s" + `playerctl --player=cmus,firefox,%any position` +)
\ No newline at end of file |