diff options
Diffstat (limited to 'rmpc')
| -rw-r--r-- | rmpc/.config/rmpc/config.ron | 206 | ||||
| -rw-r--r-- | rmpc/.config/rmpc/themes/theal.ron | 225 |
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", + }) + ), +) |
