MPRIS2 waybar component
Go to file
Harvey Tindall 9b02fc2851
print clone message to stderr
any non-json output at all seems to break waybar now, so this avoids it.
2020-11-26 19:11:38 +00:00
images remote control via unix sockets 2020-08-22 19:01:51 +01:00
.gitignore add players as detected, switch to currently playing player on state 2020-08-21 15:44:59 +01:00
README.md Run multiple instances by attaching to original 2020-09-28 23:48:51 +01:00
go.mod fix help output 2020-11-16 21:59:31 +00:00
go.sum fix help output 2020-11-16 21:59:31 +00:00
main.go print clone message to stderr 2020-11-26 19:11:38 +00:00
waybar-mpris print clone message to stderr 2020-11-26 19:11:38 +00:00

README.md

waybar-mpris

bar gif

a waybar component/utility for displaying and controlling MPRIS2 compliant media players individually, inspired by waybar-media.

MPRIS2 is widely supported, so this component should work with:

  • Chrome/Chromium
  • Other browsers (with kde plasma integration installed)
  • VLC
  • Spotify
  • Noson
  • mpd (with mpDris2)
  • Most other music/media players

Install

go get git.hrfee.pw/hrfee/waybar-mpris will install the program, as well as the go dbus bindings and pflags for command-line arguments.

or just grab the waybar-mpris binary from here and place it in your PATH.

Usage

When running, the program will pipe out json in waybar's format. Add something like this to your waybar config.json:

"custom/waybar-mpris": {
    "return-type": "json",
    "exec": "waybar-mpris --position --autofocus",
    "on-click": "waybar-mpris --send toggle",
    // This option will switch between players on right click.
        "on-click-right": "waybar-mpris --send player-next",
    // The options below will switch the selected player on scroll
        // "on-scroll-up": "waybar-mpris --send player-next",
        // "on-scroll-down": "waybar-mpris --send player-prev",
    // The options below will go to next/previous track on scroll
        // "on-scroll-up": "waybar-mpris --send next",
        // "on-scroll-down": "waybar-mpris --send prev",
    "escape": true,
},
Usage of waybar-mpris:
      --autofocus          Auto switch to currently playing music players.
      --interpolate        Interpolate track position (helpful for players that don't update regularly, e.g mpDris2)
      --order string       Element order. (default "SYMBOL:ARTIST:ALBUM:TITLE:POSITION")
      --pause string       Pause symbol/text to use. (default "\uf8e3")
      --play string        Play symbol/text to use. (default "▶")
      --position           Show current position between brackets, e.g (04:50/05:00)
      --replace            Replace any running instances
      --send string        send command to already runnning waybar-mpris instance. (options: player-next/player-prev/next/prev/toggle)
      --separator string   Separator string to use between artist, album, and title. (default " - ")
  • Modify the order of components with --order. SYMBOL is the play/paused icon or text, POSITION is the track position (if enabled), other options are self explanatory.
  • --play/--pause specify the symbols or text to display when music is paused/playing respectively.
  • --separator specifies a string to separate the artist, album and title text.
  • --autofocus makes waybar-mpris automatically focus on currently playing music players.
  • --position enables the display of the track position.
  • --interpolate increments the track position every second. This is useful for players (e.g mpDris2) that don't regularly update the position.
  • --replace: By default, new instances will attach to the existing one so that the output is identical. This lets this instance replace any others running. It isn't recommended.
  • --send sends commands to an already running waybar-mpris instance via a unix socket. Commands:
    • player-next: Switch to displaying and controlling next available player.
    • player-prev: Same as player-next, but for the previous player.
    • next/prev: Next/previous track on the selected player.
    • toggle: Play/pause.
    • Note: you can also bind these commands to keys in your sway/other wm config.