1 change-list script-opts append image_positioning-drag_to_pan_margin=200
2 change-list script-opts append ruler-exit_bindings=8
3 change-list script-opts append ruler-line_color=FF
4 change-list script-opts append ruler-scale=25
5 change-list script-opts append ruler-max_size=20,20

SPACE repeatable playlist-next
alt+SPACE repeatable playlist-prev

UP ignore
DOWN ignore
LEFT repeatable playlist-prev
RIGHT repeatable playlist-next

# simple reminder of default bindings
#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

# mouse-centric bindings
MBTN_RIGHT script-binding drag-to-pan
MBTN_LEFT  script-binding pan-follows-cursor
MBTN_LEFT_DBL ignore
WHEEL_UP   script-message cursor-centric-zoom 0.1
WHEEL_DOWN script-message cursor-centric-zoom -0.1

# panning with the keyboard:
# pan-image takes the following arguments
# pan-image AXIS AMOUNT ZOOM_INVARIANT IMAGE_CONSTRAINED
#            ^            ^                  ^
#          x or y         |                  |
#                         |                  |
#   if yes, will pan by the same         if yes, stops panning if the image
#     amount regardless of zoom             would go outside of the window

ctrl+down  repeatable script-message pan-image y -0.1 yes yes
ctrl+up    repeatable script-message pan-image y +0.1 yes yes
ctrl+right repeatable script-message pan-image x -0.1 yes yes
ctrl+left  repeatable script-message pan-image x +0.1 yes yes

# now with more precision
alt+down   repeatable script-message pan-image y -0.01 yes yes
alt+up     repeatable script-message pan-image y +0.01 yes yes
alt+right  repeatable script-message pan-image x -0.01 yes yes
alt+left   repeatable script-message pan-image x +0.01 yes yes

# replace at will with h,j,k,l if you prefer vim-style bindings

# on a trackpad you may want to use these
#WHEEL_UP    repeatable script-message pan-image y -0.02 yes yes
#WHEEL_DOWN  repeatable script-message pan-image y +0.02 yes yes
#WHEEL_LEFT  repeatable script-message pan-image x -0.02 yes yes
#WHEEL_RIGHT repeatable script-message pan-image x +0.02 yes yes

# align the border of the image to the border of the window
# align-border takes the following arguments:
# align-border ALIGN_X ALIGN_Y
# any value for ALIGN_* is accepted, -1 and 1 map to the border of the window
ctrl+shift+right script-message align-border -1 ""
ctrl+shift+left  script-message align-border 1 ""
ctrl+shift+down  script-message align-border "" -1
ctrl+shift+up    script-message align-border "" 1

# reset the image
ctrl+0  no-osd set video-pan-x 0; no-osd set video-pan-y 0; no-osd set video-zoom 0

+ add video-zoom 0.5
- add video-zoom -0.5; script-message reset-pan-if-visible
= no-osd set video-zoom 0; script-message reset-pan-if-visible

e script-message equalizer-toggle
alt+e script-message equalizer-reset

h no-osd vf toggle hflip; show-text "Horizontal flip"
v no-osd vf toggle vflip; show-text "Vertical flip"

r script-message rotate-video 90; show-text "Clockwise rotation"
R script-message rotate-video -90; show-text "Counter-clockwise rotation"
alt+r no-osd set video-rotate 0; show-text "Reset rotation"

d script-message ruler

# Toggling between pixel-exact reproduction and interpolation
a cycle-values scale nearest ewa_lanczossharp

# Toggle color management on or off
c cycle icc-profile-auto

# Screenshot of the window output
S screenshot window

# Toggle aspect ratio information on and off
A cycle-values video-aspect-override "-1" "no"

p script-message force-print-filename

# ADVANCED: you can define bindings that belong to a "section" (named "image-viewer" here) like so:
#alt+SPACE {image-viewer} repeatable playlist-prev
#SPACE     {image-viewer} repeatable playlist-next
# to load them conditionally with a command. See scripts-opts/image_viewer.conf for how you can do this
