Album Art
Currently there are three methods which rmpc can use to display images. Each of these methods functions
differently from the other and have their own advantages, disadvantages and quirks. The preffered and
default method is Kitty
. Special thanks to yazi for some inspirtion on detecting different kinds of terminals.
The method can be overriden in the config file. Please refer to the Configuration for more information.
Supported terminals
If your terminal is not listed here and you experience issues. Please disable the image method in the config file. Some of the terminals do not correctly report their size, thus some tweaking is needed. For those you need to set max_size_px.
Terminal | Backend | Tmux | Additional Info |
---|---|---|---|
Kitty | Kitty | yes | - |
WezTerm | ITerm2 | yes | - |
vscode | ITerm2 | yes | Needs to set max_size_px. Needs to be enabled in vscode. |
Tabby | ITerm2 | yes | Needs to set max_size_px |
Foot | Sixel | yes | Limited image size in tmux |
Alacritty | Ueberzug | yes | Needs ueberzugpp |
Others | Ueberzug/Sixel/Kitty/None | unknown | Untested/unsupported. Might need ueberzugpp. Try other backends or disabling album_art altogether if you experience issues. |
Configuration
method
Rendering method used to display images. Currently Kitty, UeberzugWayland and UeberzugX11 are supported.
Defaults to Auto
which tries to use Kitty first and then Ueberzug if Kitty is not available.
None
completely disables album art display.
max_size_px
Sets limit for the album art size. If the album art is larger than this, it will be resized to fit the limit.
You should not set this option unless needed because preferred image methods will figure out the correct size
themselves. This is needed only for terminals that do not report their size correctly. Default is (600, 600)
.
(0, 0)
means no practical limit. Ueberzug method is not influenced by this setting.
disabled_protocols
Album art will NOT be fetched and displayed for songs with path starting with any of the given protocols. Set to empty array
to enable all protocols. Defaults to ["http://", "https://]
Backends
Kitty
This method should work out of the box if your terminal supports it. It is a reliable but a little bit slower method. Supports animated gifs.
Cons:
- Image does not change when using tmux and possibly other methods of multiplexing if the change occurs while the tab is not currently active.
Ueberzugpp
Requires ueberzugpp. Art is aligned to the top of the window and not centered.
Pros:
- In my testing a bit faster than Kitty
Cons:
- Requires third party dependency
- Is a separate window on top of the terminal. This might require some additional configuration to make it look good in your environment.
- Album art has to be hidden completely when modal windows are shown
Iterm2 Inline image protocol
Supported only in select few terminals and some of them need additional configuration. Works best in WezTerm. Supports animated gifs, but suffers from the same issues as Sixel in Tmux, more info here.
Sixel
Cons:
- Has lower color depth than the alternatives.
- Much lower image size can be transmitted through tmux due to sixel being a very size inefficient protocol. Tmux supports only 1MB of data due to its internal buffering limitations. See more info here. You can limit your image size with max_size_px.