aboutsummaryrefslogtreecommitdiff
path: root/roles/home/desktop/eww/windows/music.yuck
blob: 91ee05fc0be08752d224f1d4f6ff92d6693406bb (plain)
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}}"}'`
)