diff --git a/etc/input.conf b/etc/input.conf index e18dbc5383..9c50ddad1a 100644 --- a/etc/input.conf +++ b/etc/input.conf @@ -27,171 +27,179 @@ # 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 +# 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: this file is baked into the mpv binary, and internally, +# entries are uncommented and added as default bindings. Lines that have a +# space after the '#' are ignored. + +#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 +#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 -RIGHT seek 10 -LEFT seek -10 -UP seek 60 -DOWN seek -60 +## 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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +# ? 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 diff --git a/mpvcore/input/input.c b/mpvcore/input/input.c index 76d157afac..b89b6eecf2 100644 --- a/mpvcore/input/input.c +++ b/mpvcore/input/input.c @@ -2169,7 +2169,15 @@ struct input_ctx *mp_input_init(struct MPOpts *opts) mp_input_enable_section(ictx, NULL, 0); - parse_config(ictx, true, bstr0(builtin_input_conf), "", NULL); + // "Uncomment" the default key bindings in etc/input.conf and add them. + // All lines that do not start with '# ' are parsed. + bstr builtin = bstr0(builtin_input_conf); + while (builtin.len) { + bstr line = bstr_getline(builtin, &builtin); + bstr_eatstart0(&line, "#"); + if (!bstr_startswith0(line, " ")) + parse_config(ictx, true, line, "", NULL); + } #ifndef __MINGW32__ long ret = pipe(ictx->wakeup_pipe);