Releases: brahmkshatriya/material-osc
Release list
0.0.12
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
What's New
- Added display-aspect overrides to the Crop settings, with presets for Original, 16:9, 21:9, 4:3, 1:1, and 9:16. Crop and aspect modes now clear conflicting video settings when selected.
- Added
show_remaining_timefor choosing the default playback-clock mode andadjust_time_with_speedfor adjusting elapsed, remaining, and total displayed time to the current playback speed. - Local movie and episode filenames are now cleaned automatically when the optional Python
guessitpackage is installed, while preserving mpv's normal titles when it is unavailable. - Added
show_empty_screenfor hiding the welcome screen when the playlist is empty. - Improved Windows configuration and updater handling, including paths containing spaces and creation of temporary update directories.
- Refactored filesystem, web-request, subprocess, dialog, timer, and persistence handling into shared cross-platform services, reducing duplicated service-specific behavior and improving error reporting.
Full Changelog: 0.0.11...0.0.12
0.0.11
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
What's New
- Added built-in SponsorBlock support for YouTube, with configurable automatic skipping, skip prompts, ignored categories, multicolored seekbar markers, and category labels in seek previews.
- SponsorBlock actions are integrated into the playback controls, including Skip, Dismiss, Undo, voting, segment marking, category selection, and submission. Active skip prompts remain accessible after the main controls fade.
- Added configurable intro and outro chapter detection for local media, with options to skip automatically, ask each time, or leave matching chapters untouched.
- Added Picture-in-Picture mode with a compact always-on-top window and an Exit PiP control. Leaving PiP restores the previous window size, fullscreen or maximized state, and always-on-top preference.
- Added
screenshot_buttonandpip_buttonoptions for choosing which playback actions appear in the control bar. - The welcome screen's scrolling phrases are now interactive collectibles that are saved between sessions, and clicking the material-osc logo triggers a new morphing animation.
- Added material-osc notification pills for bookmark, clipboard, shader, subtitle, updater, SponsorBlock, and other action feedback, replacing overlapping mpv OSD messages.
- Improved controller visibility around the seekbar, SponsorBlock prompts, and Picture-in-Picture controls so active interactions do not disappear under the pointer.
- Refined loading and brand animations, viewport-resize rendering, seek-preview spacing, and configuration documentation.
Full Changelog: 0.0.10...0.0.11
0.0.10
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
What's New
- Added a new welcome screen when no media is loaded, with options to open local files or a link, a drag-and-drop hint, and quick access to the material-osc repository.
- Files and links can now be added directly to the current playlist from new controls at the top of the Playlist panel.
- YouTube watch links containing a playlist now load the full playlist and begin at the linked video. Set
ytdl-raw-options=no-playlist=inmpv.confto preserve mpv's single-video behavior. - Dragging the Playback Speed slider now allows precise 0.01x adjustments instead of snapping to 0.05x steps.
- Hardware decoding overrides are now opt-in. Preserving mpv's configured playback settings avoids video-output stalls seen with some live streams and hybrid-GPU systems.
- Fixed subtitle border adjustments on current mpv versions by using the supported outline-size property.
- Playlist controls now fade out while the seekbar's position preview is visible, preventing the two interfaces from overlapping.
- Improved pointer-timeout behavior so the cursor reliably hides after edge-seek feedback, even when the main controls are already hidden.
- Release archives are now smaller thanks to Lua minification and text-font optimization.
What's Changed
- Allow granular 0.01x speed adjustments via slider dragging by @rawrikaaaa in #29
New Contributors
- @rawrikaaaa made their first contribution in #29
Full Changelog: 0.0.9...0.0.10
0.0.9
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
What's New
- Added a Contrast control to Video Settings, alongside gamma, brightness, saturation, rotation, and shader controls.
- Disabling the built-in context menu now releases right-click, Menu, and Shift+F10 to mpv and other scripts, including when the option is changed through live configuration reloads.
- Improved mouse-timeout behavior so hidden edge-seek and volume feedback no longer remains active after the pointer becomes idle, while clicking, scrolling, or moving the pointer restores interaction normally.
- Refined the playback controls with a clearer chapter selector, improved time and cached-time styling, tighter action-button spacing, and more consistent hover feedback.
- Polished Playlist sizing, footer controls, icon treatment, and open/close transitions, eliminating the blank flash that could appear when its animation finished.
- Tooltips now wait slightly longer before appearing, reducing accidental popups while moving across controls.
- Successful updates now keep automatic updates enabled by default, while still allowing them to be disabled from the completed-update dialog.
- Improved release-note formatting and clarified the context-menu configuration documentation.
Full Changelog: 0.0.8...0.0.9
0.0.8
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
What’s new
- Added keyboard navigation throughout menus and popups, including directional movement, activation, paging, and scrolling through long lists.
- Tooltips now show the active keyboard shortcut in a single readable keycap and render correctly above popup content.
- Fixed pointer and click input passing through open popups to controls or previous pages underneath.
- Redesigned Playback Speed with a stepped slider, inline decrease and increase controls, shortcut hints, and reliable back navigation.
- Added a configurable temporary-speed action with a header control and a compact on-screen speed indicator.
- Moved Crop into the main Settings page and improved navigation between Video, Subtitle, Crop, and Playback Speed pages.
- Added a connected cached-time segment beside the playback time, showing only buffered media ahead of the current position.
- Subtitles now follow control-bar visibility with a smooth spring animation instead of snapping between positions.
- Improved Playlist controls with shuffle and repeat tooltips, refined icon sizing, and clearer collapse behavior.
- Refined control-pill opacity and spacing, window-control padding, and the close button's hover appearance.
- Added live-reloadable
force_display_resampleandforce_force_windowoptions, replacing the previous manualmpv.confrecommendations. - Improved configuration and installation documentation, including a collapsible option reference.
What's Changed
New Contributors
Full Changelog: 0.0.7...0.0.8
0.0.7
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── mpv.conf (optional)
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
For smoother experience, add this to mpv.conf:
video-sync=display-resample
force-window=yesWhat’s new
- You can now choose the maximum quality used when a YouTube video starts.
- Hardware decoding is now enabled automatically for smoother playback and lower CPU use.
- Window controls can now appear automatically when they are needed, such as in fullscreen or borderless windows.
- Video tracks now include an Off option, and the Video and Audio menus are easier to understand.
- Added helpful labels when hovering over settings and popup buttons.
- The controls now use much less CPU, especially while hidden or idle.
- Animations and mouse movement feel smoother on high-refresh-rate displays, including 120 Hz and 240 Hz screens.
- Popups now share the same springy animation style, with smoother resizing and more natural opening points.
- Fixed popup content briefly appearing outside its box, hidden rows, flashing scrollbars, and other animation glitches.
- Chapter and Settings popups can now be opened and closed quickly with repeated clicks.
- Polished the playlist animation, scrolling area, footer, and closing fade.
Full Changelog: 0.0.6...0.0.7
0.0.6
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── mpv.conf (optional)
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
For smoother experience, add this to mpv.conf:
video-sync=display-resample
force-window=yesWhat’s new
- Reduced idle CPU and GPU usage by stopping continuous OSC rendering when no animation or visible playback element needs updates, including while playback is paused.
- Added configurable single-click play/pause and edge seeking with
single_click_actions_enabled,seeking_zone_percentage, andseek_step_seconds. - Improved controller auto-hide behavior so the cursor and thumbnail preview disappear after the fade completes, including when the pointer remains over the controls.
- Added an optional 1dp playback-progress line with
show_mini_seekbar=yes; hidden progress updates are throttled to keep rendering lightweight. - Configuration file changes now update active mpv instances through platform file notifications, and opening Configurations removes unused options while preserving comments and current values.
- Renamed
always_visibletoshow_on_mouse_moveandvolume_maxtomax_volume_percentagefor clearer configuration behavior. - Added minimize, maximize/restore, and close controls for borderless and fullscreen windows, with
force_window_controls=yesavailable for decorated windows. The top 64dp supports window dragging and is excluded from fast-seek actions.
Full Changelog: 0.0.5...0.0.6
0.0.5
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip
material-osc.zipinto your mpv configuration directory, then place
thumbfast.luabesidematerial-osc.luain thescriptsdirectory.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── mpv.conf (optional)
├── 📁 fonts
│ ├── material-osc_icons.otf
│ └── material-osc_google_sans_flex.ttf
├── 📁 scripts
│ ├── material-osc.lua
│ └── thumbfast.lua
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
For smoother rendering, add this to mpv.conf:
video-sync=display-resample
force-window=yesWhat’s new
Please Delete the old installation files. (didnt know the folder structure norms :p)
- Sorry, but the automatic update will fail with a missing archive error. Please update manually.
- Release archives now use the consistent
material-osc.zipfilename with extract-readyfonts/andscripts/directories, and the updater recognizes the new layout. #6 - Audio track selection now shows the track language even when it is not included in the title. #7
- Added video controls for crop presets, Stretch and Fit to Screen modes, gamma, brightness, saturation, rotation, and runtime GLSL shaders loaded from files or links. #4
Full Changelog: 0.0.4...0.0.5
0.0.4
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip material-osc into the scripts folder and place
thumbfast.luabeside
material-osc.lua.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\mpv\
The resulting layout should look like this:
📁 mpv
├── mpv.conf (optional)
├── 📁 scripts
│ ├── material-osc.lua
│ ├── thumbfast.lua
│ └── 📁 material-osc
│ ├── GoogleSansFlex.ttf
│ └── MaterialSymbolsRoundedUnfilled.ttf
└── 📁 script-opts (optional)
├── material-osc.conf
└── thumbfast.conf
For smoother rendering, add this to mpv.conf:
video-sync=display-resample
force-window=yesWhat’s new
- Added a right-click context menu for copying subtitles, timestamps, and media paths; managing A–B loops and bookmarks; viewing media information; revealing media; and opening keybindings or configuration.
- Bookmarks are saved between sessions and can now be renamed or removed.
- Added secondary subtitle support, including external subtitle files and links.
- Hovering either side of the video reveals animated seek controls. The outer 25% scroll zones seek, while the middle 50% adjusts volume; rapid wheel input is combined for smoother control.
- A–B loops are now visible on the seekbar, and playback, volume, subtitle, and loop changes receive on-screen feedback from mpv.
- Improved controller auto-hide behavior, context-menu animations, clipping, spacing, and media-information controls.
- Configuration files are prefilled and updated with missing options, including configurable seek seconds and mouse timeout.
- Added automatic updates with release notes and options to ask, update automatically, or stop checking.
Full Changelog: 0.0.3...0.0.4
0.0.3
Installation
- Download
material-osc.zipand
thumbfast.lua. - Unzip material-osc into the scripts folder and place
thumbfast.luabeside
material-osc.lua.
The usual mpv configuration directories are:
- Linux and macOS:
~/.config/mpv/ - Windows:
%APPDATA%\\mpv\\
The resulting layout should look like this:
mpv/
├── mpv.conf (optional)
└── scripts/
├── material-osc.lua
├── thumbfast.lua
└── material-osc/
├── GoogleSansFlex.ttf
└── MaterialSymbolsRoundedUnfilled.ttf
For smoother rendering, add this to mpv.conf:
video-sync=display-resample
force-window=yesFull Changelog: 0.0.2...0.0.3