aboutsummaryrefslogtreecommitdiff
path: root/config/rmpc/themes/rbdr.ron
blob: e38c492ce74d9d300c9f80f5dfa85cda53571ae4 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
    default_album_art_path: None,
    format_tag_separator: " | ",
    browser_column_widths: [20, 38, 42],
    background_color: "#ffffff",
    text_color: "black",
    header_background_color: "#ffffff",
    modal_background_color: None,
    modal_backdrop: false,
    preview_label_style: (fg: "yellow"),
    preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
    highlighted_item_style: (fg: "blue", modifiers: "Bold"),
    current_item_style: (fg: "#ffffff", bg: "blue", modifiers: "Bold"),
    borders_style: (fg: "white"),
    border_symbol_sets: {
    "rbdr": (
        top_left: "a",
        top_right: "b",
        bottom_left: "c",
        bottom_right: "d",
        vertical_left: "|",
        vertical_right: "|",
        horizontal_top: "─",
        horizontal_bottom: "-",
        ),
    },
    highlight_border_style: (fg: "blue"),
    symbols: (
        song: "♬",
        dir: " ",
        playlist: "",
        marker: "✳",
        ellipsis: "…",
        song_style: None,
        dir_style: None,
        playlist_style: None,
    ),
    level_styles: (
        info: (fg: "blue", bg: "black"),
        warn: (fg: "yellow", bg: "black"),
        error: (fg: "red", bg: "black"),
        debug: (fg: "light_green", bg: "black"),
        trace: (fg: "magenta", bg: "black"),
    ),
    progress_bar: (
        symbols: ["◖", "█", "◗", " ", "◗"],
        track_style: None,
        elapsed_style: (fg: "blue"),
        thumb_style: (fg: "blue"),
        use_track_when_empty: true,
    ),
    scrollbar: (
        symbols: ["│", "█", "▲", "▼"],
        track_style: (),
        ends_style: (),
        thumb_style: (fg: "blue"),
    ),
    tab_bar: (
        active_style: (fg: "#ffffff", bg: "blue", modifiers: "Bold"),
        inactive_style: (),
    ),
    lyrics: (
        timestamp: false
    ),
    browser_song_format: [
        (
            kind: Group([
                (kind: Property(Track)),
                (kind: Text(" ")),
            ])
        ),
        (
            kind: Group([
                (kind: Property(Artist)),
                (kind: Text(" - ")),
                (kind: Property(Title)),
            ]),
            default: (kind: Property(Filename))
        ),
    ],
    song_table_format: [
        (
            prop: (kind: Property(Artist),
                default: (kind: Text("Unknown"))
            ),
            label_prop: (kind: Text("Artist")),
            width: "20%",
        ),
        (
            prop: (kind: Property(Title),
                default: (kind: Text("Unknown"))
            ),
            label_prop: (kind: Text("Title")),
            width: "35%",
        ),
        (
            prop: (kind: Property(Album), style: (fg: "cyan"),
                default: (kind: Text("Unknown Album"), style: (fg: "white"))
            ),
            label_prop: (kind: Text("Album")),
            width: "30%",
        ),
        (
            prop: (kind: Property(Duration), style: (fg: "dark_gray"),
                default: (kind: Text("-"))
            ),
            label_prop: (kind: Text("Duration")),
            width: "15%",
            alignment: Right,
        ),
    ],
    layout: Split(
        direction: Vertical,
        panes: [
            (
                size: "4",
                pane: Split(
                    direction: Horizontal,
                    panes: [
                        (
                            size: "35",
                            borders: "LEFT | TOP | BOTTOM",
                            border_symbols: Inherited(parent: Rounded, bottom_left: "├"),
                            pane: Component("header_left")
                        ),
                        (
                            size: "100%",
                            borders: "ALL",
                            border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"),
                            pane: Component("header_center")
                        ),
                        (
                            size: "35",
                            borders: "RIGHT | TOP | BOTTOM",
                            border_symbols: Inherited(parent: Rounded, bottom_right: "┤"),
                            pane: Component("header_right")
                        ),
                    ]
                )
            ),
            (
                pane: Pane(Tabs),
                borders: "RIGHT | LEFT | BOTTOM",
                border_symbols: Rounded,
                size: "2",
            ),
            (
                pane: Pane(TabContent),
                size: "100%",
            ),
            (
                size: "3",
                borders: "TOP",
                border_symbols: Library("rbdr"),
                pane: Split(
                    direction: Horizontal,
                    panes: [
                        (
                            size: "4",
                            borders: "NONE",
                            pane: Component("input_mode")
                        ),
                        (
                            size: "100%",
                            borders: "NONE",
                            pane: Component("progress_bar"),
                        ),
                        (
                            size: "20",
                            borders: "NONE",
                            pane: Component("queue_status"),
                        ),
                    ]
                ),
            ),
        ],
    ),
    components: {
        "state": Pane(Property(
            content: [
                (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
                (kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")),
                (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")),
            ], align: Left,
        )),
        "title": Pane(Property(
            content: [
                (kind: Property(Song(Title)), style: (modifiers: "Bold"),
                    default: (kind: Text("No Song"), style: (modifiers: "Bold"))),
            ], align: Center, scroll_speed: 1
        )),
        "volume": Split(
            direction: Horizontal,
            panes: [
                (size: "1", pane: Pane(Property(content: [(kind: Text(""))]))),
                (size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))),
                (size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))),
                (size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))),
            ]
        ),
        "elapsed_and_bitrate": Pane(Property(
            content: [
                (kind: Property(Status(Elapsed))), 
                (kind: Text(" / ")), 
                (kind: Property(Status(Duration))), 
                (kind: Group([
                    (kind: Text(" (")), 
                    (kind: Property(Status(Bitrate))), 
                    (kind: Text(" kbps)")),
                ])),
            ],
            align: Left,
        )),
        "artist_and_album": Pane(Property(
            content: [
                (kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
                    default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))),
                (kind: Text(" - ")),
                (kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))),
            ], align: Center, scroll_speed: 1
        )),
        "states": Split(
            direction: Horizontal,
            panes: [
                (
                    size: "1",
                    pane: Pane(Empty())
                ),
                (
                    size: "100%",
                    pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)]))
                ),
                (
                    size: "6",
                    pane: Pane(Property(content: [
                        (kind: Text("["), style: (fg: "blue", modifiers: "Bold")),
                        (kind: Property(Status(RepeatV2(
                            on_label: "z",
                            off_label: "z",
                            on_style: (fg: "yellow", modifiers: "Bold"),
                            off_style: (fg: "blue", modifiers: "Dim"),
                        )))),
                        (kind: Property(Status(RandomV2(
                            on_label: "x",
                            off_label: "x",
                            on_style: (fg: "yellow", modifiers: "Bold"),
                            off_style: (fg: "blue", modifiers: "Dim"),
                        )))),
                        (kind: Property(Status(ConsumeV2(
                            on_label: "c",
                            off_label: "c",
                            oneshot_label: "c",
                            on_style: (fg: "yellow", modifiers: "Bold"),
                            off_style: (fg: "blue", modifiers: "Dim"),
                            oneshot_style: (fg: "red", modifiers: "Dim"),
                        )))),
                        (kind: Property(Status(SingleV2(
                            on_label: "v",
                            off_label: "v",
                            oneshot_label: "v",
                            on_style: (fg: "yellow", modifiers: "Bold"),
                            off_style: (fg: "blue", modifiers: "Dim"),
                            oneshot_style: (fg: "red", modifiers: "Bold"),
                        )))),
                        (kind: Text("]"), style: (fg: "blue", modifiers: "Bold")),
                        ],
                        align: Right
                    ))
                ),
            ]
        ),
        "input_mode": Pane(Property(
            content: [
                (kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [
                    (match: "Normal", replace: (kind: Text(" N "), style: (fg: "blue", bg: "#ffffff"))),
                    (match: "Insert", replace: (kind: Text(" I "), style: (fg: "green", bg: "#ffffff"))),
                ])))
            ], align: Center
        )),
        "header_left": Split(
            direction: Vertical,
            panes: [
                (size: "1", pane: Component("state")),
                (size: "1", pane: Component("elapsed_and_bitrate")),
            ]
        ),
        "header_center": Split(
            direction: Vertical,
            panes: [
                (size: "1", pane: Component("title")),
                (size: "1", pane: Component("artist_and_album")),
            ]
        ),
        "header_right": Split(
            direction: Vertical,
            panes: [
                (size: "1", pane: Component("volume")),
                (size: "1", pane: Component("states")),
            ]
        ),
        "progress_bar": Split(
            direction: Horizontal,
            panes: [
                (
                    size: "1",
                    pane: Pane(Empty())
                ),
                (
                    size: "100%",
                    pane: Pane(ProgressBar)
                ),
                (
                    size: "1",
                    pane: Pane(Empty())
                ),
            ]
        ),
        "queue_status": Pane(Property(
            content: [
              (kind: Text("♬ ")),
              (kind: Property(Status(QueueLength()))),
              (kind: Text(" 󰥔 ")),
              (kind: Property(Status(QueueTimeTotal()))),
            ],
        )),
    },
)