waybar-mpris(5)
π waybar-mpris β the MPRIS module π
okay bestie, gather round, because this is the manual page for the waybar-mpris(5) module from the File Formats Manual, and it's genuinely one of the cutest ones. it's giving "your bar shows what you're listening to" energy and honestly? iconic.
β¨ NAME β¨
waybar β the MPRIS module π΅
πΈ DESCRIPTION πΈ
The mpris module displays currently playing media via libplayerctl. that's it, that's the whole vibe. your bar now knows what you're blasting at 2am and it will tell everyone. no cap.
π CONFIGURATION π
every single knob you can turn, in order, with nothing skipped because we don't do that here π
playerβ typeof:string, default:playerctld. Name of the MPRIS player to attach to. Using the default value always follows the currently active player. (so like, whoever's playing right now gets to be the main character π)ignored-playersβ typeof:[]string. Ignore updates of the listed players, when usingplayerctld.intervalβ typeof:integer, default:0. Refresh MPRIS information on a timer.formatβ typeof:string, default:{player} ({status}) {dynamic}. The text format.format-[status]β typeof:string. The status-specific text format.tooltipβ typeof:bool, default:true. Option to disable tooltip on hover.tooltip-formatβ typeof:string, default:{player} ({status}) {dynamic}. The tooltip text format.tooltip-format-[status]β typeof:string. The status-specific tooltip format.artist-lenβ typeof:integer. Maximum length of the Artist tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the artist in{dynamic}tag.album-lenβ typeof:integer. Maximum length of the Album tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the album in{dynamic}tag.title-lenβ typeof:integer. Maximum length of the Title tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the title in{dynamic}tag.dynamic-lenβ typeof:integer. Maximum length of the Dynamic tag (Wide/Fullwidth Unicode characters count as two). The dynamic tag will not truncate any tags beyond their set length limits, instead, it will attempt to fit as much of the available tags as possible. It is recommended you settitle-lento something less than or equal to this value, so the title will always be displayed. (protect the title at all costs fr fr π«Ά)dynamic-orderβ typeof:[]string, default:["title", "artist", "album", "position", "length"]. Order of the tags shown by Dynamic tag. Thepositionandlengthtags will always be combined in the format[{position}/{length}]. The order of these tags in relation to other tags will be determined based on the declaration of the first among the two tags. Absence in this list means force exclusion.dynamic-importance-orderβ typeof:[]string, default:["title", "artist", "album", "position", "length"]. Priority of the tags when truncating the Dynamic tag. The final ones will be the first to be truncated. Absence in this list means force inclusion.dynamic-separatorβ typeof:string, default:" - ". These characters will be used to separate two different tags, except when one of these tags ispositionandlength.truncate-hoursβ typeof:bool, default:true. Whether to hide hours when media duration is less than an hour long.enable-tooltip-len-limitsβ typeof:bool, default:false. Option to enable the length limits for the tooltip as well. By default, the tooltip ignores all length limits.ellipsisβ typeof:string, default:"β¦". This character will be used when any of the tags exceed their maximum length. If you don't want to use an ellipsis, set this to empty string.rotateβ typeof:integer. Positive value to rotate the text label (in 90 degree increments).max-lengthβ typeof:integer. The maximum length in character the module should display.min-lengthβ typeof:integer. The minimum length in characters the module should accept.alignβ typeof:float. The alignment of the label within the module, where0is left-aligned and1is right-aligned. If the module is rotated, it will follow the flow of the text.justifyβ typeof:string. The alignment of the text within the module's label, allowing options'left','right', or'center'to define the positioning.on-clickβ typeof:string, default:play-pause. Overwrite default action toggles.on-click-middleβ typeof:string, default:previous track. Overwrite default action toggles.on-click-rightβ typeof:string, default:next track. Overwrite default action toggles.player-iconsβ typeof:map[string]string. Allows setting{player_icon}based on player-name property.status-iconsβ typeof:map[string]string. Allows setting{status_icon}based on player status (playing,paused,stopped).expandβ typeof:bool, default:false. Enables this module to consume all left over space dynamically.
π¦ FORMAT REPLACEMENTS π¦
the lil placeholders you can drop into your formats, all of them, none skipped β¨
{player}β The name of the current media player{status}β The current status (playing,paused,stopped){artist}β The artist of the current track{album}β The album title of the current track{title}β The title of the current track{length}β Length of the track, formatted asHH:MM:SS{dynamic}β Use{artist},{album},{title}and{length}, automatically omit empty values{player_icon}β Chooses an icon fromplayer-iconsbased on{player}{status_icon}β Chooses an icon fromstatus-iconsbased on{status}
π EXAMPLES π
copy this, it's cute, it slays:
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "βΆ",
"mpv": "π΅"
},
"status-icons": {
"paused": "βΈ"
},
// "ignored-players": ["firefox"]
}
yes the//comment is really in there, and no, commenting out"ignored-players": ["firefox"]will not actually silence firefox until you uncomment it. bestie. π
π STYLE π
the CSS selectors you get to play with, so your bar can be as extra as you want:
#mpris#mpris.${status}#mpris.${player}
and that's the whole page, you ate it, no crumbs π this was waybar-mpris(5) from the File Formats Manual, dated 2026-02-08. go make your bar gorgeous, bestie πβ¨π¦
π¦ where this page comes from
- ubuntu resolute: waybar 0.15.0-1 Β· MIT
- ubuntu stonking: waybar 0.15.0-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms