Version 2.4.1 contains bugfixes and new features.
- Fix a crash in playerctld when players use TrackList and Playlists interfaces (#215)
- Add the
trunc()
template function (#224) - Allow to use playerctl as a subproject and cpp linking (#228)
- bugfix: subscribe to all signals when multiple template functions are used (#235)
- bugfix: workaround for players that use uint64 values in the formatter (#234)
Version 2.3.1 contains bugfixes and new features.
- Add option to toggle shuffle (#197)
- Add
-s
, quiet flag to supress some messages from stderr (#108, #193) - Add math operations to the formatter (#149, 119d0a5)
- Change instance delimiter to "." (#198, d0a59e2)
- Use playerctld to get players in order of activation when it is running (#192, bfed117)
- Remove warning message when the system bus isn't found (a1cfd4a)
- Add zsh shell completions (#127, #201, #202)
- playerctld: add
daemon
activation command (1266063) - playerctld: add
unshift
command (#204) - bugfix: improve property setter reliability (c617911)
Version 2.2.1 contains some bugfixes and new features.
- Fix a crash when the
emoji()
template function is used (#167) - Add a
shift
command toplayerctld
to shift the active player (#173) - Fix a crash when system players are present (#175)
Version 2.1.1 contains some bugfixes and new features.
Playerctl now has a test suite that covers most features of the CLI.
playerctld
- Add
playerctld
: an activatable DBus service for selecting the most recently active player (#161, #164, #128)
CLI
- Add the
markup_escape()
formatter function (#133) - Mark the
emoji()
formatter function as no longer experimental - Add the
default()
formatter function (#142, fd0b4ab) - Add the special
%any
player token for prioritizing player selection (#143) - Add bash completions (#153)
- Add debug logging (#152)
- Rewrite and expand manpage with
mdoc(7)
(#130) - Attempt to autostart
playerctld
if it is present in players - bugfix: incorrect error message for shuffle command (#158)
- bugfix: don't crash if no system bus is present (2330b64f)
- bugfix: don't crash if given a nonexistent format function (#162)
Build
- Required meson version is now
0.50.0
.
Version 2.0.2 contains some minor bugfixes for the CLI and build system.
The author would like to inform you as part of my effort to improve media player integration on the Linux Desktop, I have fixed many bugs in Electron based media players that should be available soon (see #40, #81, #35 which were closed recently).
CLI
- Regression: exit 1 when no players are found (#126, #119)
- Regression: fix sort order for
--player
command (#112) - Handle nonfile uris in the
open
command (#122)
Build
- Fix documentation of the
--follow
flag (#117) - Update manpage release date at build time (#118)
- fix gir build on cross compilation (#120)
Version 2.0.1 includes new major features and breaking changes to the library and CLI.
CLI
- Add
--ignore-player
flag to ignore specific players (#2) - Add
--follow
flag to block and print updated values when they change (#37, #98, #101) - The
--player
command acts on the first player without--all-players
(breaking) (#54) - Accept multiple keys for
metadata [key]
command (#68) metadata
command has tabular output. (breaking) (#72)- Add
--format [fmt]
for metadata formatting (#73) - Add
duration()
template formatter for formatting durations (#75) - Print player name and instance with format strings (#90)
- Add command to get and set
shuffle
status (#92) - Add a command to get and set
loop
status (#99) - Add the
open
command to open a URI with the player (#79) - Fix some errors with utf8 printing (#80)
- Skip players from selection when they don't support a command (determined by the
can-*
properties) - Select all player instances with the
--player
and--ignore-player
command - Print help information to stdout (not stderr) when no arguments are passed
Library
- add
playerctl_list_players()
to public api for listing players (#47) - Implement the "seeked" signal on the player (#94)
- Add the "volume" signal on the player (#95)
- Deprecate the "play", "pause", and "stopped" signal for a single "status" signal (#96)
- Add the
PlayerctlPlayerManager()
class (#100) - Cache and compute the position property (#102)
- Remove chaining abilities from the library (breaking)
- Library query functions return
NULL
instead of empty string when properties aren't found (breaking) - Deprecate
status
property in favor of theplayback-status
property as an enum - Add library functions for
shuffle
andloop
status (#92, #99) - Deprecate setting volume via the object properties interface
- Fix the "exit" signal
- Add properties "can-control", "can-play", "can-pause", "can-seek", "can-go-next", "can-go-previous"
- Add the "source" property to determine the source of the player (session or system bus)
- Change first keyword arg for
playerctl_player_new()
fromname
toplayer_name
(breaking) - Add
playerctl_player_new_for_source()
to select players based on the source (session or system bus) - Add
playerctl_player_new_from_name()
to create a player from a PlayerManager name playerctl_player_new()
selects an instance of theplayer_name
if found- Add documentation for the entire public library API
Build
- Remove autotools and switch to the meson build system (breaking) (#57)
- Fix various compiler warnings (#97)
- Remove library version from pkg-config name and add it to the so in the standard way (new pkg-config name is just
playerctl
).
Version 0.6.1 includes bug fixes and some minor features.
- Bugfix: unref of a null player when no players are present
- Playerctl now searches the system bus for players
- Parse trackid as a string as a workaround for noncompliant players
- Various meson fixes
Version 0.6.0 includes bug fixes and new features.
- control multiple players at once by putting commas between the names
- add the --all-players option to control all players at once
- lib: better cache invalidation strategy for getting properties
- bugfix: Set position in fractional seconds
- Fix various memory leaks and errors
NOTE: This will be the last minor release that uses autotools. Playerctl will switch to the meson build system as of the next minor release.
Github releases will have a debian package and an rpm, but these will soon be deprecated as package maintainers create official packages for distros.
Version 0.5.0 includes some new features.
New features:
- Add workaround for Spotify to get metadata
- Add
position
cli command to query and set position - Add
position
property to Player and method to set position to library
Version 0.4.2 includes several important bug fixes.
- Send
Play
directly instead of aPlayPause
message depending on player status. This was an exception for Spotify that is no longer needed. - Fix memory errors when an initialization error occurs.
This version includes a fix to support unicode characters when printing metadata.
This version adds the following features and bugfixes
- List players with cli
-l
option. - Fix a bug in the build for some platforms
- Remove claim of mplayer support
This release includes some major bugfixes and some new features mostly for the library for use in applications.
- Add the "stop" library and cli command
- Add the "exit" signal - emitted when the player exits
- Implement player class memory management
- Add version macros
The following quirks have been corrected (should not be breaking)
- Player "player_name" property getter returns the player name and not the DBus name
- Player "stop" event correctly emits "stop" and not "pause"
- Add include guards so only
<playerctl/playerctl.h>
can be included directly
Additional packages available by request
This minor release adds a pkg-config file and relicenses the code under the LGPL.
This release adds convenient metadata accessors and improves error handling
- Add get_artist method to player
- Add get_title method to player
- Add get_album method to player
- Add get_metadata_prop to player
- Add [KEY] option to metadata cli
- Bugfix: gracefully handle property access when connection to dbus fails by returning empty properties
This release adds some new player commands and improves error handling
- Add the "next" CLI command and player method used to switch to the next track
- Add the "previous" CLI command and player method used to switch to the previous track
- Print an error message when no players are found in the CLI and propagate an error on initialization in this case in the library
- Print an error message when a command fails in the CLI and propagate an error in this case in the library
Playerctl is a command-line utility and library for controlling media players that implement the MPRIS D-Bus Interface Specification. Playerctl makes it easy to bind player actions, such as play and pause, to media keys.
For more advanced users, Playerctl provides an introspectable library available in your favorite scripting language that allows more detailed control like the ability to subscribe to media player events or get metadata such as artist and title for the playing track.