# New Start: A modern Arch workflow built with an emphasis on functionality.
# Copyright (C) 2017 Donovan Glover

######################################################################
# Legacy Commands - These are here to serve as an optional way to do
# something, although you should really use the home row instead.
######################################################################

ESC set fullscreen no   # Close mpv
ESC {encode} quit 4     # Same as above

m cycle mute        # Toggle mute
p cycle pause       # Pause / unpause
SPACE cycle pause   # Same as above

######################################################################
# Core Commands - These are all the commands that you use with mpv
# available directly from the home row.
######################################################################

# We use jkhl to mimic movement functionality in vim
k seek  1   # Go forward a small bit
j seek -1   # Go back a small bit
l seek  5   # Go forward a large bit
h seek -5   # Go back a large bit

# We use ; for pause and : for mute since we're more likely to pause
# a video than to mute it (both also act as toggles)
; cycle pause   # Toggle pause
: cycle mute    # Toggle mute

# f stands for full-screen and d stands for information (similar to feh)
f cycle fullscreen  # Toggle fullscreen
d show-progress     # Show your position in the video

# S and s clearly refer to screenshot in this context, the former asserting a bit
# more control in how it does things
s async screenshot          # Take a screenshot of the current frame
S async screenshot video    # Take a screenshot without the subtitles

# J and K to change videos (mimicing Vimium and changing tabs)
J playlist-prev     # Open the previous video
K playlist-next     # Open the next video

# H and L to change sections (mimicing Vimimum and moving through history)
H add chapter -1    # Go to the previous section in the video
L add chapter 1     # Go to the next section in the video

# For precise control when viewing a video, we use F to go one 'f'rame forward
# and D to go one frame back (right next to the F key)
F frame-step        # Move forward one frame and pause the video
D frame-back-step   # Go back one frame and pause the video

# Similar to ;/:, a is used to cycle through the 'a'udio and A for subtitles
a cycle audio   # Switch audio streams (e.g. English to French)
A cycle sub     # Switch between subtitles

# We use v/V and n/N here to change the speed and volume since they're directly
# below the f and j keys and we don't need to change them as much.
v add speed 0.25    # Increase video speed by 0.25
V add speed -0.25   # Decrease video speed by 0.25
n add volume 5      # Increase mpv volume by 5
N add volume -5     # Decrease mpv volume by 5

# We use g to turn subtiles on and off; it's our last utility key and works
# well for general-purpose things. G plays the current video as a loop.
g cycle sub-visibility                  # Toggle subtitles
G cycle-values loop-file "inf" "no"     # Repeat the current video (not playlist)

# All of the middle keys are taken, as well as the v and n keys. We make use of
# the standard q key to close mpv.
q quit              # Close mpv
q {encode} quit 4   # Same as above

# "r" stands for resize
r set window-scale 2.0
R set window-scale 1.0

# vim:ft=dosini