Platforms supported:
- Linux (via
xcliporxselorwl-copy/wl-paste) - MacOS (via
pbcopy/pbpaste) - Windows (via the Windows clipboard API)
- WSL (via
clip.exe/powershell.exe) - Android Termux (via
termux-clipboard-set/termux-clipboard-get) - Plan9 (via
/dev/snarf) - Anything else (via a user-defined script)
Fallback methods:
- Internal in-memory clipboard
- File-based clipboard
func main() {
clip, err := clipper.GetClipboard(clipper.Clipboards...)
must(err)
// copy from stdin
data, err := io.ReadAll(os.Stdin)
must(err)
err = clip.WriteAll(clipper.RegClipboard, data)
must(err)
// paste to stdout
data, err := clip.ReadAll(clipper.RegClipboard)
must(err)
fmt.Print(string(data))
}
A CLI tool is provided as an example in cmd/clipper.