diff options
Diffstat (limited to 'home/dot_config/mpv/scripts/copy-subs.lua')
| -rw-r--r-- | home/dot_config/mpv/scripts/copy-subs.lua | 32 |
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) + |