I wish there was a tool that allowed me to send my clipboard to a server and anytime I sent something to the clipboard it checks the ssh hosts file for the config and sends it off. I'd like to 'paste' on any other machine with an ssh command.
I keep a cobbled together version of something like this in my rc files. The ui mimics macOS’s pbcopy/pbpaste commands (it degrades gracefully on linux boxes too by falling back to xsel if available, and then to a tmp file for use on headless servers).
The special sauce is that you can put a server name from your ssh config on the end of a pbcopy or pbpaste command so you can do stuff like run `echo hello | pbcopy server2` on server1, after which doing `pbpaste` from server2 would print 'hello'. You can also do this in the other direction with pbpaste, eg from server2 you can run `pbpaste server1` and it'll print out the contents of server1's clipboard.
The current setup is a bit coupled to my rc files, but if there's interest would be glad to refactor a bit and toss it on github
I use https://github.com/BlakeWilliams/remote-development-manager for this, which works by running a server and forwarding its socket over the SSH connection. If you’re willing to add some aliases and editor/ssh config you can easily get a UX that feels like a unified clipboard across remote hosts. My favorite use is integrating the yank buffer of remote vim processes with my local system clipboard.
Though not exactly the same, I did create a project for easy sharing of clipboard https://github.com/krishnaraj/oneclipboard. Lost interest after background Clipboard access was restricted in Android 10 or something.
tmux (on workstation) integrates naturally with system clipboard and after finally getting it into my workflow, none of the annoyances in the readme anymore. It Just Works.
Yes OSC 52 is very handy for vim over SSH: instead of X11 forwarding - you can just yank text from remote vim into the local clipboard using OSC 52 [1].
Overall it's much quicker - as yanking in vim with X11 forwarding and '+clipboard' sometimes had a delay.
(ps: I think OSC 52 is implemented in xterm and URXVT, but not yet in gnome-terminal)
From a quick scan of the source, it should support Wayland. But the binary from the releases doesn't seem to. I presume it was compiled with only Xorg support.
Clipboard doesn't have support for either Xorg or Wayland yet, but the headers are already included to make it easier to add when it's ready. I know this because I wrote Clipboard (check my submissions)
I’m curious how this is implemented to work with all the different window systems without dependencies.
edit: OK I looked at the source code, it does actually include the windowing system headers and use the base libraries.
I'm glad there are people not afraid to use the latest version of programming language features. I always try to use C++20 for new projects, but often the dependencies prevent me.
If you want to use the clipboard from cmdline you can also use
xclip (for Xorg)
wl-clipboard (for wayland)
and on macOS you can use the builtin commands: pbpaste pbcopy (see the man page)
These are what I’ve been using, but I might change now.
From the Clipboard "User Experience Manifesto" [1]:
Clipboard does not have any configuration. Note that I said "have," not
"use." That's because Clipboard cleverly picks up on certain settings that
are present everywhere they're possibly used. One such setting is
NO_COLOR. NO_COLOR is an unofficial standard to specify a global disabling
of color output by software. If the NO_COLOR environment variable is
defined, then programs should not display color.
I'm unaware of many programs that actually respect $NO_COLOR. Certainly `ls` and `grep`, the two programs I use the most which display colored output, don't respect that environment variable. `ag` doesn't respect it either. In fact, the only program I use on a semi-regular basis which respects $NO_COLOR is `fd`. All the rest expect a `--no-color` command line parameter to disable colorized output. Given that, I'm wondering why the authors chose to control output colorization with an environment variable, rather than a command line argument.
Neither ls nor grep output color by default. Most distributions have a bashrc script that sets aliases like:
alias grep='grep --color=auto'
alias ls='ls --color=auto'
Ls and grep are defined such that you can specify --color multiple times and the last one will take effect, allowing you to disable coloring while still using the alias that enables it. The FAQ at no-color.org states:
> User-level configuration files and per-instance command-line arguments should override $NO_COLOR
So, it looks like like ls and grep respect it fine with just their default behaviour.
As an aside, at least on my system, ls and grep do not recognize --no-color. I need to specify it with --color=never.
On Debian derivatives, vim-gtk is built with X clipboard support via the “ register. +”yy will yank the current line to the X clipboard and so on. Note vim-gtk does not force you to use the gtk version; the terminal version it includes (which replaces the usual one via alternatives) also has “ support.
Interesting. Currently I use https://hluk.github.io/CopyQ/
but I would be happy to optimize my workflow and look for a good integration in sway/wayland and possibly dmenu.
xsel kind of works but I would like to copy paste anything
Is there a clipboard I can use without installing X or Wayland yet?
Tmux and GNU screen have their own copy buffers but they're not so useful when you're copying text from separate vim instances, scrolling both up and down in vim.
What is the difference between "the terminal" and the "terminal emulator".
This appears to be for the terminal emulator. I gave up on X11 and its successors many years ago in favor of what was called, at the time, "VGA textmode". No framebuffer, unfortunately. Have not used a mouse outside of work in thirty years. "Clips" for me are captured (copied) from pipes or from pseudo-terminals, saved in buffers and pasted into pipes and pseudo-terminals.
A "terminal multiplexer", i.e., tmux, is the solution I use as a "clipboard", namely what tmux calls "saved buffers". Specifically the commands I use are load-buffer, save-buffer, paste-buffer, list-buffers and delete-buffer.
So what the heck is "the terminal". The way HN commenters use the term it probably means "the terminal emulator". But perhaps it is an umbrella term for textmode, multiplexer and emulator.
Your text mode console is also a terminal emulator, albeit one provided by the kernel.
Very few people use hardware terminals; the scarcity has driven prices up to the point where it is sometimes cheaper to get a full computer, monitor, keyboard and serial adapter than to buy a working VT-series terminal.
[+] [-] locusofself|3 years ago|reply
macOS (zsh/bash): command | pbcopy
windows (powershell) command | Set-Clipboard
[+] [-] charlesdaniels|3 years ago|reply
https://git.sr.ht/~charles/dotfiles/tree/171c95a20394552e02a...
[+] [-] jvanderbot|3 years ago|reply
[+] [-] krick|3 years ago|reply
alias pbpaste='xclip -selection clipboard -o'
[+] [-] photoGrant|3 years ago|reply
[+] [-] nikvdp|3 years ago|reply
The special sauce is that you can put a server name from your ssh config on the end of a pbcopy or pbpaste command so you can do stuff like run `echo hello | pbcopy server2` on server1, after which doing `pbpaste` from server2 would print 'hello'. You can also do this in the other direction with pbpaste, eg from server2 you can run `pbpaste server1` and it'll print out the contents of server1's clipboard.
The current setup is a bit coupled to my rc files, but if there's interest would be glad to refactor a bit and toss it on github
[+] [-] brasic|3 years ago|reply
[+] [-] jedisct1|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] zenosmosis|3 years ago|reply
I'm doing some experimentation with something sort of along these lines via WebRTC.
[+] [-] krisgenre|3 years ago|reply
[+] [-] meitham|3 years ago|reply
[+] [-] 3np|3 years ago|reply
Defaults with vi keys:
If you enable mouse in tmux, you just select to copy.Then xsel -b / xclip -sel clip, or wl-clipboard for cli.
You could integrate it in vim as well but personally I like to keep that separate.
[+] [-] DiabloD3|3 years ago|reply
[+] [-] farrelle25|3 years ago|reply
Overall it's much quicker - as yanking in vim with X11 forwarding and '+clipboard' sometimes had a delay.
(ps: I think OSC 52 is implemented in xterm and URXVT, but not yet in gnome-terminal)
[1]: https://github.com/ojroques/vim-oscyank
[+] [-] layer8|3 years ago|reply
Does it work on Cygwin (which has /dev/clipboard)?
[+] [-] odiroot|3 years ago|reply
[+] [-] netr0ute|3 years ago|reply
[+] [-] omgtehlion|3 years ago|reply
But it is nice to have this tool with more functionality on all platforms in unified way!
[+] [-] notimpotent|3 years ago|reply
[+] [-] puffybuf|3 years ago|reply
I'm glad there are people not afraid to use the latest version of programming language features. I always try to use C++20 for new projects, but often the dependencies prevent me.
If you want to use the clipboard from cmdline you can also use
xclip (for Xorg)
wl-clipboard (for wayland)
and on macOS you can use the builtin commands: pbpaste pbcopy (see the man page)
These are what I’ve been using, but I might change now.
[+] [-] pimlottc|3 years ago|reply
There's also xsel as a long time utility for Xorg as well.
[+] [-] ptspts|3 years ago|reply
All I was able to find was https://github.com/Slackadays/Clipboard/blob/6fd7e6b695ebe57... , which opens the X11 connection -- but where does it actually read/write the selection (clipboard)?
[+] [-] netr0ute|3 years ago|reply
[+] [-] quanticle|3 years ago|reply
[1]: https://github.com/Slackadays/Clipboard/wiki/User-Experience...
[+] [-] gizmo686|3 years ago|reply
> User-level configuration files and per-instance command-line arguments should override $NO_COLOR
So, it looks like like ls and grep respect it fine with just their default behaviour.
As an aside, at least on my system, ls and grep do not recognize --no-color. I need to specify it with --color=never.
[+] [-] augusto-moura|3 years ago|reply
[1]: https://no-color.org/
[2]: https://news.ycombinator.com/item?id=30483417
[+] [-] blsummer|3 years ago|reply
[+] [-] salzig|3 years ago|reply
[+] [-] loloquwowndueo|3 years ago|reply
[+] [-] jvanderbot|3 years ago|reply
[+] [-] res0nat0r|3 years ago|reply
[+] [-] hboon|3 years ago|reply
I added the call to `ansifilter`:
function clip
if not tty >/dev/null
end[+] [-] weitzj|3 years ago|reply
xsel kind of works but I would like to copy paste anything
[+] [-] tarkin2|3 years ago|reply
Tmux and GNU screen have their own copy buffers but they're not so useful when you're copying text from separate vim instances, scrolling both up and down in vim.
[+] [-] netr0ute|3 years ago|reply
You're looking at it right now.
[+] [-] jinnko|3 years ago|reply
[+] [-] mrich|3 years ago|reply
[+] [-] kristopolous|3 years ago|reply
There's a number of clipboard management and inspection tools such as xclip and you can bind keys to do arbitrary commands with a bunch of tools.
There's a wide variety of ways to send stuff over the network as well.
The architecture is pretty obvious
Copy on remote, clipboard manager emits over network, local server picks up text, puts in clipboard.
This is like a few hours at most
[+] [-] RMPR|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] omani|3 years ago|reply
[+] [-] 1vuio0pswjnm7|3 years ago|reply
This appears to be for the terminal emulator. I gave up on X11 and its successors many years ago in favor of what was called, at the time, "VGA textmode". No framebuffer, unfortunately. Have not used a mouse outside of work in thirty years. "Clips" for me are captured (copied) from pipes or from pseudo-terminals, saved in buffers and pasted into pipes and pseudo-terminals.
A "terminal multiplexer", i.e., tmux, is the solution I use as a "clipboard", namely what tmux calls "saved buffers". Specifically the commands I use are load-buffer, save-buffer, paste-buffer, list-buffers and delete-buffer.
So what the heck is "the terminal". The way HN commenters use the term it probably means "the terminal emulator". But perhaps it is an umbrella term for textmode, multiplexer and emulator.
[+] [-] imiric|3 years ago|reply
It's pretty clear what "terminal" means in this context. Nobody uses the term in the classical mainframe sense, so "emulator" is implied.
And you brought up "multiplexer". It's neat that you use it for clipboard management, but this tool does much more than that.
[+] [-] dsr_|3 years ago|reply
Very few people use hardware terminals; the scarcity has driven prices up to the point where it is sometimes cheaper to get a full computer, monitor, keyboard and serial adapter than to buy a working VT-series terminal.
[+] [-] 1vuio0pswjnm7|3 years ago|reply
https://cgit.freedesktop.org/~dvdhrm/kmscon/plain/README