mp = require("mp") format_json = require("mp.utils").format_json function open_uri() local json = format_json({ type = "open-uri", title = "https://mpv.io", items = { { title = "Enter a network url", align = "left", value = "ignore", muted = true, selectable = false } }, on_search = { "script-message-to", mp.get_script_name(), "openuri-cb" }, palette = true, search_style = "palette", search_debounce = "submit" }) or "{}" mp.commandv("script-message-to", "uosc", "open-menu", json) end mp.register_script_message("openuri-cb", function(path) mp.commandv("script-message-to", "uosc", "close-menu", "openuri") mp.commandv("loadfile", path, "append-play") end) mp.add_key_binding("ctrl+o", "openuri", open_uri) mp.add_key_binding("ctrl+shift+o", "pasteuri", function() local r = mp.command_native({ name = "subprocess", playback_only = false, capture_stdout = true, args = { "wl-paste" }, }) if r.status == 0 then mp.commandv("script-message-to", mp.get_script_name(), "openuri-cb", r.stdout) end end)