| 1 | # rmptui configuration |
| 2 | # |
| 3 | # Every option is shown with its default value. Settings you leave out keep |
| 4 | # their defaults, so you can trim this file down to the parts you change. |
| 5 | # Restart rmptui to apply changes. |
| 6 | |
| 7 | [mpd] |
| 8 | # Hostname, IP address, or the path of MPD's Unix socket (starting with `/` |
| 9 | # or `~`). Overridden by the MPD_HOST environment variable, which also accepts |
| 10 | # `password@host`. |
| 11 | host = "127.0.0.1" |
| 12 | # Overridden by MPD_PORT. Ignored for Unix sockets. |
| 13 | port = 6600 |
| 14 | # Set this only if your MPD server requires a password. It is stored in plain |
| 15 | # text; rmptui creates this file readable only by you. |
| 16 | password = "" |
| 17 | # The music directory on this machine, required by the tag editor and for |
| 18 | # `.lrc` files stored next to songs. Leave empty to ask MPD, which only answers |
| 19 | # over a Unix socket. |
| 20 | music_directory = "" |
| 21 | |
| 22 | [playback] |
| 23 | # Seconds moved by seek_forward / seek_backward. |
| 24 | seek_seconds = 5 |
| 25 | # Percent changed by volume_up / volume_down. |
| 26 | volume_step = 5 |
| 27 | |
| 28 | [ui] |
| 29 | # Screen shown on startup: queue, browser, playlists, library, tag_editor, |
| 30 | # visualizer or lyrics. |
| 31 | startup_screen = "queue" |
| 32 | # Enable mouse support (click to select, double-click to play/open, wheel to |
| 33 | # scroll, click the progress bar to seek). |
| 34 | mouse = true |
| 35 | # Ask before clearing the queue. |
| 36 | confirm_clear_queue = false |
| 37 | # Show the lyrics pane next to the queue on startup (toggle with `L`). |
| 38 | lyrics_pane = false |
| 39 | # Width of the lyrics pane in percent of the screen. |
| 40 | lyrics_pane_width = 40 |
| 41 | # Seconds a status message stays visible. |
| 42 | message_timeout = 4 |
| 43 | # Columns of the song tables (queue, browser, playlist contents). `field` is |
| 44 | # one of artist, album_artist, title, album, track, disc, date, genre, |
| 45 | # duration or file. `width` is a relative weight, except for track, disc and |
| 46 | # duration, where it is a fixed number of characters. |
| 47 | song_columns = [ |
| 48 | { field = "artist", width = 34 }, |
| 49 | { field = "track", width = 5 }, |
| 50 | { field = "title", width = 33 }, |
| 51 | { field = "album", width = 30 }, |
| 52 | { field = "duration", width = 5 }, |
| 53 | ] |
| 54 | |
| 55 | [theme] |
| 56 | # Colors are names (black, red, green, yellow, blue, magenta, cyan, gray, |
| 57 | # darkgray, lightred, …, white, reset), 256-color indices ("208") or hex |
| 58 | # values ("#c694ff"). "reset" is your terminal's default color. |
| 59 | text = "reset" |
| 60 | dim = "darkgray" |
| 61 | # Horizontal and vertical separator lines. |
| 62 | border = "gray" |
| 63 | # The selected row. With both set to "reset", the row is shown in reverse |
| 64 | # video like ncmpcpp. |
| 65 | selection_fg = "reset" |
| 66 | selection_bg = "reset" |
| 67 | playing = "reset" |
| 68 | marked = "yellow" |
| 69 | directory = "reset" |
| 70 | error = "red" |
| 71 | # Song table columns. |
| 72 | artist = "reset" |
| 73 | track = "darkgray" |
| 74 | album = "reset" |
| 75 | duration = "reset" |
| 76 | # The filled part of the progress bar. |
| 77 | progress = "gray" |
| 78 | # Visualizer bar gradient, from the bottom of the screen to the top. |
| 79 | visualizer = ["blue", "cyan", "green", "yellow", "red"] |
| 80 | |
| 81 | [lyrics] |
| 82 | # Look up lyrics on https://lrclib.net when no local `.lrc` file exists. |
| 83 | online = true |
| 84 | # Keep fetched lyrics in $XDG_CACHE_HOME/rmptui/lyrics (~/.cache by default). |
| 85 | cache = true |
| 86 | lrclib_url = "https://lrclib.net" |
| 87 | |
| 88 | [visualizer] |
| 89 | # Path of an MPD fifo output. Add this to mpd.conf: |
| 90 | # |
| 91 | # audio_output { |
| 92 | # type "fifo" |
| 93 | # name "Visualizer feed" |
| 94 | # path "/tmp/mpd.fifo" |
| 95 | # format "44100:16:2" |
| 96 | # } |
| 97 | fifo = "/tmp/mpd.fifo" |
| 98 | # Must match the `format` of the fifo output. |
| 99 | sample_rate = 44100 |
| 100 | channels = 2 |
| 101 | framerate = 60 |
| 102 | bar_width = 2 |
| 103 | bar_gap = 1 |
| 104 | min_frequency = 40 |
| 105 | max_frequency = 16000 |
| 106 | # How fast bars fall, in screen heights per second. |
| 107 | falloff = 1.5 |
| 108 | |
| 109 | # Key bindings |
| 110 | # |
| 111 | # Each table is a context. Lookups start with the context of the focused |
| 112 | # popup or screen, then `navigation`, then `global`, so a key bound in a |
| 113 | # screen context shadows the same key in `global` on that screen. |
| 114 | # |
| 115 | # Each action takes a list of keys. A key is a character or one of Enter, |
| 116 | # Esc, Tab, Backspace, Delete, Insert, Space, Up, Down, Left, Right, Home, |
| 117 | # End, PageUp, PageDown and F1–F24, optionally prefixed by Ctrl+, Alt+ or |
| 118 | # Shift+ (e.g. "Ctrl+x", "Alt+Enter", "Shift+Tab"). Set an action to [] to |
| 119 | # unbind it; a key may only be used once per context. |
| 120 | |
| 121 | [keys.global] |
| 122 | quit = ["q", "Ctrl+c"] |
| 123 | help = ["?", "F1"] |
| 124 | toggle_pause = ["p"] |
| 125 | pause = ["s"] |
| 126 | stop = ["x"] |
| 127 | next_track = [">"] |
| 128 | previous_track = ["<"] |
| 129 | seek_forward = ["f"] |
| 130 | seek_backward = ["b"] |
| 131 | volume_up = ["+", "="] |
| 132 | volume_down = ["-"] |
| 133 | toggle_mute = ["m"] |
| 134 | toggle_repeat = ["r"] |
| 135 | toggle_random = ["z"] |
| 136 | toggle_single = ["y"] |
| 137 | toggle_consume = ["R"] |
| 138 | update_database = ["U"] |
| 139 | clear_queue = ["c"] |
| 140 | next_screen = ["Tab"] |
| 141 | previous_screen = ["Shift+Tab"] |
| 142 | screen_queue = ["1"] |
| 143 | screen_browser = ["2"] |
| 144 | screen_playlists = ["3"] |
| 145 | screen_library = ["4"] |
| 146 | screen_tag_editor = ["5"] |
| 147 | screen_visualizer = ["6"] |
| 148 | screen_lyrics = ["7"] |
| 149 | |
| 150 | [keys.navigation] |
| 151 | up = ["k", "Up"] |
| 152 | down = ["j", "Down"] |
| 153 | top = ["g", "Home"] |
| 154 | bottom = ["G", "End"] |
| 155 | page_up = ["PageUp"] |
| 156 | page_down = ["PageDown"] |
| 157 | half_page_up = ["Ctrl+u"] |
| 158 | half_page_down = ["Ctrl+d"] |
| 159 | left = ["h", "Left", "Backspace"] |
| 160 | right = ["l", "Right"] |
| 161 | activate = ["Enter"] |
| 162 | toggle_mark = ["v", "Insert"] |
| 163 | clear_marks = ["V"] |
| 164 | search = ["/"] |
| 165 | search_next = ["n"] |
| 166 | search_previous = ["N"] |
| 167 | add_to_queue = ["Space"] |
| 168 | add_to_playlist = ["a"] |
| 169 | |
| 170 | [keys.queue] |
| 171 | delete = ["d", "Delete"] |
| 172 | move_item_up = ["K"] |
| 173 | move_item_down = ["J"] |
| 174 | shuffle_queue = ["Z"] |
| 175 | save_queue = ["S"] |
| 176 | jump_to_current = ["o"] |
| 177 | toggle_lyrics_pane = ["L"] |
| 178 | |
| 179 | [keys.browser] |
| 180 | |
| 181 | [keys.playlists] |
| 182 | delete = ["d", "Delete"] |
| 183 | move_item_up = ["K"] |
| 184 | move_item_down = ["J"] |
| 185 | delete_playlist = ["D"] |
| 186 | rename_playlist = ["R"] |
| 187 | |
| 188 | [keys.library] |
| 189 | toggle_artist_tag = ["t"] |
| 190 | |
| 191 | [keys.tag_editor] |
| 192 | save_tags = ["w"] |
| 193 | revert_tags = ["u"] |
| 194 | |
| 195 | [keys.visualizer] |
| 196 | |
| 197 | [keys.lyrics] |
| 198 | reload_lyrics = ["F5"] |
| 199 | |
| 200 | [keys.popup] |
| 201 | close = ["q", "Esc"] |
| 202 | |
| 203 | [keys.input] |
| 204 | submit = ["Enter"] |
| 205 | cancel = ["Esc"] |
| 206 | backspace = ["Backspace"] |
| 207 | delete_char = ["Delete"] |
| 208 | delete_word = ["Ctrl+w"] |
| 209 | cursor_left = ["Left"] |
| 210 | cursor_right = ["Right"] |
| 211 | cursor_home = ["Home", "Ctrl+a"] |
| 212 | cursor_end = ["End", "Ctrl+e"] |