Skip to content

Add support for --media-controls on more platforms #17719

Description

@kasper93

Expected behavior of the wanted feature

Add support for --media-controls on more platforms.

Alternative behavior of the wanted feature

Add support for --media-controls on more platforms.

Log File

Add support for --media-controls on more platforms.

Sample Files

Add support for --media-controls on more platforms.

Activity

  1. added theissue type on Apr 8, 2026
  2. Dudemanguy commented on Apr 8, 2026

    @Dudemanguy
    Member

    I thought macOS already had basically this functionality? Maybe it's not specifically integrated with the --media-controls option though. On linux this doesn't exist besides using mpris and even that depends on the DE really. We've left that to plugins for all these years and never integrated it.

  3. Akemi commented on Apr 8, 2026

    @Akemi
    Member

    --input-media-keys is what is used on macOS. i am not sure what the difference is supposed to be to --media-controls?

  4. kasper93 commented on Apr 8, 2026

    @kasper93
    MemberAuthor

    --input-media-keys

    Is capturing media keys when mpv is in focus. And act upon them.

    --media-controls

    Is integration with system media playback controls, which can be used when mpv is hidden or on lock screen.

  5. Akemi commented on Apr 9, 2026

    @Akemi
    Member

    --input-media-keys

    Is capturing media keys when mpv is in focus. And act upon them.

    in the macOS case mpv never had to be in focus, as long as no other app is stealing the media key priority. it worked a little bit different with the old mechanism, which was replaced because Apple 'removed' it.

    --media-controls

    Is integration with system media playback controls, which can be used when mpv is hidden or on lock screen.

    correct me if i am wrong with my assumption, so "media playback controls" are the 'software controls' from the system, also see below.

    this overlaps on macOS, eg if you want the media keys on the keyboard to work you automatically get the 'software controls' integrated into the system. these for example:

    Image
  6. kasper93 commented on Apr 9, 2026

    @kasper93
    MemberAuthor

    this overlaps on macOS, eg if you want the media keys on the keyboard to work you automatically get the 'software controls' integrated into the system. these for example:

    This overlaps on Windows too, because once you implement global media controls, naturally the media keys will be working by controlling the media controls (those on your screenshot). Those media controls will then send a command to the player. --input-media-keys is however implementing support for processing media keys commands directly by input.c, without intermediary proxy application.

    In practice without proxy application that handles key commands, mpv can get only --input-media-keys when in focus. This it implementation detail, but I think it gives intuition about the difference in mechanism.

    IOW, --media-controls is basically IPC between media player shim implemented by your operating system task bar / shell. While --input-media-keys is lower level processing of media keys/commands key presses, which you can rebind in your input.conf for example. While you can't rebind IPC commands, because they are not keys.

    Input media keys (--input-media-keys) are working on Windows, X11, Wayland, search for MP_KEY_REWIND for example. While on Linux the config option is actually not implemented, they are always mapped, they are still bindable and work. While we don't have implemented IPC mechanism like mpris, which would provide system media controls (--media-controls)

    Long story short, I think macOS is implementing --media-controls IPC, not the lower level input, as implemented on all other platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions