aboutsummaryrefslogtreecommitdiff
path: root/home/dot_config/mpv/scripts/copy-subs.lua
diff options
context:
space:
mode:
Diffstat (limited to 'home/dot_config/mpv/scripts/copy-subs.lua')
-rw-r--r--home/dot_config/mpv/scripts/copy-subs.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/home/dot_config/mpv/scripts/copy-subs.lua b/home/dot_config/mpv/scripts/copy-subs.lua
new file mode 100644
index 0000000..973e1f2
--- /dev/null
+++ b/home/dot_config/mpv/scripts/copy-subs.lua
@@ -0,0 +1,32 @@
+_G.auto = false
+
+function copy()
+ local sub = mp.get_property("sub-text")
+ if sub then
+ -- remove some specific unicode characters
+ sub = sub:gsub('\u{27a1}', '')
+ sub = sub:gsub('\u{fffd}', '')
+ sub = sub:gsub('\u{3013}', '')
+ sub = sub:gsub('\u{2015}', '')
+
+ sub = sub:gsub('\n', ' ') -- replace newlines with space
+ sub = sub:gsub('\'', '\'\\\'\'') -- escape single quotes
+ os.execute("echo '" .. sub .. "' | xclip -selection clipboard -i")
+ end
+end
+
+function autocopy()
+ if _G.auto == false then return end
+ copy()
+end
+
+function toggle_autocopy()
+ _G.auto = not _G.auto
+ mp.osd_message("autocopy " .. (_G.auto and "on" or "off"))
+end
+
+mp.add_key_binding(nil, "copy", copy)
+
+mp.observe_property("sub-text", "string", autocopy)
+mp.add_key_binding(nil, "auto", toggle_autocopy)
+