1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
(defwindow music [pos gaps]
:monitor "<primary>"
: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}}"}'`
)
|