summary refs log tree commit diff
path: root/.config/mpv/scripts
diff options
context:
space:
mode:
Diffstat (limited to '.config/mpv/scripts')
-rw-r--r--.config/mpv/scripts/hooks.lua29
-rw-r--r--.config/mpv/scripts/openuri.lua42
-rw-r--r--.config/mpv/scripts/yanky.lua4
3 files changed, 75 insertions, 0 deletions
diff --git a/.config/mpv/scripts/hooks.lua b/.config/mpv/scripts/hooks.lua
new file mode 100644
index 0000000..902846e
--- /dev/null
+++ b/.config/mpv/scripts/hooks.lua
@@ -0,0 +1,29 @@
+local mp = require("mp")
+local utils = require("mp.utils")
+
+local run = function(...)
+	utils.subprocess_detached({
+		args = { "sh", "-c", table.concat({ ... }, " ") .. " >/dev/null 2>&1" },
+		max_size = 0,
+		cancellable = false,
+	})
+end
+
+local has_video = function()
+	local v = mp.get_property("video")
+	return v and v ~= "no" and v ~= ""
+end
+
+mp.register_event("start-file", function()
+	run("makoctl", "mode", "-a", "off")
+	if has_video() then
+		run("svdn", "wlsunset")
+	end
+end)
+
+mp.register_event("shutdown", function()
+	run("makoctl", "mode", "-r", "off")
+	if has_video() then
+		run("svup", "wlsunset")
+	end
+end)
diff --git a/.config/mpv/scripts/openuri.lua b/.config/mpv/scripts/openuri.lua
new file mode 100644
index 0000000..61b20e5
--- /dev/null
+++ b/.config/mpv/scripts/openuri.lua
@@ -0,0 +1,42 @@
+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)
diff --git a/.config/mpv/scripts/yanky.lua b/.config/mpv/scripts/yanky.lua
index ded6ba0..be9d308 100644
--- a/.config/mpv/scripts/yanky.lua
+++ b/.config/mpv/scripts/yanky.lua
@@ -12,6 +12,10 @@ end
 
 function yankpath()
 	local path = mp.get_property_native("path")
+	if path ~= "^http" then
+		yank(path)
+		return
+	end
 	local cwd = mp.get_property_native("working-directory")
 	yank(require("mp.utils").join_path(cwd, path))
 end