mirror of https://github.com/mpv-player/mpv
263 lines
8.1 KiB
ReStructuredText
263 lines
8.1 KiB
ReStructuredText
ON SCREEN CONTROLLER
|
|
====================
|
|
|
|
The On Screen Controller (short: OSC) is a minimal GUI integrated with mpv to
|
|
offer basic mouse-controllability. It is intended to make interaction easier
|
|
for new users and to enable precise and direct seeking.
|
|
|
|
The OSC is enabled by default if mpv was compiled with Lua support. It can be
|
|
disabled entirely using the ``--osc=no`` option.
|
|
|
|
Using the OSC
|
|
-------------
|
|
|
|
By default, the OSC will show up whenever the mouse is moved inside the
|
|
player window and will hide if the mouse is not moved outside the OSC for
|
|
0.5 seconds or if the mouse leaves the window.
|
|
|
|
The Interface
|
|
~~~~~~~~~~~~~
|
|
|
|
::
|
|
|
|
+---------+----------+----------------------------+-------------+
|
|
| pl prev | pl next | title | cache |
|
|
+------+--+---+------+---------+-----------+------+-------+-----+
|
|
| play | skip | skip | time | seekbar | time | audio | sub |
|
|
| | back | frwd | elapsed | | left | | |
|
|
+------+------+------+---------+-----------+------+-------+-----+
|
|
|
|
|
|
pl prev
|
|
============= ================================================
|
|
left-click play previous file in playlist
|
|
right-click show playlist
|
|
shift+L-click show playlist
|
|
============= ================================================
|
|
|
|
pl next
|
|
============= ================================================
|
|
left-click play next file in playlist
|
|
right-click show playlist
|
|
shift+L-click show playlist
|
|
============= ================================================
|
|
|
|
title
|
|
| Displays current media-title or filename
|
|
|
|
============= ================================================
|
|
left-click show playlist position and length and full title
|
|
right-click show filename
|
|
============= ================================================
|
|
|
|
cache
|
|
| Shows current cache fill status
|
|
|
|
play
|
|
============= ================================================
|
|
left-click toggle play/pause
|
|
============= ================================================
|
|
|
|
skip back
|
|
============= ================================================
|
|
left-click go to beginning of chapter / previous chapter
|
|
right-click show chapters
|
|
shift+L-click show chapters
|
|
============= ================================================
|
|
|
|
skip frwd
|
|
============= ================================================
|
|
left-click go to next chapter
|
|
right-click show chapters
|
|
shift+L-click show chapters
|
|
============= ================================================
|
|
|
|
time elapsed
|
|
| Shows current playback position timestamp
|
|
|
|
============= ================================================
|
|
left-click toggle displaying timecodes with milliseconds
|
|
============= ================================================
|
|
|
|
seekbar
|
|
| Indicates current playback position and position of chapters
|
|
|
|
============= ================================================
|
|
left-click seek to position
|
|
============= ================================================
|
|
|
|
time left
|
|
| Shows remaining playback time timestamp
|
|
|
|
============= ================================================
|
|
left-click toggle between total and remaining time
|
|
============= ================================================
|
|
|
|
audio and sub
|
|
| Displays selected track and amount of available tracks
|
|
|
|
============= ================================================
|
|
left-click cycle audio/sub tracks forward
|
|
right-click cycle audio/sub tracks backwards
|
|
shift+L-click show available audio/sub tracks
|
|
============= ================================================
|
|
|
|
Key Bindings
|
|
~~~~~~~~~~~~
|
|
|
|
These key bindings are active by default if nothing else is already bound to
|
|
these keys. In case of collision, the function needs to be bound to a
|
|
different key. See the `Script Commands`_ section.
|
|
|
|
============= ================================================
|
|
del Cycles visibility between never / auto (mouse-move) / always
|
|
============= ================================================
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
The OSC offers limited configuration through a config file
|
|
``lua-settings/osc.conf`` placed in mpv's user dir and through the
|
|
``--script-opts`` command-line option. Options provided through the command-line
|
|
will override those from the config file.
|
|
|
|
Config Syntax
|
|
~~~~~~~~~~~~~
|
|
|
|
The config file must exactly follow the following syntax::
|
|
|
|
# this is a comment
|
|
optionA=value1
|
|
optionB=value2
|
|
|
|
``#`` can only be used at the beginning of a line and there may be no
|
|
spaces around the ``=`` or anywhere else.
|
|
|
|
Command-line Syntax
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
To avoid collisions with other scripts, all options need to be prefixed with
|
|
``osc-``.
|
|
|
|
Example::
|
|
|
|
--script-opts=osc-optionA=value1,osc-optionB=value2
|
|
|
|
|
|
Configurable Options
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``layout``
|
|
| Default: bottombar
|
|
| The layout for the OSC. Currently available are: box, slimbox,
|
|
bottombar and topbar. Default pre-0.21.0 was 'box'.
|
|
|
|
``seekbarstyle``
|
|
| Default: bar
|
|
| Sets the style of the seekbar, slider (diamond marker) or bar (fill).
|
|
Default pre-0.21.0 was 'slider'.
|
|
|
|
``deadzonesize``
|
|
| Default: 1.0
|
|
| Size of the deadzone. The deadzone is an area that makes the mouse act
|
|
like leaving the window. Movement there won't make the OSC show up and
|
|
it will hide immediately if the mouse enters it. The deadzone starts
|
|
at the window border opposite to the OSC and the size controls how much
|
|
of the window it will span. Values between 0.0 and 1.0, where 0 means the
|
|
OSC will always popup with mouse movement in the window, and 1 means the
|
|
OSC will only show up when the mouse hovers it. Default pre-0.21.0 was 0.
|
|
|
|
``minmousemove``
|
|
| Default: 0
|
|
| Minimum amount of pixels the mouse has to move between ticks to make
|
|
the OSC show up. Default pre-0.21.0 was 3.
|
|
|
|
``showwindowed``
|
|
| Default: yes
|
|
| Enable the OSC when windowed
|
|
|
|
``showfullscreen``
|
|
| Default: yes
|
|
| Enable the OSC when fullscreen
|
|
|
|
``scalewindowed``
|
|
| Default: 1.5
|
|
| Scale factor of the OSC when windowed
|
|
|
|
``scalefullscreen``
|
|
| Default: 1.5
|
|
| Scale factor of the OSC when fullscreen
|
|
|
|
``scaleforcedwindow``
|
|
| Default: 2.0
|
|
| Scale factor of the OSC when rendered on a forced (dummy) window
|
|
|
|
``vidscale``
|
|
| Default: yes
|
|
| Scale the OSC with the video
|
|
| ``no`` tries to keep the OSC size constant as much as the window size allows
|
|
|
|
``valign``
|
|
| Default: 0.8
|
|
| Vertical alignment, -1 (top) to 1 (bottom)
|
|
|
|
``halign``
|
|
| Default: 0.0
|
|
| Horizontal alignment, -1 (left) to 1 (right)
|
|
|
|
``barmargin``
|
|
| Default: 0
|
|
| Margin from bottom (bottombar) or top (topbar), in pixels
|
|
|
|
``boxalpha``
|
|
| Default: 80
|
|
| Alpha of the background box, 0 (opaque) to 255 (fully transparent)
|
|
|
|
``hidetimeout``
|
|
| Default: 500
|
|
| Duration in ms until the OSC hides if no mouse movement, must not be
|
|
negative
|
|
|
|
``fadeduration``
|
|
| Default: 200
|
|
| Duration of fade out in ms, 0 = no fade
|
|
|
|
``tooltipborder``
|
|
| Default: 1
|
|
| Size of the tooltip outline when using bottombar or topbar layouts
|
|
|
|
``timetotal``
|
|
| Default: no
|
|
| Show total time instead of time remaining
|
|
|
|
``timems``
|
|
| Default: no
|
|
| Display timecodes with milliseconds
|
|
|
|
``visibility``
|
|
| Default: auto (auto hide/show on mouse move)
|
|
| Also supports ``never`` and ``always``
|
|
|
|
Script Commands
|
|
~~~~~~~~~~~~~~~
|
|
|
|
The OSC script listens to certain script commands. These commands can bound
|
|
in ``input.conf``, or sent by other scripts.
|
|
|
|
``osc-message``
|
|
Show a message on screen using the OSC. First argument is the message,
|
|
second the duration in seconds.
|
|
|
|
``osc-visibility``
|
|
Controls visibility mode ``never`` / ``auto`` (on mouse move) / ``always``
|
|
and also ``cycle`` to cycle between the modes
|
|
|
|
Example
|
|
|
|
You could put this into ``input.conf`` to hide the OSC with the ``a`` key and
|
|
to set auto mode (the default) with ``b``::
|
|
|
|
a script-message osc-visibility never
|
|
b script-message osc-visibility auto
|
|
|