# mpv input control file
#
# You are able to redefine default keyboard/joystick/mouse/LIRC bindings, or
# add new ones here.
# See DOCS/man/en/input.rst for possible commands that can be bound.
# Also see mpv --input-cmdlist for other possible options.
# The file should be placed in the $HOME/.mpv directory.
#
# mpv --input-test --pause dummy.mkv can be used to test which commands keys are
# bound to.
#
# If you wish to unbind a key, bind it to the 'ignore' command:
#   KEY ignore
#
# Note that merely removing default key bindings from this file won't remove
# the default bindings mpv was compiled with, unless
#   --no-input-default-bindings
# is specified.
#
# Lines starting with # are comments. Use SHARP to assign the # key.
#
# 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
# modifiers Shift, Ctrl, Alt and Meta, but note that currently reading
# key combinations is only supported through the video windows of certain
# output drivers (not in output windows of other drivers or in a terminal).

MOUSE_BTN0 ignore                       # don't do anything
MOUSE_BTN0_DBL cycle fullscreen         # toggle fullscreen on/off
MOUSE_BTN2 cycle pause                  # toggle pause on/off
MOUSE_BTN3 seek 10
MOUSE_BTN4 seek -10
MOUSE_BTN5 add volume 1
MOUSE_BTN6 add volume -1

# 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
AXIS_UP    seek 10
AXIS_DOWN  seek -10
AXIS_LEFT  add volume 1
AXIS_RIGHT add volume -1

# Seek units are in seconds, but note that these are limited by keyframes
RIGHT seek  10
LEFT  seek -10
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
PGUP seek 600
PGDWN seek -600
+ add audio-delay 0.100                 # this changes audio/video sync
- add audio-delay -0.100
[ speed_mult 0.9091                     # scale playback speed
] speed_mult 1.1
{ speed_mult 0.5
} speed_mult 2.0
BS set speed 1.0                        # reset speed to normal
q quit
Q quit_watch_later
q {encode} quit
ESC quit
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 force               # skip to next file or quit
< playlist_prev                         # skip to previous file
o osd                                   # cycle through OSD mode
I show_text "${filename}"               # display filename in osd
P show_progress
z add sub-delay -0.1                    # subtract 100 ms delay from subs
x add sub-delay +0.1                    # add
9 add volume -1
/ add volume -1
0 add volume 1
* add volume 1
( add balance -0.1                      # adjust audio balance in favor of left
) add balance 0.1                       #                                  right
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
d cycle framedrop                       # cycle through framedrop modes
# toggle deinterlacer; requires either vdpau output, -vf yadif or kerndeint
D cycle deinterlace
c cycle colormatrix
# Next 3 currently only work with --no-ass
r add sub-pos -1                        # move subtitles up
t add sub-pos +1                        #                down
v cycle sub-visibility
# stretch SSA/ASS subtitles with anamorphic videos to match historical
V cycle ass-vsfilter-aspect-compat
j cycle sub                             # cycle through subtitles
J cycle sub down                        # ...backwards
F cycle sub-forced-only
SHARP cycle audio                       # switch audio streams
_ cycle video
TAB cycle program
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
Alt+s screenshot - each-frame           # automatically screenshot every frame
w add panscan -0.1                      # zoom out with -panscan 0 -fs
e add panscan +0.1                      #      in
POWER quit
MENU cycle osd
PLAY cycle pause
PAUSE cycle pause
PLAYPAUSE cycle pause
STOP quit
FORWARD seek 60
REWIND seek -60
NEXT playlist_next
PREV playlist_prev
VOLUME_UP add volume 1
VOLUME_DOWN add volume -1
MUTE cycle mute
CLOSE_WIN quit
CLOSE_WIN {encode} quit
! add chapter -1                        # skip to previous chapter
@ add chapter 1                         #         next
E cycle edition                         # next edition
A cycle angle
U stop

l cycle quvi-format 1
L cycle quvi-format -1

# TV
h tv_step_channel 1
k tv_step_channel -1
n tv_step_norm
u tv_step_chanlist

# Apple Remote section
AR_PLAY cycle pause
AR_PLAY_HOLD quit
AR_CENTER cycle pause
AR_CENTER_HOLD quit
AR_NEXT seek 10
AR_NEXT_HOLD seek 120
AR_PREV seek -10
AR_PREV_HOLD seek -120
AR_MENU show_progress
AR_MENU_HOLD cycle mute
AR_VUP add volume 1
AR_VUP_HOLD add chapter 1
AR_VDOWN add volume -1
AR_VDOWN_HOLD add chapter -1

# Media Keys section
MK_PLAY cycle pause
MK_PREV playlist_prev
MK_NEXT playlist_next

# Joystick section
# WARNING: joystick support has to be explicitly enabled at
#          compiletime with --enable-joystick
#

JOY_AXIS0_PLUS seek 10
JOY_AXIS0_MINUS seek -10
JOY_AXIS1_MINUS seek 60
JOY_AXIS1_PLUS seek -60
JOY_BTN0 cycle pause
JOY_BTN1 cycle osd
JOY_BTN2 add volume 1
JOY_BTN3 add volume -1

# Mostly for internal purposes
MOUSE_MOVE ignore
MOUSE_LEAVE ignore

#
# Not assigned by default
# (not an exhaustive list of unbound commands)
#

#? add sub-scale +0.1                   # increase subtitle font size
#? add sub-scale -0.1                   # decrease subtitle font size
#? sub_step -1                          # immediately display next subtitle
#? sub_step +1                          #                     previous
