summary refs log tree commit diff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/mpv/config162
-rw-r--r--.config/mpv/input.conf110
-rw-r--r--.config/mpv/script-opts/console.conf4
-rw-r--r--.config/mpv/script-opts/stats.conf8
-rw-r--r--.config/mpv/script-opts/thumbfast.conf8
-rw-r--r--.config/mpv/script-opts/uosc.conf5
-rw-r--r--.config/mpv/script-opts/webm.conf1
-rw-r--r--.config/mpv/scripts/yanktime.lua11
-rw-r--r--.config/mpv/scripts/yanky.lua33
9 files changed, 176 insertions, 166 deletions
diff --git a/.config/mpv/config b/.config/mpv/config
index c0c6b21..65fadaf 100644
--- a/.config/mpv/config
+++ b/.config/mpv/config
@@ -1,49 +1,54 @@
 # MPV Configuration
 
-autoload-files=no
 input-ipc-server=/run/user/1000/mpv
 script-opts=ytdl_hook-ytdl_path=/usr/bin/yt-dlp,ytdl_hook-all_formats=yes
 
+cache=yes
+demuxer-max-back-bytes=100M
+demuxer-max-bytes=100M
+demuxer-readahead-secs=20
+
 #
 # Video
 #
 vo=gpu-next
-hwdec=auto-copy
+hwdec=auto # -copy
+# gpu-context=wayland
+gpu-api=vulkan
 # framedrop=decoder+vo
 video-sync=display-resample
 # interpolation
-window-maximized=yes # prevent wayland problems with buffer resize
+window-maximized=no # prevent wayland problems with buffer resize
 
 # colour shit
-hdr-compute-peak=no
 # icc-profile=~~/B140QAN02_0.icm
 # tone-mapping=mobius
+# inverse-tone-mapping
 # target-peak=500
 
+deband=yes
+
 #
 # Audio
 #
 alang=jpn,ja,eng,en,ger,de
-volume-max=200
+volume-max=120
 audio-channels=auto-safe
-audio-file-auto=fuzzy
-#af="acompressor=ration=4,loudnorm"
-# bs2b filter
-# af-add=lavfi=[bs2b=profile=jmeier] #default,cmoy
 
 #
 # Subtitles
 #
-slang=eng,en,ger,de
+slang=eng,en,ger,de,jpn,ja
 
-sub-font=Rosario
-sub-font-size=52
+# sub-font=Rosario
+sub-font=Luciole
+# sub-scale-by-window=no
 sub-blur=0.2
 sub-border-color=0.0/0.0/0.0/1.0
 sub-border-size=3.0
 sub-color=1.0/1.0/1.0
 sub-margin-x=100
-sub-margin-y=50
+sub-margin-y=10
 sub-shadow-color=0.0/0.0/0.0/0.25
 sub-shadow-offset=0
 
@@ -53,7 +58,7 @@ sub-ass-vsfilter-blur-compat=no
 
 # Some settings fixing VOB/PGS subtitles
 # (creating blur & changing yellow subs to gray)
-sub-gauss=1.0
+sub-gauss=0.6
 sub-gray=yes
 
 #Forces showing subtitles while seeking through the video
@@ -62,30 +67,25 @@ demuxer-mkv-subtitle-preroll=yes
 #
 # OSD
 #
-osc=no
-osd-bar=no
-border=no
-#
-keep-open=yes
-stop-screensaver=yes
+osc=no # we use uosc
+osd-bar=no # we use uosc
+border=no # needed for uosc decorations
+
+osd-font=Iosevka Etoile
 cursor-autohide=100
 cursor-autohide-fs-only
-#osd-font="Iosevka Aile"
-osd-font=monospace
-# osd-font-size=15
-# osd-border-size=2
-# osd-scale-by-window=yes
-# osd-fractions=yes
-hidpi-window-scale
+keep-open=yes
+stop-screensaver=yes
 load-stats-overlay=yes
 load-osd-console=yes
 keepaspect-window=yes
-autofit-larger=80%x90%
+autofit-larger=x50%
+osd-scale-by-window=no
 
 #
 # Misc.
 #
-screenshot-directory=~/Pictures/screenshots/mpv
+screenshot-directory=~/pictures/screenshots/mpv
 screenshot-template='%tY%tm%td-%tH%tM%tS-%F-%p'
 # screenshot-format=png
 # screenshot-jpeg-quality=100
@@ -95,6 +95,8 @@ ytdl-format=bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4,best
 #
 # PROFILES
 #
