aboutsummaryrefslogtreecommitdiff
path: root/roles/home/desktop/eww/panels/music.yuck
diff options
context:
space:
mode:
Diffstat (limited to 'roles/home/desktop/eww/panels/music.yuck')
-rw-r--r--roles/home/desktop/eww/panels/music.yuck102
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