Skip to content

5.0.0

Compare
Choose a tag to compare
@tomasklaen tomasklaen released this 21 Oct 11:07
· 183 commits to main since this release

Updating

5.0 comes with some breaking changes.

Installation

Our directory structure has changed. If you're updating manually, you should delete uosc_shared and uosc.lua in your scripts folder before installing 5.0, which is only a single uosc folder now.

Alternatively, you can use one of the new install commands in readme, and it'll take care of that for you.

Config

A lot of config options have been added, changed, or removed and replaced with new ones that are more compact and provide more customization (color, opacity, ...).

I recommend just downloading the new uosc.conf file and reconfiguring it again.

Highlights

Searchable menus

All menus in uosc are now searchable. Just start typing!

searchable_menus

Though this disables the ability to toggle the menu with the same key, if the key is just a single letter. You can disable menu_type_to_search option, and use ctrl+f or / to search instead.

For script developers: menu API now includes search related options, as well as on_search callbacks for you to implement searching on your end.

Keybinds palette

A new command uosc/keybinds now displays a command palette of all active key bindings. You can search through it to find commands/shortcuts, and what shortcut/commands they're bound to, and of course call it.

keybinds

Self updating

A new command uosc/update, which will make uosc re-install itself to update.

update

It's a bit tricky to make this work, and as a result doesn't work in all environments. See update command documentation for details.

Menu titles & separators

When defining your own menus in input.conf, there's now a new syntax for adding un-selectable titles and separators:

#    #! Section > Title
#    #! Section > ---

titles_and_separators

Localization

Localization has been added for: de, es, fr, ro, ru, zh-hans. Though not all are up to date.

To control which language you want to see we detect mpv's slang config, but you can configure it with a more fine grained priority list with uosc's languages option. See more in default uosc.conf file.

Other noteworthy changes

Added idle and audio indicators (graphics/text in the middle of screen). All can be disabled with the new disable_elements option.

Resetting by clicking on speed has been moved from primary to secondary click. This is to match the same behavior now also available on volume.

You can now control stuff like animation length (including disabling animations) and border radius with animation_duration and border_radius options.

Fixed touch input event handling.

API

If you're using uosc's API for creating menus for your scripts, there have been some changes. Your stuff still works, just a bit differently, and might need adjustments. Mainly:

  1. You no longer need to send get-version to detect uosc. This message is gone. uosc now instead sends a global uosc-version <version> message as the first thing while initializing, which you're probably already listening for. In practice, all you should need to do is just remove get-version call from your script.
  2. Implicit behavior of menu-open and menu-update was removed (menu-open would toggle, menu-update would open if not already), and there's now menu-close command. To know when you should call close or update, you can check mp.get_property_native('user-data/uosc/menu/type') to see if any menu and of what type is currently open, with a fallback of uosc-menu-type property on mp.get_property_native('shared-script-properties') for older mpv versions.

Changelog

Features

Fixes

Miscellaneous

Performance

  • Cache menu title translation (#524) @po5

Refactor

Styling

  • Reconfigured and run the whole codebase through lua formatter @tomasklaen

Testing

Build

Tweak

Full Changelog: 4.7.0...5.0.0