+[fullscreen]
+vo=dmabuf-wayland
 
 [protocol.http]
 profile-desc="Optimized for streaming video"
@@ -102,42 +104,22 @@ glsl-shaders-clr
 title="${media-title}"
 ytdl-format=bestvideo[height<=?1080]+bestaudio/best[height<=?1080]
 demuxer-seekable-cache=yes
-demuxer-max-bytes=2048MiB
-demuxer-max-back-bytes=1024MiB
-script=~/.config/mpv/scripts/mpv-plugin-streamcache/streamcache.lua
+cache-pause=no
+hls-bitrate=max
 
 [protocol.https]
 profile=protocol.http
 
-[url.googledrive.balena]
+# [url.ytcookies]
 # profile=protocol.http
-profile-cond=not not string.match(get('path'), 'drive.google.com')
-cookies-file=~/Downloads/cookies.balena_google_drive.txt
-ytdl-raw-options=cookies=~/Downloads/cookies.balena_google_drive.txt
-
-[url.youtube]
-profile=protocol.http
-profile-cond=not not string.match(get('path'), 'youtube.com')
-# ytdl-raw-options=cookies=~/Downloads/cookies.balena_google_drive.txt
+# profile-cond=not not string.match(get('path'), 'youtube.com')
+# # ytdl-raw-options=cookies=~/Downloads/cookies.balena_google_drive.txt
 
-[hq]
+[gpuhq]
 profile-desc="Optimized for HQ rendering"
-# profile-cond=height <= 1440
+profile-cond=height <= 1440
 profile=gpu-hq
 
-[anime]
-profile-desc="Optimized for watching anime with ASS subtitles"
-sub-auto=fuzzy
-deband=yes
-# sub-border-size=2
-# sub-font-size=45
-# sub-margin-y=50
-# sub-spacing=1
-ordered-chapters-files=/tmp/mpv_ordered_chapters
-
-[cache]
-profile=protocol.http
-
 [scale]
 profile-desc="Use fancy scaling algorithms"
 glsl-shaders-clr
@@ -147,51 +129,13 @@ dscale=ewa_lanczossharp
 correct-downscaling=yes
 sigmoid-upscaling=yes
 
-# [gpuscale]
-# profile-desc="Use GLSL shaders to scale via GPU (FSRCNNX)"
-# profile=gpu-hq
-# hwdec=auto-copy
-# gpu-api=opengl
-# fbo-format=rgba16f
-# cscale=mitchell
-# dscale=mitchell
-# linear-downscaling=no
-# glsl-shaders-clr
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/FSRCNNX_x2_8-0-4-1.glsl
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/KrigBilateral.glsl
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/SSimDownscaler.glsl
-
-# [gpuscale-high]
-# profile-desc="Use GLSL shaders to scale via GPU (FSRCNNX x16)"
+# [interpolate]
+# profile-desc="Increase framecount by interpolating (with vapoursynth)"
 # profile=gpu-hq
-# hwdec=auto-copy
-# gpu-api=opengl
-# fbo-format=rgba16f
-# cscale=mitchell
-# dscale=mitchell
-# linear-downscaling=no
-# glsl-shaders-clr
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/FSRCNNX_x2_16-0-4-1.glsl
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/KrigBilateral.glsl
-# glsl-shaders=~~/shaders/default-shader-pack/shaders/SSimDownscaler.glsl
-
-[interpolate]
-profile-desc="Increase framecount by interpolating (with vapoursynth)"
-profile=gpu-hq
-vf-toggle=@vsfmt:format=yuv420p
-vf-toggle=@vsscale:scale=w=-1:h=540
-vf-toggle=@vs:vapoursynth=~~/vapoursynth/interpolate.vpy:4:4
-sws-scaler=spline
-
-[svp]
-profile-desc="[irrelevant] Integrate with SVP"
-# Everything below here only applies to this profile until another profile is declared!
-input-ipc-server=/tmp/mpvsocket     # Receives input from SVP
-hr-seek-framedrop=no                # Fixes audio desync
-resume-playback=no                  # Not compatible with SVP
-hwdec=auto-copy
-hwdec-codecs=all
-autofit-larger=100%x100%
+# vf-toggle=@vsfmt:format=yuv420p
+# vf-toggle=@vsscale:scale=w=-1:h=540
+# vf-toggle=@vs:vapoursynth=~~/vapoursynth/interpolate.vpy:4:4
+# sws-scaler=spline
 
 [reset]
 profile-desc="Reset everything to vanilla mpv"
