# 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). # All lines in this file are commented. If you want to remap a key, copy the # file to ~/.mpv/input.conf, and uncomment and edit the binding you want to # change. # Developer note: # etc/input.conf from the mpv source tree is baked into the mpv binary, with # all entries magically uncommented and parsed on initialization. Thus, this # file defines the mpv default key bindings. If this file is read as normal # config file, all lines starting with '#' are treated as comments (and this # file, if unedited, doesn't define any bindings). # Lines that have a space after the '#' are always ignored as real comments. #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 seek 5 #AXIS_RIGHT seek -5 ## Seek units are in seconds, but note that these are limited by keyframes k seek 6 - exact j seek -5 - exact Ctrl+j seek 12 - exact Ctrl+k seek -11 - exact j seek -5 - exact Shift+K seek 2 - exact Shift+J seek -3 - exact l seek 60 - exact h seek -60 - exact Shift+L seek 300 - exact Shift+H seek -300 - exact LEFT seek -6 - exact RIGHT seek 5 - exact UP seek 60 - exact DOWN seek -60 - exact PGUP seek 300 - exact PGDWN seek -300 - exact FORWARD seek 300 - exact REWIND seek -300 - exact Ctrl+l ab_loop # 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). # 2 no-osd seek 1 - exact # 1 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 [ multiply speed 0.9091 # scale playback speed ] multiply speed 1.1 1 multiply speed 0.5 2 multiply speed 2.0 3 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 n playlist_next # skip to next file #ENTER playlist_next force # skip to next file or quit #, playlist_prev # skip to previous file . script-binding progressbar/step-forward , script-binding progressbar/step-backward p playlist_prev # skip to previous file # o osd-bar cycle_values osd-level 3 1 # cycle through OSD mode # display playlist pos and filename in osd I show_text "[${playlist-pos} / ${playlist-count}] ${filename}" #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 # 4 add contrast -10 # 5 add contrast 10 # 6 add brightness -10 # 7 add brightness 10 # 8 add gamma -1 # 9 add gamma 1 8 add saturation -10 9 add saturation 10 #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 s 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 # f ignore #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 7 cycle-values loop "inf" "no" # toggle infinite looping F1 run "/bin/sh" "-c" "readlink -f '${path}' | xclip -i" Shift+F1 run "/bin/sh" "-c" "readlink -f '${working-directory} | xclip -i'" # clone F2 run "/bin/sh" "-c" "mpv '${path}'" Shift+F2 quit_watch_later; run "/bin/sh" "-c" "gvim -f ~/.config/mpv ; mpv '${path}'" ; F4 set pause yes; run "/bin/sh" "-c" "gvim -f -geom 50x10+400+300 -c 'set guioptions-=m' '${path}.tags'"; set pause no #A cycle angle #U stop # 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 # # Rotate by 90 degrees counterclockwise r no-osd vf add rotate=270 # Rotate by 90 degrees clockwise Shift+R no-osd vf add rotate=90