summaryrefslogtreecommitdiff
path: root/rmpc/.config
diff options
context:
space:
mode:
authorbh <qn+git@epicurus.dev>2025-12-13 23:51:39 +0800
committerbh <qn+git@epicurus.dev>2025-12-13 23:51:39 +0800
commit902becd0109f714c25f21e77482ee85938627ae7 (patch)
tree351bbf68619949e3186b9d260d0683d1086891db /rmpc/.config
parent18b996ac1bc7ffad6357c4759e0d2fd4673ff20b (diff)
Added mpd, rmpc, and yazi
Diffstat (limited to 'rmpc/.config')
-rw-r--r--rmpc/.config/rmpc/config.ron206
-rw-r--r--rmpc/.config/rmpc/themes/theal.ron225
2 files changed, 431 insertions, 0 deletions
diff --git a/rmpc/.config/rmpc/config.ron b/rmpc/.config/rmpc/config.ron
new file mode 100644
index 0000000..75145a1
--- /dev/null
+++ b/rmpc/.config/rmpc/config.ron
@@ -0,0 +1,206 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ address: "127.0.0.1:6600",
+ password: None,
+ theme: Some("theal"),
+ cache_dir: None,
+ on_song_change: None,
+ volume_step: 5,
+ max_fps: 60,
+ scrolloff: 0,
+ wrap_navigation: false,
+ enable_mouse: true,
+ enable_config_hot_reload: true,
+ status_update_interval_ms: 1000,
+ rewind_to_start_sec: None,
+ keep_state_on_song_change: true,
+ reflect_changes_to_playlist: false,
+ select_current_song_on_change: false,
+ ignore_leading_the: false,
+ browser_song_sort: [Disc, Track, Artist, Title],
+ directories_sort: SortFormat(group_by_type: true, reverse: false),
+ album_art: (
+ method: Auto,
+ 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,
+ "1": SwitchToTab("Queue"),
+ "2": SwitchToTab("Directories"),
+ "3": SwitchToTab("Artists"),
+ "4": SwitchToTab("Album Artists"),
+ "5": SwitchToTab("Albums"),
+ "6": SwitchToTab("Playlists"),
+ "7": SwitchToTab("Search"),
+ "q": Quit,
+ ">": NextTrack,
+ "p": TogglePause,
+ "<": PreviousTrack,
+ "f": SeekForward,
+ "z": ToggleRepeat,
+ "x": ToggleRandom,
+ "c": ToggleConsume,
+ "v": 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,
+ "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,
+ "B": ShowInfo,
+ "<C-z>": ContextMenu(),
+ "<C-s>": Save(kind: Modal(all: false, duplicates_strategy: Ask)),
+ },
+ queue: {
+ "D": DeleteAll,
+ "<CR>": Play,
+ "a": AddToPlaylist,
+ "d": Delete,
+ "C": JumpToCurrent,
+ "X": Shuffle,
+ },
+ ),
+ search: (
+ case_sensitive: false,
+ ignore_diacritics: false,
+ search_button: 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"),
+ (value: "filename", label: "Filename"),
+ (value: "genre", label: "Genre"),
+ ],
+ ),
+ cava: (
+ framerate: 60, // default 60
+ autosens: true, // default true
+ sensitivity: 100, // default 100
+ lower_cutoff_freq: 50, // not passed to cava if not provided
+ higher_cutoff_freq: 10000, // not passed to cava if not provided
+ input: (
+ method: Fifo,
+ source: "/tmp/mpd.fifo",
+ sample_rate: 44100,
+ channels: 2,
+ sample_bits: 16,
+ ),
+ smoothing: (
+ noise_reduction: 77, // default 77
+ monstercat: false, // default false
+ waves: false, // default false
+ ),
+ // this is a list of floating point numbers thats directly passed to cava
+ // they are passed in order that they are defined
+ eq: []
+ ),
+ artists: (
+ album_display_mode: SplitByDate,
+ album_sort_by: Date,
+ album_date_tags: [Date],
+ ),
+ tabs: [
+ (
+ name: "Queue",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "40%",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (size: "3", pane: Pane(Lyrics)),
+ (size: "100%", pane: Pane(AlbumArt)),
+ ],
+ ),
+ ),
+ (
+ size: "60%",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (size: "100%", pane: Pane(Queue)),
+ (size: "20", pane: Pane(Cava)), // <-- added Cava here
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ (
+ name: "Directories",
+ pane: Pane(Directories),
+ ),
+ (
+ name: "Artists",
+ pane: Pane(Artists),
+ ),
+ (
+ name: "Album Artists",
+ pane: Pane(AlbumArtists),
+ ),
+ (
+ name: "Albums",
+ pane: Pane(Albums),
+ ),
+ (
+ name: "Playlists",
+ pane: Pane(Playlists),
+ ),
+ (
+ name: "Search",
+ pane: Pane(Search),
+ ),
+ ],
+)
+
diff --git a/rmpc/.config/rmpc/themes/theal.ron b/rmpc/.config/rmpc/themes/theal.ron
new file mode 100644
index 0000000..d6b5e6e
--- /dev/null
+++ b/rmpc/.config/rmpc/themes/theal.ron
@@ -0,0 +1,225 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ default_album_art_path: None,
+ show_song_table_header: true,
+ draw_borders: true,
+ format_tag_separator: " | ",
+ browser_column_widths: [20, 38, 42],
+ background_color: None,
+ text_color: None,
+ header_background_color: None,
+ modal_background_color: None,
+ modal_backdrop: false,
+ preview_label_style: (fg: "yellow"),
+ preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
+ tab_bar: (
+ active_style: (fg: "black", bg: "#8affff", modifiers: "Bold"),
+ inactive_style: (),
+ ),
+ highlighted_item_style: (fg: "yellow", modifiers: "Bold"),
+ current_item_style: (fg: "black", bg: "#8affff", modifiers: "Bold"),
+ borders_style: (fg: "#8affff"),
+ highlight_border_style: (fg: "#8affff"),
+ symbols: (
+ song: " ",
+ dir: " ",
+ playlist: " ",
+ marker: "󰄸 ",
+ ellipsis: "...",
+ song_style: None,
+ dir_style: None,
+ playlist_style: None,
+ ),
+ level_styles: (
+ info: (fg: "#8affff", 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: ["[", "-", ">", " ", "]"],
+ symbols: ["", "━", "", "]", ""],
+ //symbols: ["", "█", "", "]", ""],
+ track_style: (fg: "#1e2030"),
+ elapsed_style: (fg: "#8affff"),
+ thumb_style: (fg: "#8affff", bg: "#1e2030"),
+ use_track_when_empty: false,
+ ),
+ scrollbar: (
+ symbols: ["│", "█", "▲", "▼"],
+ track_style: (),
+ ends_style: (),
+ thumb_style: (fg: "#8affff"),
+ ),
+ song_table_format: [
+ (
+ prop: (kind: Property(Artist),
+ default: (kind: Text("Unknown"))
+ ),
+ width: "20%",
+ ),
+ (
+ prop: (kind: Property(Title),
+ default: (kind: Text("Unknown"))
+ ),
+ width: "35%",
+ ),
+ (
+ prop: (kind: Property(Album), style: (fg: "#8affff"),
+ default: (kind: Text("Unknown Album"), style: (fg: "yellow"))
+ ),
+ width: "30%",
+ ),
+ (
+ prop: (kind: Property(Duration),
+ default: (kind: Text("-"))
+ ),
+ width: "15%",
+ alignment: Right,
+ ),
+ ],
+ components: {},
+ layout: Split(
+ direction: Vertical,
+ panes: [
+ (
+ pane: Pane(Header),
+ size: "2",
+ ),
+ (
+ pane: Pane(Tabs),
+ size: "3",
+ ),
+ (
+ pane: Pane(TabContent),
+ size: "100%",
+ ),
+ (
+ pane: Pane(ProgressBar),
+ size: "1",
+ ),
+ ],
+ ),
+ header: (
+ rows: [
+ (
+ left: [
+ (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
+ (kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))), style: (fg: "yellow", modifiers: "Bold")),
+ (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
+ ],
+ center: [
+ (kind: Property(Song(Title)), style: (modifiers: "Bold"),
+ default: (kind: Text("No Song"), style: (modifiers: "Bold"))
+ )
+ ],
+ right: [
+ (kind: Property(Widget(ScanStatus)), style: (fg: "#8affff")),
+ (kind: Property(Widget(Volume)), style: (fg: "#8affff"))
+ ]
+ ),
+ (
+ left: [
+ (kind: Property(Status(Elapsed))),
+ (kind: Text(" / ")),
+ (kind: Property(Status(Duration))),
+ (kind: Text(" (")),
+ (kind: Property(Status(Bitrate))),
+ (kind: Text(" kbps)"))
+ ],
+ center: [
+ (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"))
+ )
+ ],
+ right: [
+ (
+ kind: Property(Widget(States(
+ active_style: (fg: "yellow", modifiers: "Bold"),
+ separator_style: (fg: "#8affff")))
+ ),
+ style: (fg: "#8affff")
+ ),
+ ]
+ ),
+ ],
+ ),
+ browser_song_format: [
+ (
+ kind: Group([
+ (kind: Property(Track)),
+ (kind: Text(" ")),
+ ])
+ ),
+ (
+ kind: Group([
+ (kind: Property(Artist)),
+ (kind: Text(" - ")),
+ (kind: Property(Title)),
+ ]),
+ default: (kind: Property(Filename))
+ ),
+ ],
+ lyrics: (
+ timestamp: false
+ ),
+ cava: (
+ // symbols that will be used to draw the bar in the visualiser, in ascending order of
+ // fill fraction
+ bar_symbols: ['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'],
+ // similar to bar_symbols but these are used for the top-down rendering, meaning for orientation
+ // "Horizontal" and "Top"
+ inverted_bar_symbols: ['▔', '🮂', '🮃', '▀', '🮄', '🮅', '🮆', '█'],
+
+ // bg_color: "black", // background color, defaults to rmpc's bg color if not provided
+ bar_width: 1, // width of a single bar in columns
+ bar_spacing: 1, // free space between bars in columns
+
+ // Possible values are "Top", "Bottom" and "Horizontal". Top makes the bars go from top to
+ // bottom, "Bottom" is from bottom up, and "Horizontal" is split in the middle with bars going
+ // both down and up from there.
+ // Using non-default symbols with "Top" and "Horizontal" may produce undesired output.
+ orientation: Bottom,
+
+ // Colors can be configured in three different ways: a single color, different colors
+ // per row and a gradient. You can use the same colors as everywhere else. Only specify
+ // one of these:
+
+ // Every bar symbol will be red
+ // bar_color: Single("red"),
+
+ // The first two rows(two lowest amplitudes) will be red, after that two green rows
+ // and the rest will be blue. You can have as many as you want here. The last value
+ // will be used if the height exceeds the length of this array.
+ // bar_color: Rows([
+ // "red",
+ // "red",
+ // "green",
+ // "green",
+ // "blue",
+ // ])
+
+ // A simple color gradient. This is a map where keys are percent values of the height
+ // where the color starts. After that it is linearly interpolated towards the next value.
+ // In this example, the color will start at green for the lowest amplitudes, go towards
+ // blue at half amplitudes and finishing as red for the highest values. Keys must be between
+ // 0 and 100 and if the first or last key are not 0 and 100 respectively, the lowest and highest
+ // value will be used as 0 and 100. Only hex and RGB colors are supported here and your terminal
+ // must support them as well!
+ bar_color: Gradient({
+ // 0: "rgb( 0, 255, 0)",
+ // 50: "rgb( 0, 0, 255)",
+ // 100: "rgb(255, 0, 0)",
+ 0: "#8affff",
+ 50: "#2dc5fc",
+ 100: "#ffc600",
+ })
+ ),
+)