mpv keybindings

Location of user-defined bindings: ~/.config/mpv/input.conf

Lines starting with # are comments. Use SHARP to assign the # key.

Copy this file and uncomment and edit the bindings you want to change.

List of commands and further details: DOCS/man/input.rst

List of special keys: --input-keylist

Keybindings testing mode: mpv --input-test --force-window --idle

Use 'ignore' to unbind a key fully (e.g. 'ctrl+a ignore').

Strings need to be quoted and escaped:

KEY show-text "This is a single backslash: \\ and a quote: \" !"

You can use modifier-key combinations like Shift+Left or Ctrl+Alt+x with

the modifiers Shift, Ctrl, Alt and Meta (may not work on the terminal).

The default keybindings are hardcoded into the mpv binary.

You can disable them completely with: --no-input-default-bindings

Developer note:

On compilation, this file is baked into the mpv binary, and all lines are

uncommented (unless '#' is followed by a space) - thus this file defines the

default key bindings.

If this is enabled, treat all the following bindings as default.

default-bindings start

MBTN_LEFT ignore # don't do anything

MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen on/off

MBTN_RIGHT cycle pause # toggle pause on/off

MBTN_BACK playlist-prev

MBTN_FORWARD playlist-next

Mouse wheels, touchpad or other input devices that have axes

if the input devices supports precise scrolling it will also scale the

numeric value accordingly

WHEEL_UP seek 10

WHEEL_DOWN seek -10

WHEEL_LEFT add volume -2

WHEEL_RIGHT add volume 2

Seek units are in seconds, but note that these are limited by keyframes

RIGHT seek 5

LEFT seek -5

UP seek 60

DOWN seek -60

Do smaller, always exact (non-keyframe-limited), seeks with shift.

Don't show them on the OSD (no-osd).

Shift+RIGHT no-osd seek 1 exact

Shift+LEFT no-osd seek -1 exact

Shift+UP no-osd seek 5 exact

Shift+DOWN no-osd seek -5 exact

Skip to previous/next subtitle (subject to some restrictions; see manpage)

Ctrl+LEFT no-osd sub-seek -1

Ctrl+RIGHT no-osd sub-seek 1

Adjust timing to previous/next subtitle

Ctrl+Shift+LEFT sub-step -1

Ctrl+Shift+RIGHT sub-step 1

Move video rectangle

Alt+left add video-pan-x 0.1

Alt+right add video-pan-x -0.1

Alt+up add video-pan-y 0.1

Alt+down add video-pan-y -0.1

Zoom/unzoom video

Alt++ add video-zoom 0.1

Alt+- add video-zoom -0.1

Reset video zoom/pan settings

Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0

PGUP add chapter 1 # skip to next chapter

PGDWN add chapter -1 # skip to previous chapter

Shift+PGUP seek 600

Shift+PGDWN seek -600

[ multiply speed 1/1.1 # scale playback speed

] multiply speed 1.1

{ multiply speed 0.5

} multiply speed 2.0

BS set speed 1.0 # reset speed to normal

Shift+BS revert-seek # undo previous (or marked) seek

Shift+Ctrl+BS revert-seek mark # mark position for revert-seek

q quit

Q quit-watch-later

q {encode} quit 4

ESC set fullscreen no

ESC {encode} quit 4

p cycle pause # toggle pause/playback mode

. frame-step # advance one frame and pause

, frame-back-step # go back by one frame and pause

SPACE cycle pause

> playlist-next # skip to next file

ENTER playlist-next # skip to next file

< playlist-prev # skip to previous file

O no-osd cycle-values osd-level 3 1 # cycle through OSD mode

o show-progress

P show-progress

i script-binding stats/display-stats

I script-binding stats/display-stats-toggle

` script-binding console/enable

z add sub-delay -0.1 # subtract 100 ms delay from subs

Z add sub-delay +0.1 # add

x add sub-delay +0.1 # same as previous binding (discouraged)

ctrl++ add audio-delay 0.100 # this changes audio/video sync

ctrl+- add audio-delay -0.100

Shift+g add sub-scale +0.1 # increase subtitle font size

Shift+f add sub-scale -0.1 # decrease subtitle font size

9 add volume -2

/ add volume -2

0 add volume 2

* add volume 2

m cycle mute

1 add contrast -1

2 add contrast 1

3 add brightness -1

4 add brightness 1

5 add gamma -1

6 add gamma 1

7 add saturation -1

8 add saturation 1

Alt+0 set window-scale 0.5

Alt+1 set window-scale 1.0

Alt+2 set window-scale 2.0

toggle deinterlacer (automatically inserts or removes required filter)

d cycle deinterlace

r add sub-pos -1 # move subtitles up

R add sub-pos +1 # down

t add sub-pos +1 # same as previous binding (discouraged)

v cycle sub-visibility

stretch SSA/ASS subtitles with anamorphic videos to match historical

V cycle sub-ass-vsfilter-aspect-compat

switch between applying no style overrides to SSA/ASS subtitles, and

overriding them almost completely with the normal subtitle style

u cycle-values sub-ass-override "force" "no"

j cycle sub # cycle through subtitles

J cycle sub down # ...backwards

SHARP cycle audio # switch audio streams

_ cycle video

T cycle ontop # toggle video window ontop of other windows

f cycle fullscreen # toggle fullscreen

s screenshot # take a screenshot

S screenshot video # ...without subtitles

Ctrl+s screenshot window # ...with subtitles and OSD, and scaled

Alt+s screenshot each-frame # automatically screenshot every frame

w add panscan -0.1 # zoom out with -panscan 0 -fs

W add panscan +0.1 # in

e add panscan +0.1 # same as previous binding (discouraged)

cycle video aspect ratios; "-1" is the container aspect

A cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1"

POWER quit

PLAY cycle pause

PAUSE cycle pause

PLAYPAUSE cycle pause

PLAYONLY set pause no

PAUSEONLY set pause yes

STOP quit

FORWARD seek 60

REWIND seek -60

NEXT playlist-next

PREV playlist-prev

VOLUME_UP add volume 2

VOLUME_DOWN add volume -2

MUTE cycle mute

CLOSE_WIN quit

CLOSE_WIN {encode} quit 4

ctrl+w quit

E cycle edition # next edition

l ab-loop # Set/clear A-B loop points

L cycle-values loop-file "inf" "no" # toggle infinite looping

ctrl+c quit 4

DEL script-binding osc/visibility # cycle OSC display

ctrl+h cycle-values hwdec "auto" "no" # cycle hardware decoding

F8 show_text ${playlist} # show playlist

F9 show_text ${track-list} # show list of audio/sub streams

Legacy bindings (may or may not be removed in the future)

! add chapter -1 # skip to previous chapter

@ add chapter 1 # next

Not assigned by default

(not an exhaustive list of unbound commands)

? cycle angle # switch DVD/Bluray angle

? cycle sub-forced-only # toggle DVD forced subs

? cycle program # cycle transport stream programs

? stop # stop playback (quit or enter idle mode)