commit 36870c3d944f3c7218f99d17849040572b580faf
parent b981914c790684b4a3599a860f2c1a7e0306f05b
Author: Pollux <pollux@pollux.codes>
Date: Mon, 26 May 2025 21:07:07 -0500
rmpc: add rmpc configuration
Signed-off-by: Pollux <pollux@pollux.codes>
Diffstat:
2 files changed, 452 insertions(+), 0 deletions(-)
diff --git a/.config/rmpc/config.ron b/.config/rmpc/config.ron
@@ -0,0 +1,376 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ address: "127.0.0.1:6600",
+ password: None,
+ theme: Some("custom"),
+ cache_dir: None,
+ on_song_change: None,
+ volume_step: 5,
+ max_fps: 30,
+ scrolloff: 0,
+ wrap_navigation: false,
+ enable_mouse: true,
+ enable_config_hot_reload: true,
+ status_update_interval_ms: 1000,
+ select_current_song_on_change: false,
+ browser_song_sort: [Disc, Track, Artist, Title],
+ directories_sort: SortFormat(group_directories_first: true, reverse: false),
+ album_art: (
+ method: Kitty,
+ max_size_px: (width: 1200, height: 1200),
+ disabled_protocols: ["http://", "https://"],
+ vertical_align: Center,
+ horizontal_align: Center,
+ ),
+ keybinds: (
+ global: {
+ ":": CommandMode,
+ ",": VolumeDown,
+ "s": Stop,
+ ".": VolumeUp,
+ "<Tab>": NextTab,
+ "<S-Tab>": PreviousTab,
+ "q": Quit,
+ ">": NextTrack,
+ "p": TogglePause,
+ "<": PreviousTrack,
+ "f": SeekForward,
+ "r": ToggleRepeat,
+ "z": ToggleRandom,
+ "c": ToggleConsume,
+ "y": ToggleSingle,
+ "b": SeekBack,
+ "~": ShowHelp,
+ "u": Update,
+ "U": Rescan,
+ "I": ShowCurrentSongInfo,
+ "O": ShowOutputs,
+ "P": ShowDecoders,
+ "R": AddRandom,
+ },
+ navigation: {
+ "k": Up,
+ "j": Down,
+ "h": Left,
+ "l": Right,
+ "<Up>": Up,
+ "<Down>": Down,
+ "<Left>": Left,
+ "<Right>": Right,
+ "<C-k>": PaneUp,
+ "<C-j>": PaneDown,
+ "<C-h>": PaneLeft,
+ "<C-l>": PaneRight,
+ "<C-u>": UpHalf,
+ "N": PreviousResult,
+ "a": Add,
+ "A": AddAll,
+ "n": NextResult,
+ "g": Top,
+ "<Space>": Select,
+ "<C-Space>": InvertSelection,
+ "G": Bottom,
+ "<CR>": Confirm,
+ "i": FocusInput,
+ "J": MoveDown,
+ "<C-d>": DownHalf,
+ "/": EnterSearch,
+ "<C-c>": Close,
+ "<Esc>": Close,
+ "K": MoveUp,
+ "D": Delete,
+ },
+ queue: {
+ "D": DeleteAll,
+ "<CR>": Play,
+ "<C-s>": Save,
+ "a": AddToPlaylist,
+ "d": Delete,
+ "i": ShowInfo,
+ "C": JumpToCurrent,
+ },
+ ),
+ search: (
+ case_sensitive: false,
+ mode: Regex,
+ tags: [
+ (value: "any", label: "Any Tag"),
+ (value: "title", label: "Title"),
+ (value: "artist", label: "Artist"),
+ (value: "album", label: "Album"),
+ ],
+ ),
+ artists: (
+ album_display_mode: SplitByDate,
+ album_sort_by: Date,
+ ),
+ tabs: [
+ (
+ name: "Queue",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "30%",
+ pane: Pane(AlbumArt),
+ ),
+ (
+ size: "70%",
+ pane: Pane(Queue),
+ ),
+ ],
+ ),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Artist))),
+ (kind: Text(" - ")),
+ (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: Pane(ProgressBar),
+ ),
+ ],
+ ),
+ ),
+ (
+ name: "Search",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Search),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Artist))),
+ (kind: Text(" - ")),
+ (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: Pane(ProgressBar),
+ ),
+ ],
+ ),
+ ),
+ (
+ name: "Browse",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Directories),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Artist))),
+ (kind: Text(" - ")),
+ (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: Pane(ProgressBar),
+ ),
+ ],
+ ),
+ ),
+ (
+ name: "Playlists",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Playlists),
+ ),
+ (
+ size: "2",
+ borders: "TOP",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Artist))),
+ (kind: Text(" - ")),
+ (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: Pane(ProgressBar),
+ ),
+ ],
+ ),
+ ),
+ ],
+)
+
diff --git a/.config/rmpc/themes/custom.ron b/.config/rmpc/themes/custom.ron
@@ -0,0 +1,76 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ default_album_art_path: None,
+ show_song_table_header: false,
+ draw_borders: true,
+ browser_column_widths: [20, 38, 42],
+ modal_backdrop: false,
+ preview_label_style: (),
+ preview_metadata_group_style: (modifiers: "Bold"),
+ tab_bar: (
+ enabled: true,
+ active_style: (fg: "black", bg: "white"),
+ inactive_style: (),
+ ),
+ current_item_style: (bg: "blue"),
+ highlighted_item_style: (fg: "green", modifiers: "Bold"),
+ borders_style: (),
+ highlight_border_style: (),
+ symbols: (song: "\u{1f39c}", dir: "\u{1f5bf}", marker: "*", ellipsis: "..."),
+ progress_bar: (
+ symbols: ["━", "●", "━"],
+ track_style: (fg: "black"),
+ elapsed_style: (fg: "white"),
+ thumb_style: (fg: "blue"),
+ ),
+ scrollbar: (symbols: ["", "", "", ""]),
+ song_table_format: [
+ (
+ prop: (kind: Property(Artist),
+ default: (kind: Text("Unknown")),
+ style: (fg: "blue")
+ ),
+ width: "50%",
+ alignment: Right,
+ ),
+ (
+ prop: (kind: Text("-")),
+ width: "1",
+ ),
+ (
+ prop: (kind: Property(Title),
+ default: (kind: Text("Unknown"))
+ ),
+ width: "50%",
+ ),
+ ],
+ layout: Split(
+ direction: Vertical,
+ panes: [
+ (
+ pane: Pane(Tabs),
+ size: "3",
+ ),
+ (
+ pane: Pane(TabContent),
+ size: "100%",
+ ),
+ ],
+ ),
+ header: (
+ rows: [],
+ ),
+ browser_song_format: [
+ (
+ kind: Group([
+ (kind: Property(Artist)),
+ (kind: Text(" - ")),
+ (kind: Property(Title)),
+ ]),
+ default: (kind: Property(Filename))
+ ),
+ ],
+)
+