diff options
Diffstat (limited to '.config')
| -rw-r--r-- | .config/mpv/config | 162 | ||||
| -rw-r--r-- | .config/mpv/input.conf | 110 | ||||
| -rw-r--r-- | .config/mpv/script-opts/console.conf | 4 | ||||
| -rw-r--r-- | .config/mpv/script-opts/stats.conf | 8 | ||||
| -rw-r--r-- | .config/mpv/script-opts/thumbfast.conf | 8 | ||||
| -rw-r--r-- | .config/mpv/script-opts/uosc.conf | 5 | ||||
| -rw-r--r-- | .config/mpv/script-opts/webm.conf | 1 | ||||
| -rw-r--r-- | .config/mpv/scripts/yanktime.lua | 11 | ||||
| -rw-r--r-- | .config/mpv/scripts/yanky.lua | 33 |
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) |