commit 91031493ecab13b82ba153cc8f925f169d67b5ec parent c7d00fdcb5aaedaaac04b594c6e4a990ac65ddeb Author: hhvn <dev@hhvn.uk> Date: Sun, 27 Nov 2022 18:33:00 +0000 UOSC ui for mpv Diffstat:
27 files changed, 273 insertions(+), 2 deletions(-)
diff --git a/.config/mpv/fonts/uosc_icons.otf b/.config/mpv/fonts/uosc_icons.otf @@ -0,0 +1 @@ +../uosc/fonts/uosc_icons.otf +\ No newline at end of file diff --git a/.config/mpv/fonts/uosc_textures.ttf b/.config/mpv/fonts/uosc_textures.ttf @@ -0,0 +1 @@ +../uosc/fonts/uosc_textures.ttf +\ No newline at end of file diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf @@ -4,11 +4,32 @@ no-sub no-audio-display volume-max=175 +profile=low-latency +scale=bilinear +cscale=bilinear +dscale=bilinear scale-antiring=0 cscale-antiring=0 dither-depth=no correct-downscaling=no sigmoid-upscaling=no deband=no -hwdec=vaapi -profile=low-latency +hwdec=auto + +vd-lavc-fast +# vd-lavc-skiploopfilter=<skipvalue> +# vd-lavc-skipframe=<skipvalue> +# vd-lavc-framedrop=<skipvalue> +vd-lavc-threads=4 + +# uosc +osc=no +osd-bar=no +border=no + +alang=en,eng,sv,swe,se +slang=en,eng,sv,swe,se + +ao=sndio + +af=scaletempo2 diff --git a/.config/mpv/script-opts/uosc.conf b/.config/mpv/script-opts/uosc.conf @@ -0,0 +1,200 @@ +# Display style of current position. available: line, bar +timeline_style=line +# Line display style config +timeline_line_width=2 +timeline_line_width_fullscreen=3 +# Scale the width of the line when minimized (timeline_size_min) +timeline_line_width_minimized_scale=10 +# Timeline size when minimized, 0 will hide it completely +timeline_size_min=2 +# Timeline size when fully expanded, in pixels, 0 to disable +timeline_size_max=40 +# Same as ^ but when in fullscreen +timeline_size_min_fullscreen=0 +timeline_size_max_fullscreen=60 +# Same thing as calling toggle-progress command once on startup +timeline_start_hidden=no +# Comma separated states when timeline should always be visible. available: paused, audio, image, video, idle +timeline_persistency=paused +# Timeline opacity +timeline_opacity=1.0 +# Top border of background color to help visually separate timeline from video +timeline_border=1 +# When scrolling above timeline, wheel will seek by this amount of seconds +timeline_step=5 +# Opacity of chapter indicators in timeline, 0 to disable +timeline_chapters_opacity=1.0 + +# A comma delimited list of items to construct the controls bar above the timeline. Set to `never` to disable. +# Parameter spec: enclosed in `{}` means value, enclosed in `[]` means optional +# Full item syntax: `[<[!]{disposition1}[,[!]{dispositionN}]>]{element}[:{paramN}][#{badge}[>{limit}]][?{tooltip}]` +# Common properties: +# `{icon}` - parameter used to specify an icon name (example: `face`) +# - you can pick one here: https://fonts.google.com/icons?selected=Material+Icons&icon.style=Rounded +# `{element}`s and their parameters: +# `{usoc_command}` - preconfigured shorthands for uosc commands that make sense to have as buttons: +# - `menu`, `subtitles`, `audio`, `video`, `playlist`, `chapters`, `editions`, `stream-quality`, +# `open-file`, `items`, `next`, `prev`, `first`, `last`, `audio-device` +# `fullscreen` - toggle fullscreen +# `loop-playlist` - button to toggle playlist looping +# `loop-file` - button to toggle current file looping +# `shuffle` - toggle playlist shuffle +# `speed[:{scale}]` - display speed slider, [{scale}] - factor of controls_size, default: 1.3 +# `command:{icon}:{command}` - button that executes a {command} when pressed +# `toggle:{icon}:{prop}` - button that toggles mpv property +# `cycle:{default_icon}:{prop}:{value1}[={icon1}][!]/{valueN}[={iconN}][!]` +# - button that cycles mpv property between values, each optionally having different icon and active flag +# - presence of `!` at the end will style the button as active +# `gap[:{scale}]` - display an empty gap, {scale} - factor of controls_size, default: 0.3 +# `space` - fills all available space between previous and next item, useful to align items to the right +# - multiple spaces divide the available space among themselves, which can be used for centering +# Item visibility control: +# `<[!]{disposition1}[,[!]{dispositionN}]>` - optional prefix to control element's visibility +# - `{disposition}` can be one of: +# - `idle` - true if mpv is in idle mode (no file loaded) +# - `image` - true if current file is a single image +# - `audio` - true for audio only files +# - `video` - true for files with a video track +# - `has_many_video` - true for files with more than one video track +# - `has_audio` - true for files with an audio track +# - `has_many_audio` - true for files with more than one audio track +# - `has_sub` - true for files with an subtitle track +# - `has_many_sub` - true for files with more than one subtitle track +# - `has_many_edition` - true for files with more than one edition +# - `has_chapter` - true for files with chapter list +# - `stream` - true if current file is read from a stream +# - `has_playlist` - true if current playlist has 2 or more items in it +# - prefix with `!` to negate the required disposition +# Examples: +# - `<stream>stream-quality` - show stream quality button only for streams +# - `<has_audio,!audio>audio` - show audio tracks button for all files that have +# an audio track, but are not exclusively audio only files +# Place `#{badge}[>{limit}]` after the element params to give it a badge. Available badges: +# `sub`, `audio`, `video` - track type counters +# `{mpv_prop}` - any mpv prop that makes sense to you: https://mpv.io/manual/master/#property-list +# - if prop value is an array it'll display its size +# `>{limit}` will display the badge only if it's numerical value is above this threshold. +# Example: `#audio>1` +# Place `?{tooltip}` after the element config to give it a tooltip. +# Example: `<stream>stream-quality?Stream quality` +# Example implementations of some of the available shorthands: +# menu = command:menu:script-binding uosc/menu-blurred?Menu +# subtitles = command:subtitles:script-binding uosc/subtitles#sub?Subtitles +# fullscreen = cycle:crop_free:fullscreen:no/yes=fullscreen_exit!?Fullscreen +# loop-playlist = cycle:repeat:loop-playlist:no/inf!?Loop playlist +# toggle:{icon}:{prop} = cycle:{icon}:{prop}:no/yes! +controls=speed,space,<has_chapter>chapters,subtitles,<has_many_audio>audio,<has_many_video>video,<has_many_edition>editions,<stream>stream-quality,gap,<has_playlist>shuffle,<has_playlist>loop-playlist,loop-file,<has_playlist>gap,<has_playlist>prev,<has_playlist>items,<has_playlist>next +controls_size=32 +controls_size_fullscreen=40 +controls_margin=8 +controls_spacing=2 +controls_persistency=paused + +# Where to display volume controls: none, left, right +volume=right +volume_size=40 +volume_size_fullscreen=52 +volume_opacity=1.0 +volume_border=1 +volume_step=1 +volume_persistency=paused + +# Playback speed widget: mouse drag or wheel to change, click to reset +speed_opacity=1.0 +speed_step=0.1 +speed_step_is_factor=no +speed_persistency=paused + +# Controls all menus, such as context menu, subtitle loader/selector, etc +menu_item_height=36 +menu_item_height_fullscreen=50 +menu_min_width=260 +menu_min_width_fullscreen=360 +menu_opacity=1.0 +menu_parent_opacity=1.0 + +# Top bar with window controls and media title +# Can be: never, no-border, always +top_bar=no-border +top_bar_size=40 +top_bar_size_fullscreen=46 +top_bar_controls=no +top_bar_title=no +top_bar_title_opacity=1.0 +top_bar_persistency=never + +# Window border drawn in no-border mode +window_border_size=1 +window_border_opacity=1.0 + +# If there's no playlist and file ends, load next file in the directory +# Requires `keep-open=yes` in `mpv.conf`. +autoload=no +# Enable playlist/directory navigation shuffling +# This is required to implement shuffling that works as expected, including +# directory navigation, since mpv's built in `shuffle` option is essentialy unusable. +shuffle=no + +# Scale the interface by this factor +ui_scale=1 +# Adjust the text scaling to fit your font +font_scale=1 +# Border of text and icons when drawn directly on top of video +text_border=1.2 +# Execute command for background clicks shorter than this number of milliseconds, 0 to disable +click_threshold=0 +click_command=cycle pause; script-binding uosc/flash-pause-indicator +# Flash duration in milliseconds used by `flash-{element}` commands +flash_duration=1000 +# Distances in pixels below which elements are fully faded in/out +proximity_in=99999 +proximity_out=99999 +# RGB HEX color codes +foreground=ffffff +foreground_text=000000 +background=050a10 +background_text=ffffff +# Use only bold font weight throughout the whole UI +font_bold=no +# Show total time instead of time remaining +total_time=no +# Display sub second fraction in timestamps up to this precision +time_precision=0 +# Display stream's buffered time in timeline if it's lower than this amount of seconds, 0 to disable +buffered_time_threshold=60 +# Hide UI when mpv autohides the cursor +autohide=yes +# Can be: none, flash, static, manual (controlled by flash-pause-indicator and decide-pause-indicator commands) +pause_indicator=flash +# Screen dim when stuff like menu is open, 0 to disable +curtain_opacity=0.4 +# Sizes to list in stream quality menu +stream_quality_options=4320,2160,1440,1080,720,480,360,240,144 +# File types to look for when navigating media files +media_types=3g2,3gp,aac,aiff,ape,apng,asf,au,avi,avif,bmp,dsf,f4v,flac,flv,gif,h264,h265,j2k,jp2,jfif,jpeg,jpg,jxl,m2ts,m4a,m4v,mid,midi,mj2,mka,mkv,mov,mp3,mp4,mp4a,mp4v,mpeg,mpg,oga,ogg,ogm,ogv,opus,png,rm,rmvb,spx,svg,tak,tga,tta,tif,tiff,ts,vob,wav,weba,webm,webp,wma,wmv,wv,y4m +# File types to look for when loading external subtitles +subtitle_types=aqt,ass,gsub,idx,jss,lrc,mks,pgs,pjs,psb,rt,slt,smi,sub,sup,srt,ssa,ssf,ttxt,txt,usf,vt,vtt +# Used to approximate text width +# If you are using some wide font and see a lot of right side clipping in menus, +# try bumping this up. +font_height_to_letter_width_ratio=0.5 +# Default open-file menu directory +default_directory=~/ + +# Convers some common chapter types into chapter range indicators. +# Instead of displaying the start of the chapter as a diamond icon on top of the +# timeline, the portion of the timeline owned by that chapter is colored based +# on the config below. +# +# The syntax is a comma delimited list of `{type}:{color}` pairs, where. +# `{type}` - range type. Currently suported ones are: +# - `openings`, `endings` - anime openings/endings +# - `intros`, `outros` - video intros/outros +# - `ads` - sponsor segments created by script: https://github.com/po5/mpv_sponsorblock +# `{color}` - an RGB(A) HEX color code (`rrggbb`, or `rrggbbaa`) +# +# To not convert any of the range types, simply removed it from the list. +chapter_ranges=openings:30abf964,endings:30abf964,ads:c54e4e80 +# Add alternative lua patterns to identify begining's of simple chapter ranges (all but `ads`) +# Syntax: `{type}:{pattern}[,{patternN}][;{type}:{pattern}[,{patternN}]]` +chapter_range_patterns=openings:オープニング;endings:エンディング diff --git a/.config/mpv/scripts/uosc.lua b/.config/mpv/scripts/uosc.lua @@ -0,0 +1 @@ +../uosc/scripts/uosc.lua +\ No newline at end of file diff --git a/.config/mpv/src/textures/a.svg b/.config/mpv/src/textures/a.svg @@ -0,0 +1 @@ +../../uosc/src/textures/a.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/b.svg b/.config/mpv/src/textures/b.svg @@ -0,0 +1 @@ +../../uosc/src/textures/b.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/c.svg b/.config/mpv/src/textures/c.svg @@ -0,0 +1 @@ +../../uosc/src/textures/c.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/d.svg b/.config/mpv/src/textures/d.svg @@ -0,0 +1 @@ +../../uosc/src/textures/d.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/e.svg b/.config/mpv/src/textures/e.svg @@ -0,0 +1 @@ +../../uosc/src/textures/e.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/f.svg b/.config/mpv/src/textures/f.svg @@ -0,0 +1 @@ +../../uosc/src/textures/f.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/g.svg b/.config/mpv/src/textures/g.svg @@ -0,0 +1 @@ +../../uosc/src/textures/g.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/h.svg b/.config/mpv/src/textures/h.svg @@ -0,0 +1 @@ +../../uosc/src/textures/h.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/i.svg b/.config/mpv/src/textures/i.svg @@ -0,0 +1 @@ +../../uosc/src/textures/i.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/j.svg b/.config/mpv/src/textures/j.svg @@ -0,0 +1 @@ +../../uosc/src/textures/j.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/k.svg b/.config/mpv/src/textures/k.svg @@ -0,0 +1 @@ +../../uosc/src/textures/k.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/l.svg b/.config/mpv/src/textures/l.svg @@ -0,0 +1 @@ +../../uosc/src/textures/l.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/m.svg b/.config/mpv/src/textures/m.svg @@ -0,0 +1 @@ +../../uosc/src/textures/m.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/n.svg b/.config/mpv/src/textures/n.svg @@ -0,0 +1 @@ +../../uosc/src/textures/n.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/o.svg b/.config/mpv/src/textures/o.svg @@ -0,0 +1 @@ +../../uosc/src/textures/o.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/q.svg b/.config/mpv/src/textures/q.svg @@ -0,0 +1 @@ +../../uosc/src/textures/q.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/s.svg b/.config/mpv/src/textures/s.svg @@ -0,0 +1 @@ +../../uosc/src/textures/s.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/t.svg b/.config/mpv/src/textures/t.svg @@ -0,0 +1 @@ +../../uosc/src/textures/t.svg +\ No newline at end of file diff --git a/.config/mpv/src/textures/uosc_textures.json b/.config/mpv/src/textures/uosc_textures.json @@ -0,0 +1 @@ +../../uosc/src/textures/uosc_textures.json +\ No newline at end of file diff --git a/.config/mpv/src/textures/z.svg b/.config/mpv/src/textures/z.svg @@ -0,0 +1 @@ +../../uosc/src/textures/z.svg +\ No newline at end of file diff --git a/.config/mpv/uosc b/.config/mpv/uosc @@ -0,0 +1 @@ +Subproject commit b75ceb6d6fdd37b08b1c3c967fcc009711541b76 diff --git a/.gitmodules b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".config/mpv/uosc"] + path = .config/mpv/uosc + url = https://github.com/tomasklaen/uosc