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)