@@ -201,7 +145,7 @@ osc=yes
 osd-bar=yes
 
 [3d]
-profile-desc="[irrelevant] Transform 3d video file to 2d"
+profile-desc="Transform 3d video file to 2d"
 vf-add='stereo3d:ab2l:ml'
 
 [skip-silence]
@@ -209,17 +153,23 @@ profile-desc="Skip over silent parts"
 af-add='silenceremove=0:0:0:-1:0.001:-45dB:0:rms'
 
 [webcam]
-profile-desc="Optimized for showing internal webcam feed"
+profile-desc="Optimized for showing real-time webcam feed"
+profile-cond=(not not string.match(get('path'), '/dev/video*'))
+load-scripts=no
 osc=no
 profile=low-latency
-# video-sync=display-desync # needed or external audio will fail
-# demuxer-lavf-o=input_format=mjpeg,video_size=848x480
-# framedrop=no
-# no-demuxer-thread
+untimed
+video-sync=display-resample
+no-demuxer-thread
 opengl-glfinish=yes
 opengl-swapinterval=0
 vf-add=hflip
 
+[webcam/local]
+profile-cond=(not not string.match(get('path'), '/dev/video0'))
+profile=webcam
+demuxer-lavf-o=input_format=mjpeg
+
 [downmix]
 ad-lavc-downmix=no
 # == pan ==
diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf
index 76b3e25..3cb6e76 100644
--- a/.config/mpv/input.conf
+++ b/.config/mpv/input.conf
@@ -3,8 +3,9 @@
 # taken from the default config
 ESC set fullscreen no
 f cycle fullscreen
-SPACE cycle pause  #! controls > pause/play
-m cycle mute  #! controls > mute
+
+SPACE cycle pause  #! pause/play
+m cycle mute       #! controls > mute
 
 # ARROW KEY BINDINGS
 LEFT  seek -10 exact
@@ -12,6 +13,11 @@ RIGHT seek  10 exact
 DOWN  seek -60 exact
 UP    seek  60 exact
 
+WHEEL_UP         seek -10 exact
+WHEEL_DOWN       seek  10 exact
+Shift+WHEEL_UP   seek -60 exact
+Shift+WHEEL_DOWN seek  60 exact
+
 h seek -10 keyframes
 j seek -60 keyframes
 k seek  60 keyframes
@@ -34,23 +40,18 @@ p playlist-prev  #! controls > playlist prev
 Ctrl+< seek -1 keyframes
 Ctrl+> seek  1 keyframes
 
-Shift+UP        add volume 10
-Shift+DOWN      add volume -10
-Alt+UP          add volume 5
-Alt+DOWN        add volume -5
-
-PGUP            add chapter 1  #! controls > chapter next
-PGDWN           add chapter -1  #! controls > chapter prev
-Shift+PGUP      seek  600 keyframes
-Shift+PGDWN     seek -600 keyframes
-Alt+PGUP        add sub-pos -1
-Alt+PGDWN       add sub-pos +1
+Shift+UP   add volume 10
+Shift+DOWN add volume -10
+Alt+UP     add volume 5
+Alt+DOWN   add volume -5
 
-WHEEL_UP seek -5
-WHEEL_DOWN seek 5
+L           add chapter 1  #! controls > chapter next
+H           add chapter -1  #! controls > chapter prev
+PGUP        add chapter 1
+PGDWN       add chapter -1
 
 a cycle audio
-A script-binding uosc/audio               #! select > audio
+A script-binding uosc/audio #! select > audio
 D cycle deinterlace
 
 v ignore
@@ -68,8 +69,10 @@ z add sub-delay -0.1                      #! delay > sub -0.1
 x add sub-delay +0.1                      #! delay > sub +0.1
 Z add audio-delay -0.1                    #! delay > audio -0.1
 X add audio-delay +0.1                    #! delay > audio +0.1
+Ctrl+z sub-step -1                        #! delay > sub-step -1
+Ctrl+x sub-step 1                         #! delay > sub-step +1
 
-Ctrl+Shift+u cycle-values sub-ass-override "force" "strip" "no"  #! sub > ass override
+u cycle-values sub-ass-override "scale" "force" "strip" "no"  #! sub > ass override
 V cycle sub-visibility  #! sub > visibility
 # Meta+s cycle sub-ass-force-margins
 
@@ -87,45 +90,66 @@ q stop
 Shift+q quit
 Q quit-watch-later  #! watch later
 
