aboutsummaryrefslogtreecommitdiff
path: root/.config/rmpc
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-11-14 23:43:38 +0300
committerawy <awy@awy.one>2025-11-14 23:43:38 +0300
commitc7a88a07b9287db9c129914483f6b3ae1ab5404c (patch)
tree73c227c5e8519eb9135f46984e4fc067b316ed1b /.config/rmpc
downloadmangoslice-c7a88a07b9287db9c129914483f6b3ae1ab5404c.tar.gz
init
Diffstat (limited to '.config/rmpc')
-rw-r--r--.config/rmpc/config.ron201
-rwxr-xr-x.config/rmpc/scripts/statusbar2
-rw-r--r--.config/rmpc/themes/def.ron193
3 files changed, 396 insertions, 0 deletions
diff --git a/.config/rmpc/config.ron b/.config/rmpc/config.ron
new file mode 100644
index 0000000..58b2f98
--- /dev/null
+++ b/.config/rmpc/config.ron
@@ -0,0 +1,201 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ address: "127.0.0.1:6600",
+ volume_step: 5,
+ scrolloff: 2,
+ max_fps: 60,
+ wrap_navigation: true,
+ theme: "def",
+ lyrics_dir: "/mnt/ssd/music",
+ on_song_change: ["~/.config/rmpc/scripts/statusbar"],
+ on_resize: None,
+ status_update_interval_ms: 1000,
+ enable_mouse: true,
+ enable_config_hot_reload: true,
+ album_art: (
+ method: Auto,
+ max_size_px: (width: 0, height: 0),
+ vertical_align: Top,
+ horizontal_align: Center,
+ ),
+ keybinds: (
+ global: {
+ ":": CommandMode,
+ ",": VolumeDown,
+ "s": Stop,
+ ".": VolumeUp,
+ "<Tab>": NextTab,
+ "<S-Tab>": PreviousTab,
+ "1": SwitchToTab("Queue"),
+ // "2": SwitchToTab("Directories"),
+ "2": SwitchToTab("Artists"),
+ "3": SwitchToTab("Albums"),
+ "4": SwitchToTab("Genres"),
+ "5": SwitchToTab("Playlists"),
+ "6": SwitchToTab("Search"),
+ "q": Quit,
+ ">": NextTrack,
+ "p": TogglePause,
+ "<": PreviousTrack,
+ "f": SeekForward,
+ "z": ToggleRepeat,
+ "x": ToggleRandom,
+ "c": ToggleConsume,
+ "v": ToggleSingle,
+ "b": SeekBack,
+ "~": ShowHelp,
+ "I": ShowCurrentSongInfo,
+ "O": ShowOutputs,
+ "P": ShowDecoders,
+ },
+ 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,
+ "r": Rename,
+ "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: Contains,
+ tags: [
+ (value: "any", label: "Any Tag"),
+ (value: "artist", label: "Artist"),
+ (value: "album", label: "Album"),
+ (value: "albumartist", label: "Album Artist"),
+ (value: "title", label: "Title"),
+ ],
+ ),
+ tabs: [
+ (
+ name: "Queue",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ borders: "NONE",
+ pane: Split(
+ borders: "NONE",
+ direction: Horizontal,
+ panes: [
+ (
+ size: "70%",
+ borders: "ALL",
+ pane: Pane(Queue),
+ ),
+ (
+ size: "30%",
+ borders: "ALL",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "75%",
+ borders: "NONE",
+ pane: Pane(AlbumArt),
+ ),
+ (
+ size: "35%",
+ borders: "NONE",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "100%",
+ pane: Pane(Lyrics),
+ ),
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ ],
+ ),
+ ),
+ // (
+ // name: "Directories",
+ // pane: Split(
+ // direction: Horizontal,
+ // panes: [(size: "100%", borders: "ALL", pane: Pane(Directories))],
+ // ),
+ // ),
+ (
+ name: "Artists",
+ pane: Split(
+ direction: Horizontal,
+ panes: [(size: "100%", borders: "ALL", pane: Pane(Artists))],
+ ),
+ ),
+ (
+ name: "Albums",
+ pane: Split(
+ direction: Horizontal,
+ panes: [(size: "100%", borders: "ALL", pane: Pane(Albums))],
+ ),
+ ),
+ (
+ name: "Genres",
+ pane: Split(
+ direction: Horizontal,
+ panes: [(size: "100%", borders: "ALL", pane: Pane(Browser(root_tag: "genre", separator: ";")))],
+ ),
+ ),
+ (
+ name: "Playlists",
+ pane: Split(
+ direction: Horizontal,
+ panes: [(size: "100%", borders: "ALL", pane: Pane(Playlists))],
+ ),
+ ),
+ (
+ name: "Search",
+ pane: Split(
+ direction: Horizontal,
+ panes: [(size: "100%", borders: "ALL", pane: Pane(Search))],
+ ),
+ ),
+ ],
+)
diff --git a/.config/rmpc/scripts/statusbar b/.config/rmpc/scripts/statusbar
new file mode 100755
index 0000000..6252101
--- /dev/null
+++ b/.config/rmpc/scripts/statusbar
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/bin/pkill -RTMIN+11 someblocks
diff --git a/.config/rmpc/themes/def.ron b/.config/rmpc/themes/def.ron
new file mode 100644
index 0000000..7599fde
--- /dev/null
+++ b/.config/rmpc/themes/def.ron
@@ -0,0 +1,193 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ default_album_art_path: None,
+ show_song_table_header: true,
+ draw_borders: true,
+ browser_column_widths: [20, 38, 42],
+ background_color: None,
+ modal_backdrop: true,
+ text_color: "#eceff4",
+ header_background_color: None,
+ modal_background_color: None,
+ preview_label_style: (fg: "#b48ead"),
+ preview_metadata_group_style: (fg: "#88c0d0"),
+ tab_bar: (
+ enabled: true,
+ active_style: (fg: "#2e3440", bg: "blue", modifiers: "Bold"),
+ inactive_style: (fg: "#eceff4", bg: None, modifiers: ""),
+ ),
+ highlighted_item_style: (fg: "magenta", modifiers: "Bold"),
+ current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
+ borders_style: (fg: "blue", modifiers: "Bold"),
+ highlight_border_style: (fg: "blue"),
+ symbols: (song: "󰝚 ", dir: " ", playlist: "󰲸 ", marker: "* ", ellipsis: "..."),
+ progress_bar: (
+ symbols: ["█", "█", "█", "█", "█"],
+ track_style: (fg: "dark_gray"),
+ elapsed_style: (fg: "blue"),
+ thumb_style: (fg: "blue"),
+ ),
+ scrollbar: (
+ symbols: ["│", "█", "▲", "▼"],
+ track_style: (fg: "cyan"),
+ ends_style: (fg: "blue"),
+ thumb_style: (fg: "blue"),
+ ),
+ song_table_format: [
+ (
+ prop: (kind: Property(Artist), style: (fg: "blue"),
+ default: (kind: Text("Unknown"), style: (fg: "blue"))
+ ),
+ width: "20%",
+ ),
+ (
+ prop: (kind: Property(Title), style: (fg: "#eceff4"),
+ highlighted_item_style: (fg: "#d8dee9", modifiers: "Bold"),
+ default: (kind: Property(Filename), style: (fg: "#d8dee9"),)
+ ),
+ width: "35%",
+ ),
+ (
+ prop: (kind: Property(Album), style: (fg: "cyan"),
+ default: (kind: Text("Unknown Album"), style: (fg: "#b48ead"))
+ ),
+ width: "30%",
+ ),
+ (
+ prop: (kind: Property(Duration), style: (fg: "magenta"),
+ default: (kind: Text("-"))
+ ),
+ width: "15%",
+ alignment: Right,
+ ),
+ ],
+ layout: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "3",
+ pane: Pane(Tabs),
+ ),
+ (
+ size: "5",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ borders: "ALL",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "4",
+ borders: "NONE",
+ pane: Pane(Header),
+ ),
+ (
+ size: "1",
+ borders: "NONE",
+ pane: Pane(ProgressBar),
+ ),
+ ]
+ )
+ ),
+ ]
+ ),
+ ),
+ (
+ size: "100%",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "100%",
+ borders: "NONE",
+ pane: Pane(TabContent),
+ ),
+ ]
+ ),
+ ),
+ ],
+ ),
+ header: (
+ rows: [
+ (
+ left: [
+ (kind: Text(""), style: (fg: "blue", modifiers: "Bold")),
+ (kind: Property(Status(StateV2(playing_label: "  ", paused_label: "  ", stopped_label: "  ")))),
+ (kind: Text(" "), style: (fg: "blue", modifiers: "Bold")),
+ (kind: Property(Widget(ScanStatus)))
+ ],
+ center: [
+ (kind: Property(Song(Title)), style: (fg: "#eceff4",modifiers: "Bold"),
+ default: (kind: Property(Song(Filename)), style: (fg: "#d8dee9",modifiers: "Bold"))
+ )
+ ],
+ right: [
+ (kind: Text("󱡬"), style: (fg: "blue", modifiers: "Bold")),
+ (kind: Property(Status(Volume)), style: (fg: "#eceff4", modifiers: "Bold")),
+ (kind: Text("%"), style: (fg: "blue", modifiers: "Bold"))
+ ]
+ ),
+ (
+ left: [
+ (kind: Text("[ "),style: (fg: "blue", modifiers: "Bold")),
+ (kind: Property(Status(Elapsed)),style: (fg: "#eceff4")),
+ (kind: Text(" / "),style: (fg: "cyan", modifiers: "Bold")),
+ (kind: Property(Status(Duration)),style: (fg: "#eceff4")),
+ (kind: Text(" | "),style: (fg: "cyan")),
+ (kind: Property(Status(Bitrate)),style: (fg: "#eceff4")),
+ (kind: Text(" kbps"),style: (fg: "cyan")),
+ (kind: Text("]"),style: (fg: "blue", modifiers: "Bold"))
+ ],
+ center: [
+ (kind: Property(Song(Artist)), style: (fg: "white", modifiers: "Bold"),
+ default: (kind: Text("Unknown Artist"), style: (fg: "white", modifiers: "Bold"))
+ ),
+ (kind: Text(" - ")),
+ (kind: Property(Song(Album)),style: (fg: "white" ),
+ default: (kind: Text("Unknown Album"), style: (fg: "white", modifiers: "Bold"))
+ )
+ ],
+ right: [
+ (kind: Text("[ "),style: (fg: "blue")),
+ (kind: Property(Status(RepeatV2(
+ on_label: "", off_label: "",
+ on_style: (fg: "#eceff4", modifiers: "Bold"), off_style: (fg: "dark_gray", modifiers: "Bold"))))),
+ (kind: Text(" | "),style: (fg: "blue")),
+ (kind: Property(Status(RandomV2(
+ on_label: "", off_label: "",
+ on_style: (fg: "#eceff4", modifiers: "Bold"), off_style: (fg: "dark_gray", modifiers: "Bold"))))),
+ (kind: Text(" | "),style: (fg: "blue")),
+ (kind: Property(Status(ConsumeV2(
+ on_label: "󰮯", off_label: "󰮯", oneshot_label: "󰮯󰇊",
+ on_style: (fg: "#eceff4", modifiers: "Bold"), off_style: (fg: "dark_gray", modifiers: "Bold"))))),
+ (kind: Text(" | "),style: (fg: "blue")),
+ (kind: Property(Status(SingleV2(
+ on_label: "󰎤", off_label: "󰎦", oneshot_label: "󰇊", off_oneshot_label: "󱅊",
+ on_style: (fg: "#eceff4", modifiers: "Bold"), off_style: (fg: "dark_gray", modifiers: "Bold"))))),
+ (kind: Text(" ]"),style: (fg: "blue")),
+ ]
+ ),
+ ],
+ ),
+ browser_song_format: [
+ (
+ kind: Group([
+ (kind: Property(Track)),
+ (kind: Text(" ")),
+ ])
+ ),
+ (
+ kind: Group([
+ (kind: Property(Artist)),
+ (kind: Text(" - ")),
+ (kind: Property(Title)),
+ ]),
+ default: (kind: Property(Filename))
+ ),
+ ],
+)