summary refs log tree commit diff
path: root/.config/mpv/scripts/yanky.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.config/mpv/scripts/yanky.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/.config/mpv/scripts/yanky.lua b/.config/mpv/scripts/yanky.lua
new file mode 100644
index 0000000..be9d308
--- /dev/null
+++ b/.config/mpv/scripts/yanky.lua
@@ -0,0 +1,37 @@
+local mp = require("mp")
+
+function yank(payload)
+	mp.commandv("run", "wl-copy", payload)
+	mp.msg.info("yanked: " .. payload)
+	mp.osd_message("yanked: " .. payload)
+end
+
+function yankproperty(prop)
+	yank(mp.get_property_native(prop))
+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
+
+function yanktime()
+	local s = mp.get_property_native("playback-time")
+	local ts = string.format("%.2d:%.2d:%.2d.%.3d", s / (60 * 60), s / 60 % 60, s % 60, (s % 1) * 1000)
+	yank(ts)
+end
+
+function yanksubs()
+	local subText = mp.get_property("sub-text")
+	-- local secondarySubText = mp.get_property("secondary-sub-text")
+	yank(subText)
+end
+
+mp.add_key_binding("y-t", "yanktime", yanktime)
+mp.add_key_binding("y-p", "yankpath", yankpath)
+mp.add_key_binding("y-s", "yanksubs", yanksubs)