+Ctrl+BS revert-seek mark-permanent
+
 = add volume 10
 Shift+= add volume 5
 - add volume -10
 Shift+- add volume -5
 
-[ multiply speed 1/1.1          #! utils > speed > -10%
-] multiply speed 1.1            #! utils > speed > +10%
-{ multiply speed 0.5            #! utils > speed > -50%
-} multiply speed 2.0            #! utils > speed > +50%
-BS set speed 1.0                #! utils > speed > reset
+[ multiply speed 1/1.1          #! utils > speed > -10%%
+] multiply speed 1.1            #! utils > speed > +10%%
+{ multiply speed 0.5            #! utils > speed > -50%%
+} multiply speed 2.0            #! utils > speed > +50%%
+Alt+BS set speed 1.0                #! utils > speed > reset
 
 M cycle-values vf setpts=(2/1)*PTS setpts=(4/1)*PTS setpts=(1/2)*PTS setpts=(1/4)*PTS setpts=(1/8)*PTS ""
 
-L cycle-values loop-file yes no #! loop > file
-Ctrl+l ab-loop                  #! loop > A-B
+Alt+l-f cycle-values loop-file yes no #! loop > file
+Alt+l-l ab-loop                       #! loop > A-B
 
 # VAPOURSYNTH/FILTER BINDINGS
 # banding
-b cycle deband      #! fx > deband
-B vf toggle gradfun #! fx > gradfun
-# binaural correction
-H cycle-values af lavfi=[bs2b=profile=default] lavfi=[bs2b=profile=jmeier] lavfi=[bs2b=profile=cmoy] lavfi=[earwax] ""  #! fx > bs2b
-
-MBTN_RIGHT script_binding uosc/menu
-; script_binding uosc/menu
+b ignore
+B ignore
+F1 af toggle asubcut   #! fx > a:subcut
+F2 af toggle loudnorm  #! fx > a:loudnorm
+F3 af toggle earwax    #! fx > a:earwax
+F4 vf toggle bwdif     #! fx > v:deinterlace
+
+# uosc
+Ctrl+SPACE script_binding uosc/toggle-ui
+MBTN_RIGHT_DBL script_binding uosc/menu
+: script_binding uosc/menu
 Enter script_binding uosc/menu
-P script-binding uosc/playlist  #! select > playlist
+P script-binding uosc/items     #! select > playlist
 C script-binding uosc/chapters  #! select > chapters
-Tab script-binding uosc/peek-timeline
-
-Alt+w script-binding webm/display-webm-encoder #! utils > webm encoder
-Alt+e script-binding slicing/slicing_audio     #! utils > slicing > audio
-Alt+r script-binding slicing/slicing_mark      #! utils > slicing > mark
-Alt+t script-binding autodeint                 #! utils > autodeint
-Alt+y script-binding autocrop/toggle_crop      #! utils > autocrop
-Alt+m script-binding mouse_coords              #! utils > mouse coords
-g script-message contact-sheet-close; script-message playlist-view-toggle #! utils > playlist view
-c script-message playlist-view-close; script-message contact-sheet-toggle #! utils > contact sheet
-y-y script_binding yanktime/yanktime  #! utils > yanktime
+o script-binding uosc/open-file #! select > file...
+
+# various
+Alt+w script-binding webm/display-webm-encoder   #! utils > webm encoder
+Alt+s-a script-binding slicing/slicing_audio     #! utils > slicing > audio
+Alt+s-m script-binding slicing/slicing_mark      #! utils > slicing > mark
+Alt+a-d script-binding autodeint                 #! utils > autodeint
+Alt+a-c script-binding autocrop/toggle_crop      #! utils > autocrop
+Alt+m-c script-binding mouse_coords              #! utils > mouse coords
+
+# gallery
+# g script-message contact-sheet-close; script-message playlist-view-toggle #! utils > playlist view
+# c script-message playlist-view-close; script-message contact-sheet-toggle #! utils > contact sheet
+
+# yanktime
+y-y script_binding yanky/yanktime  #! utils > yanktime
+y-p script_binding yanky/yankpath  #! utils > yankpath
+y-s script_binding yanky/yanksubs  #! utils > yanksubs
+
+# sponsorblock
+Alt+b-g script_binding sponsorblock/set_segment         #! sponsorblock > set
+Alt+b-G script_binding sponsorblock/submit_segment      #! sponsorblock > submit
+Alt+b-u script_binding sponsorblock/upvote_segment      #! sponsorblock > upvote
+Alt+b-UP script_binding sponsorblock/upvote_segment     #! sponsorblock > upvote
+Alt+b-d script_binding sponsorblock/downvote_segment    #! sponsorblock > downvote
+Alt+b-DOWN script_binding sponsorblock/downvote_segment #! sponsorblock > downvote
 
 # 1 ignore
 # 2 ignore
