tty-copy
tty-copy copied to clipboard
Copy content to system clipboard via TTY and terminal using ANSI OSC52 sequence
= tty-copy :proj-name: tty-copy :version: 0.2.2 :gh-name: jirutka/{proj-name} :releases-uri: https://github.com/{gh-name}/releases/download/v{version}
ifdef::env-github[] image:https://github.com/{gh-name}/workflows/CI/badge.svg[Binaries Workflow, link=https://github.com/{gh-name}/actions?query=workflow%3A%22CI%22] image:https://repology.org/badge/tiny-repos/{proj-name}.svg[Packaging status, link=https://repology.org/project/{proj-name}] endif::env-github[]
A utility for copying content to the system clipboard from anywhere via a TTY and terminal using the https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands[ANSI OSC52] sequence. It works in any terminal session, whether local, remote (e.g. SSH), or even nested therein!
Refer to link:tty-copy.1.adoc[tty-copy(1)] for usage information.
== Supported Terminals
Here is a non-exhaustive list of the status of popular terminal emulators regarding OSC52 footnote:[This list was originally copied from https://github.com/ojroques/vim-oscyank[vim-oscyank].]:
|=== | Terminal | OSC 52 support
| https://github.com/alacritty/alacritty[Alacritty] | yes
| https://github.com/contour-terminal/contour[Contour] | yes
| https://codeberg.org/dnkl/foot[foot] | yes
| https://github.com/GNOME/gnome-terminal[GNOME Terminal] (and other VTE-based terminals) | https://bugzilla.gnome.org/show_bug.cgi?id=795774[not yet]
| https://iterm2.com/[iTerm2] | yes
| https://github.com/kovidgoyal/kitty[kitty] | yes
| https://konsole.kde.org[Konsole] | https://bugs.kde.org/show_bug.cgi?id=372116[not yet]
| http://rxvt.sourceforge.net/[rxvt] | yes (to be confirmed)
| https://www.gnu.org/software/screen/[screen] | yes
| https://en.wikipedia.org/wiki/Terminal_(macOS)[Terminal.app] | no, but see https://github.com/matvore/pb52[workaround]
| https://github.com/tmux/tmux[tmux] | yes
| http://software.schmorp.de/pkg/rxvt-unicode.html[urxvt] | yes (with a script, see https://github.com/ojroques/vim-oscyank/issues/4[here])
| https://github.com/microsoft/terminal[Windows Terminal] | yes |===
== Requirements
.Runtime:
- UNIX-like system
.Build:
- C compiler and linker supporting at least C99 (tested with clang and gcc)
- https://www.gnu.org/software/make/[GNU Make]
- http://asciidoctor.org/[Asciidoctor] (for building man pages)
== Installation
=== On Alpine Linux
Install package https://pkgs.alpinelinux.org/packages?name={proj-name}[{proj-name}] from the Alpine’s Edge community repository:
[source, sh, subs="+attributes"] apk add {proj-name}
=== On Arch Linux
Install package https://aur.archlinux.org/packages/{proj-name}[{proj-name}] from AUR:
[source, sh, subs="+attributes"] yay -S {proj-name}
Or use another AUR helper.
=== On Fedora
Install package https://packages.fedoraproject.org/pkgs/{proj-name}/{proj-name}/[{proj-name}] from the Fedora repositories (since Fedora 35):
[source, sh, subs="+attributes"] dnf install {proj-name}
=== Using Pre-Built Binary
🐧 Linux: {releases-uri}/{proj-name}.x86_64-linux[[x86_64]] {releases-uri}/{proj-name}.aarch64-linux[[aarch64]] {releases-uri}/{proj-name}.armv7-linux[[armv7]] {releases-uri}/{proj-name}.ppc64le-linux[[ppc64le]] {releases-uri}/{proj-name}.riscv64-linux[[riscv64]] + macOS: {releases-uri}/{proj-name}.x86_64-darwin[[x86_64]]
. Download and verify {proj-name} binary for your CPU architecture (pick the right link from the list above), for example: + [source, sh, subs="verbatim, attributes"]
curl -sSLO {releases-uri}/{proj-name}.x86_64-linux curl -sSL {releases-uri}/checksums.txt | sha256sum -c --ignore-missing
. Install {proj-name}
somewhere on your PATH
, e.g. /usr/local/bin
:
+
[source, sh, subs="verbatim, attributes"]
install -m 755 {proj-name}.* /usr/local/bin/{proj-name}
All binaries are statically linked with http://www.musl-libc.org/[musl libc], so they work on every Linux system (distro) regardless of used libc.
=== From Source Tarball
[source, sh, subs="+attributes"]
wget https://github.com/{gh-name}/archive/v{version}/{proj-name}-{version}.tar.gz tar -xzf {proj-name}-{version}.tar.gz cd {proj-name}-{version}
make build make install DESTDIR=/ prefix=/usr/local
== Credits
This program is inspired from https://github.com/yetamrra/termcopy[termcopy] and https://github.com/ojroques/vim-oscyank[vim-oscyank].
== License
This project is licensed under http://opensource.org/licenses/MIT/[MIT License]. For the full text of the license, see the link:LICENSE[LICENSE] file.