commit 6665dfd31c62e1f3b321dd5190fa1f9cd7a3ad2a
parent fed9bf64350ba7a9d6abee5360069e42b470bc47
Author: Pollux <pollux@pollux.codes>
Date: Tue, 27 May 2025 16:49:01 -0500
rmpc: new rmpc look
Signed-off-by: Pollux <pollux@pollux.codes>
Diffstat:
2 files changed, 237 insertions(+), 188 deletions(-)
diff --git a/.config/rmpc/config.ron b/.config/rmpc/config.ron
@@ -6,6 +6,7 @@
password: None,
theme: Some("custom"),
cache_dir: None,
+ lyrics_dir: Some("~/music"),
on_song_change: None,
volume_step: 5,
max_fps: 30,
@@ -110,32 +111,25 @@
(
name: "Queue",
pane: Split(
- direction: Vertical,
+ direction: Horizontal,
panes: [
(
- size: "100%",
+ size: "40%",
pane: Split(
- direction: Horizontal,
+ direction: Vertical,
panes: [
(
- size: "30%",
+ size: "70%",
pane: Pane(AlbumArt),
),
(
- size: "70%",
- pane: Pane(Queue),
+ size: "30%",
+ borders: "TOP",
+ pane: Pane(Lyrics),
),
- ],
- ),
- ),
- (
- size: "2",
- borders: "TOP",
- pane: Split(
- direction: Horizontal,
- panes: [
- (
- size: "100%",
+ (
+ size: "2",
+ borders: "TOP",
pane: Pane(Property(
content: [
(kind: Property(Song(Artist))),
@@ -143,62 +137,79 @@
(kind: Property(Song(Title))),
],
)),
- ),
- (
- size: "10",
- pane: Pane(Property(
- content: [
- (kind: Text("[")),
- (kind: Property(Status(RepeatV2(
- on_label: "r",
- off_label: "",
- )))),
- (kind: Property(Status(RandomV2(
- on_label: "z",
- off_label: "",
- )))),
- (kind: Property(Status(SingleV2(
- oneshot_label: "S",
- on_label: "s",
- off_label: "",
- )))),
- (kind: Property(Status(ConsumeV2(
- oneshot_label: "C",
- on_label: "c",
- off_label: "",
- )))),
- (kind: Text("]")),
- ],
- align: Right,
- )),
- ),
+ ),
+ (
+ size: "1",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(ProgressBar)
+ ),
+ (
+ size: "6",
+ pane: Pane(Property(
+ content: [
+ (kind: Text("[")),
+ (kind: Property(Status(RepeatV2(
+ on_label: "r",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(RandomV2(
+ on_label: "z",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(SingleV2(
+ oneshot_label: "S",
+ on_label: "s",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(ConsumeV2(
+ oneshot_label: "C",
+ on_label: "c",
+ off_label: " ",
+ )))),
+ (kind: Text("]")),
+ ],
+ align: Right,
+ )),
+ ),
+ ],
+ )
+ ),
],
),
),
(
- size: "1",
- pane: Pane(ProgressBar),
- ),
- ],
+ size: "60%",
+ pane: Pane(Queue),
+ )
+ ]
),
),
(
name: "Search",
pane: Split(
- direction: Vertical,
+ direction: Horizontal,
panes: [
(
- size: "100%",
- pane: Pane(Search),
- ),
- (
- size: "2",
- borders: "TOP",
+ size: "40%",
pane: Split(
- direction: Horizontal,
+ direction: Vertical,
panes: [
(
- size: "100%",
+ size: "70%",
+ pane: Pane(AlbumArt),
+ ),
+ (
+ size: "30%",
+ borders: "TOP",
+ pane: Pane(Lyrics),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
pane: Pane(Property(
content: [
(kind: Property(Song(Artist))),
@@ -206,62 +217,79 @@
(kind: Property(Song(Title))),
],
)),
- ),
- (
- size: "10",
- pane: Pane(Property(
- content: [
- (kind: Text("[")),
- (kind: Property(Status(RepeatV2(
- on_label: "r",
- off_label: "",
- )))),
- (kind: Property(Status(RandomV2(
- on_label: "z",
- off_label: "",
- )))),
- (kind: Property(Status(SingleV2(
- oneshot_label: "S",
- on_label: "s",
- off_label: "",
- )))),
- (kind: Property(Status(ConsumeV2(
- oneshot_label: "C",
- on_label: "c",
- off_label: "",
- )))),
- (kind: Text("]")),
- ],
- align: Right,
- )),
- ),
+ ),
+ (
+ size: "1",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(ProgressBar)
+ ),
+ (
+ size: "6",
+ pane: Pane(Property(
+ content: [
+ (kind: Text("[")),
+ (kind: Property(Status(RepeatV2(
+ on_label: "r",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(RandomV2(
+ on_label: "z",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(SingleV2(
+ oneshot_label: "S",
+ on_label: "s",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(ConsumeV2(
+ oneshot_label: "C",
+ on_label: "c",
+ off_label: " ",
+ )))),
+ (kind: Text("]")),
+ ],
+ align: Right,
+ )),
+ ),
+ ],
+ )
+ ),
],
),
),
(
- size: "1",
- pane: Pane(ProgressBar),
- ),
- ],
+ size: "60%",
+ pane: Pane(Search),
+ )
+ ]
),
),
(
name: "Browse",
pane: Split(
- direction: Vertical,
+ direction: Horizontal,
panes: [
(
- size: "100%",
- pane: Pane(Directories),
- ),
- (
- size: "2",
- borders: "TOP",
+ size: "40%",
pane: Split(
- direction: Horizontal,
+ direction: Vertical,
panes: [
(
- size: "100%",
+ size: "70%",
+ pane: Pane(AlbumArt),
+ ),
+ (
+ size: "30%",
+ borders: "TOP",
+ pane: Pane(Lyrics),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
pane: Pane(Property(
content: [
(kind: Property(Song(Artist))),
@@ -269,62 +297,79 @@
(kind: Property(Song(Title))),
],
)),
- ),
- (
- size: "10",
- pane: Pane(Property(
- content: [
- (kind: Text("[")),
- (kind: Property(Status(RepeatV2(
- on_label: "r",
- off_label: "",
- )))),
- (kind: Property(Status(RandomV2(
- on_label: "z",
- off_label: "",
- )))),
- (kind: Property(Status(SingleV2(
- oneshot_label: "S",
- on_label: "s",
- off_label: "",
- )))),
- (kind: Property(Status(ConsumeV2(
- oneshot_label: "C",
- on_label: "c",
- off_label: "",
- )))),
- (kind: Text("]")),
- ],
- align: Right,
- )),
- ),
+ ),
+ (
+ size: "1",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(ProgressBar)
+ ),
+ (
+ size: "6",
+ pane: Pane(Property(
+ content: [
+ (kind: Text("[")),
+ (kind: Property(Status(RepeatV2(
+ on_label: "r",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(RandomV2(
+ on_label: "z",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(SingleV2(
+ oneshot_label: "S",
+ on_label: "s",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(ConsumeV2(
+ oneshot_label: "C",
+ on_label: "c",
+ off_label: " ",
+ )))),
+ (kind: Text("]")),
+ ],
+ align: Right,
+ )),
+ ),
+ ],
+ )
+ ),
],
),
),
(
- size: "1",
- pane: Pane(ProgressBar),
- ),
- ],
+ size: "60%",
+ pane: Pane(Directories),
+ )
+ ]
),
),
(
name: "Playlists",
pane: Split(
- direction: Vertical,
+ direction: Horizontal,
panes: [
(
- size: "100%",
- pane: Pane(Playlists),
- ),
- (
- size: "2",
- borders: "TOP",
+ size: "40%",
pane: Split(
- direction: Horizontal,
+ direction: Vertical,
panes: [
(
- size: "100%",
+ size: "70%",
+ pane: Pane(AlbumArt),
+ ),
+ (
+ size: "30%",
+ borders: "TOP",
+ pane: Pane(Lyrics),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
pane: Pane(Property(
content: [
(kind: Property(Song(Artist))),
@@ -332,43 +377,55 @@
(kind: Property(Song(Title))),
],
)),
- ),
- (
- size: "10",
- pane: Pane(Property(
- content: [
- (kind: Text("[")),
- (kind: Property(Status(RepeatV2(
- on_label: "r",
- off_label: "",
- )))),
- (kind: Property(Status(RandomV2(
- on_label: "z",
- off_label: "",
- )))),
- (kind: Property(Status(SingleV2(
- oneshot_label: "S",
- on_label: "s",
- off_label: "",
- )))),
- (kind: Property(Status(ConsumeV2(
- oneshot_label: "C",
- on_label: "c",
- off_label: "",
- )))),
- (kind: Text("!")),
- ],
- align: Right,
- )),
- ),
+ ),
+ (
+ size: "1",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(ProgressBar)
+ ),
+ (
+ size: "6",
+ pane: Pane(Property(
+ content: [
+ (kind: Text("[")),
+ (kind: Property(Status(RepeatV2(
+ on_label: "r",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(RandomV2(
+ on_label: "z",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(SingleV2(
+ oneshot_label: "S",
+ on_label: "s",
+ off_label: " ",
+ )))),
+ (kind: Property(Status(ConsumeV2(
+ oneshot_label: "C",
+ on_label: "c",
+ off_label: " ",
+ )))),
+ (kind: Text("]")),
+ ],
+ align: Right,
+ )),
+ ),
+ ],
+ )
+ ),
],
),
),
(
- size: "1",
- pane: Pane(ProgressBar),
- ),
- ],
+ size: "60%",
+ pane: Pane(Playlists),
+ )
+ ]
),
),
],
diff --git a/.config/rmpc/themes/custom.ron b/.config/rmpc/themes/custom.ron
@@ -3,9 +3,9 @@
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
- show_song_table_header: false,
+ show_song_table_header: true,
draw_borders: true,
- browser_column_widths: [20, 38, 42],
+ browser_column_widths: [0, 60, 40],
modal_backdrop: false,
preview_label_style: (),
preview_metadata_group_style: (modifiers: "Bold"),
@@ -32,28 +32,20 @@
default: (kind: Text("Unknown")),
style: (fg: "blue")
),
- width: "50%",
+ width: "30%",
alignment: Right,
),
(
- prop: (kind: Text("-")),
- width: "1",
- ),
- (
prop: (kind: Property(Title),
default: (kind: Text("Unknown"))
),
- width: "50%",
+ width: "70%",
),
],
layout: Split(
direction: Vertical,
panes: [
(
- pane: Pane(Tabs),
- size: "3",
- ),
- (
pane: Pane(TabContent),
size: "100%",
),