diff --git a/.config/mpv/script-opts/console.conf b/.config/mpv/script-opts/console.conf
index ca236be..b887b61 100644
--- a/.config/mpv/script-opts/console.conf
+++ b/.config/mpv/script-opts/console.conf
@@ -1,2 +1,2 @@
-font="Iosevka Aile"
-font_size=18
+font=Iosevka Etoile
+#font_size=18
diff --git a/.config/mpv/script-opts/stats.conf b/.config/mpv/script-opts/stats.conf
index 064732f..40c1d80 100644
--- a/.config/mpv/script-opts/stats.conf
+++ b/.config/mpv/script-opts/stats.conf
@@ -1,4 +1,4 @@
-font="Iosevka Aile"
-font_mono="Iosevka Aile"
-font_size=8
-border_size=0.6
+font=Iosevka Etoile
+# font_mono=monospace
+# font_size=8
+# border_size=0.6
diff --git a/.config/mpv/script-opts/thumbfast.conf b/.config/mpv/script-opts/thumbfast.conf
new file mode 100644
index 0000000..2284440
--- /dev/null
+++ b/.config/mpv/script-opts/thumbfast.conf
@@ -0,0 +1,8 @@
+# Apply tone-mapping, no to disable
+tone_mapping=auto
+
+# Enable on network playback
+network=yes
+
+# Enable hardware decoding
+hwdec=yes
diff --git a/.config/mpv/script-opts/uosc.conf b/.config/mpv/script-opts/uosc.conf
new file mode 100644
index 0000000..07ada16
--- /dev/null
+++ b/.config/mpv/script-opts/uosc.conf
@@ -0,0 +1,5 @@
+timeline_size_max=32
+controls_size=24
+volume_size=32
+top_bar_size=32
+pause_indicator=none
diff --git a/.config/mpv/script-opts/webm.conf b/.config/mpv/script-opts/webm.conf
new file mode 100644
index 0000000..73b509c
--- /dev/null
+++ b/.config/mpv/script-opts/webm.conf
@@ -0,0 +1 @@
+output_format=av1
diff --git a/.config/mpv/scripts/yanktime.lua b/.config/mpv/scripts/yanktime.lua
deleted file mode 100644
index 77b856e..0000000
--- a/.config/mpv/scripts/yanktime.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-local mp = require('mp')
-
-function yanktime()
-    local s = mp.get_property_native('playback-time')
-    local ts = string.format("%.2d:%.2d:%.2d.%.3d", s/(60*60), s/60%60, s%60, (s%1)*1000)
-    mp.commandv('run', 'wl-copy', ts)
-    mp.msg.info('playback-time yanked: ' .. ts)
-    mp.osd_message('playback-time yanked: ' .. ts)
-end
-
-mp.add_key_binding("y-y", mp.get_script_name(), yanktime)
diff --git a/.config/mpv/scripts/yanky.lua b/.config/mpv/scripts/yanky.lua
new file mode 100644
index 0000000..ded6ba0
--- /dev/null
+++ b/.config/mpv/scripts/yanky.lua
@@ -0,0 +1,33 @@
+local mp = require("mp")
+
+function yank(payload)
+	mp.commandv("run", "wl-copy", payload)
+	mp.msg.info("yanked: " .. payload)
+	mp.osd_message("yanked: " .. payload)
+end
+
+function yankproperty(prop)
+	yank(mp.get_property_native(prop))
+end
+
+function yankpath()
+	local path = mp.get_property_native("path")
+	local cwd = mp.get_property_native("working-directory")
+	yank(require("mp.utils").join_path(cwd, path))
+end
+
+function yanktime()
+	local s = mp.get_property_native("playback-time")
+	local ts = string.format("%.2d:%.2d:%.2d.%.3d", s / (60 * 60), s / 60 % 60, s % 60, (s % 1) * 1000)
+	yank(ts)
+end
+
+function yanksubs()
+	local subText = mp.get_property("sub-text")
+	-- local secondarySubText = mp.get_property("secondary-sub-text")
+	yank(subText)
+end
+
+mp.add_key_binding("y-t", "yanktime", yanktime)
+mp.add_key_binding("y-p", "yankpath", yankpath)
+mp.add_key_binding("y-s", "yanksubs", yanksubs)