feat(clipboard): add simple osc52 support

This commit is contained in:
zwyyy456 2024-12-29 16:47:56 +08:00
parent f733dc340b
commit 44f7c5798e
1 changed files with 11 additions and 0 deletions

View File

@ -84,6 +84,17 @@ function detect-clipboard() {
elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then
function clipcopy() { tmux load-buffer "${1:--}"; }
function clippaste() { tmux save-buffer -; }
elif [[ "$TERM" == "xterm"* || "$TERM" == "screen"* || "$TERM" == "tmux"* ]]; then
# OSC 52 support
function clipcopy() {
local data
data=$(cat "${1:-/dev/stdin}" | base64 | tr -d '\n')
printf "\033]52;c;%s\a" "$data" > /dev/tty
}
function clippaste() {
echo "OSC 52 does not support pasting from the clipboard."
return 1
}
else
function _retry_clipboard_detection_or_fail() {
local clipcmd="${1}"; shift