Skip to content

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.

TerminalBackendTmuxAdditional Info
KittyKittyyes-
WezTermITerm2yes-
vscodeITerm2yesNeeds to set max_size_px. Needs to be enabled in vscode.
TabbyITerm2yesNeeds to set max_size_px
FootSixelyesLimited image size in tmux
AlacrittyUeberzugyesNeeds ueberzugpp
OthersUeberzug/Sixel/Kitty/NoneunknownUntested/unsupported. Might need ueberzugpp. Try other backends or disabling album_art altogether if you experience issues.

Configuration

method

method: Kitty | Iterm2 | Sixel | UeberzugWayland | UeberzugX11 | None | Auto

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

max_size_px: (<width>, <height>)

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

disabled_protocols: string[]

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.