A sleek and modern OSC for mpv. This project is a fork of ModernX that enhances functionality by adding more features while preserving the core standards of mpv's OSC.
Installation Β»
Configuration Β·
Controls Β·
OSC Language Β·
Extra Scripts
- π¨ Modern, customizable interface with multiple layouts, themes, and icon styles [options]
- π±οΈ Independent hover zone for top bar (window controls) and bottom bar (OSC)
- π· Image Viewer mode with zoom controls [details]
- ποΈ Buttons: download, playlist, speed control, screenshot, pin, loop, cache, and more. [details]
- π Interactive menus for playlist, subtitles, chapters, audio tracks, and audio devices
- π Multi-language support with JSON locale integration
- β¨οΈ Configurable controls [details]
- πΌοΈ Video thumbnail previews with thumbfast
Choose the layout that suits your preference (modern or modern-compact) using the layout option in your modernz.conf.
modern |
|---|
![]() |
modern-compact |
|---|
![]() |
You can also change the icon theme to fluent or material to match your preferred style by using the icon_theme option in your modernz.conf.
fluent |
|---|
![]() |
material |
|---|
![]() |
Both fluent and material themes have different styles as well. By using the icon_style option, you can choose mixed, filled, or outline.
fluent |
|
|---|---|
| Style | Preview |
mixed |
![]() |
filled |
![]() |
outline |
![]() |
material |
|
|---|---|
| Style | Preview |
mixed |
![]() |
filled |
![]() |
outline |
![]() |
Not a fan of white buttons and text? You have complete control to customize colors to perfectly reflect your style.
| Colors |
|---|
![]() |
![]() |
See the Color Customization section in the configuration guide for details on how to customize colors and buttons.
-
Disable Stock OSC
- Add
osc=noin yourmpv.conf - (OPTIONAL) Add
title-bar=noin yourmpv.conffor a clean look without the native operating system top bar
- Add
-
Copy Files
- Place
modernz.luain your mpvscriptsdirectory - Place
modernz-icons.ttfin your mpvfontsdirectory - (OPTIONAL) Place
modernz-locale.jsonin your mpvscript-optsdirectory - (OPTIONAL) Place
thumbfast.luain your mpvscriptsdirectory
- Place
-
Locations
Linux: ~/.config/mpv/
Windows: C:/Users/%username%/AppData/Roaming/mpv/
macOS: ~/Library/Application Support/mpv/
- Folder Structure [mpv manual]
π mpv/
βββ π fonts/
β βββ π modernz-icons.ttf
βββ π script-opts/
β βββ π modernz.conf
β βββ π modernz-locale.json (optional)
βββ π scripts/
βββ π modernz.lua
βββ π thumbfast.lua (optional)
-
Place
modernz.confin the/script-optsfolder to customize settings- Download
modernz.confwith all default options
- Download
-
Alternatively, you can create a short configuration of the options you want changed only:
# Short configuration example
# Seekbar color (hex format)
seekbarfg_color=#B7410E
# Interface options
speed_button=yes
title=${media-title}
icon_theme=fluent
icon_style=outlineFor a full list of options, check out the detailed list here.
- Left click: Primary action
- Right click: Secondary action
- Middle click/Shift+Left click: Alternative action
Note
Middle clicking performs the same function as Shift+left mouse button, allowing for one-handed use
For a full list of interactions, check out the Button Interactions Guide.
ModernZ doesn't set keybinds by default to avoid interfering with your current setup. You can add keybinds in input.conf if you prefer:
v script-binding modernz/visibility # Cycle visibility modes
V script-message-to modernz osc-visibility cycle # Set a visibility mode (cycle, auto, always, never)
w script-binding modernz/progress-toggle # Toggle progress bar
x script-message-to modernz osc-show # Show OSC
y script-message-to modernz osc-hide # Hide OSC
z script-message-to modernz osc-idlescreen # Toggle idle screen
ModernZ is currently available in English, but you can easily switch it to your preferred language! Here's how:
- Download the locale pack
Grab the modernz-locale.json file from this repository. This file holds translations for various languages.
- Add the locales to mpv
Copy the downloaded modernz-locale.json file to your mpv /script-opts folder.
- Choose your language
Adjust or add the language option in your modernz.conf to your preferred language.
# Example configuration in modernz.conf
# Set language to Simplified Chinese
language=zhNeed More Info?
For a complete list of available languages, contribution guidelines, and in-depth translation documentation, head over to the TRANSLATIONS.md.
The following scripts are maintained by me. Feel free to use them if they're useful to you.
- Pause-Indicator-Lite - A simple script that displays an indicator on pause
- PiP-Lite - Add a PiP mode (Picture-in-Picture) via the ModernZ pin button or when
ontopis enabled - ytdlAutoFormat - A simple mpv script to automatically change
ytdl-format(yt-dlp) for specified domains - BoxtoWide - A simple mpv script to change the aspect-ratio of video files/streams to a specific target ratio automatically
For even more useful scripts, check out the mpv User Scripts Wiki. It offers a wide range of community-contributed scripts to enhance your mpv experience.
- Samillion/ModernZ
- forked from dexeonify/ModernX
- forked from cyl0/ModernX
- forked from maoiscat/mpv-osc-modern
- forked from cyl0/ModernX
- forked from dexeonify/ModernX
Why fork yet again?
- Add extensive feature support, including color customization, advanced options, and locale integration
- Integrate mpv's
consoleandselectfunctionality to OSC - Introduce a dedicated layout optimized for image viewing. details
- Add
modernandmodern-compactlayouts and icon themes support - Refactor the project to align with mpvβs stock OSC standards, ensuring long-term compatibility
- Remove legacy bugs and redundant code to improve maintainability and stability
- This enables other
Modernforks to build on ModernZ as a foundation- Such as zydezu/ModernX (reference)
- This enables other
In essence, to maintain and revive the modern-osc origin.
Having said that, ModernZ still uses parts of the old code, and every previous and current fork author and contributor deserves credit (including mpv's stock osc), which is why they are mentioned in detail.
- Material Symbols by Google β Apache 2.0
- Fluent System Icons by Microsoft β MIT (some icons modified or created to suit the OSC's needs)
- mpv and their osc.lua, as ModernZ osc was re-based on the stock osc standards and applies updates from it
- All modern osc origin and their forks as mentioned in history
- All contributors, testers and users that helped directly or indirectly with ModernZ osc β€οΈ











