#!/usr/bin/env bash # pbcopy -- macOS-style clipboard copy for this headless box. # # There is no X/Wayland display here, so xclip/xsel cannot reach a clipboard. # Instead we use OSC 52: the text is handed to the terminal emulator on the # other end of the SSH connection, which puts it on YOUR machine's clipboard. # # ls -la | pbcopy # pbcopy < notes.md set -euo pipefail # A real local display (rare here, but free to support). if [[ -n "${DISPLAY:-}" ]] && command -v xclip >/dev/null 2>&1; then exec xclip -selection clipboard fi if [[ -n "${WAYLAND_DISPLAY:-}" ]] && command -v wl-copy >/dev/null 2>&1; then exec wl-copy fi # Inside tmux: load-buffer -w fills the tmux paste buffer and, because # set-clipboard is on, forwards OSC 52 out to the terminal emulator. if [[ -n "${TMUX:-}" ]] && command -v tmux >/dev/null 2>&1; then exec tmux load-buffer -w - fi # Bare SSH: emit OSC 52 straight at the controlling terminal. { printf '\033]52;c;'; base64 | tr -d '\n'; printf '\a'; } > /dev/tty