mirror of
https://github.com/mpv-player/mpv
synced 2025-02-18 22:06:59 +00:00
Before this commit, mouse movement events emitted a special command ("set_mouse_pos"), which was specially handled in command.c. This was once special-cased to the dvdnav and menu code, and did nothing after libmenu and dvdnav were removed. Change it so that mouse movement triggers a pseudo-key ("MOUSE_MOVE"), which then can be bound to an arbitrary command. The mouse position is now managed in input.c. A command which actually needs the mouse position can use either mp_input_get_mouse_pos() or mp_get_osd_mouse_pos() to query it. The former returns raw window-space coordinates, while the latter returns coordinates transformed to OSD- space. (Both are the same for most VOs, except vo_xv and vo_x11, which can't render OSD in window-space. These require extra code for mapping mouse position.) As of this commit, there is still nothing that uses mouse movement, so MOUSE_MOVE is mapped to "ignore" to silence warnings when moving the mouse (much like MOUSE_BTN0). Extend the concept of input sections. Allow multiple sections to be active at once, and organize them as stack. Bindings from the top of the stack are preferred to lower ones. Each section has a mouse input section associated, inside which mouse events are associated with the bindings. If the mouse pointer is outside of a section's mouse area, mouse events will be dispatched to an input section lower on the stack of active sections. This is intended for scripting, which is to be added later. Two scripts could occupy different areas of the screen without conflicting with each other. (If it turns out that this mechanism is useless, we'll just remove it again.)
189 lines
6.0 KiB
Plaintext
189 lines
6.0 KiB
Plaintext
# 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
|
|
|
|
# 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
|
|
|
|
#
|
|
# 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
|