You won't be able to do that without also having a delay (eg "run -d0.5") otherwise it is likely the clipboard will not have been received by the time the paste command runs.
On Thu, 8 Jun 2023 at 11:04, Michael Grant <michael.gr...@gmail.com> wrote: > From the tmux man page: > > -l requests the clipboard from the client using the xterm(1) > escape sequence. If Ar target-pane is > given, the clipboard is sent (in encoded form), otherwise it > is stored in a new paste buffer. > > Does refresh-client -l also work with OSC-52? The man page may need to be > updating. > > How would you use this? Would you bind MouseDown2Pane to first > refresh-client to sync the buffer and then paste? > On Thursday, 8 June 2023 at 10:32:44 UTC+1 nicholas...@gmail.com wrote: > >> If you had OSC 52 working you can use refresh-client -l (lowercase L) to >> read it from the terminal. >> >> Without OSC 52 you will need to send it to the remote host out of band >> and load it with tmux load-buffer >> >> >> >> On Thu, 8 Jun 2023 at 10:27, Michael Grant <michae...@gmail.com> wrote: >> >>> I'm trying to wrap my head around the other direction, from windows >>> clipboard to tmux's copy-buffer. Is that even possible? How would one >>> even do that? As far as I know OSC-52 is only one direction. >>> >>> On Thursday, 8 June 2023 at 10:19:23 UTC+1 Michael Grant wrote: >>> >>>> Adding this to my .tmux.conf as you suggest did seem to help, thanks! >>>> >>>> bind-key -T root MouseDown2Pane select-pane -t = \; if-shell -F >>>> "#{pane_in_mode}" { send-keys -M } { paste-buffer -p } >>>> >>>> On Thursday, 8 June 2023 at 10:12:44 UTC+1 Michael Grant wrote: >>>> >>>>> % tmux list-keys | grep MouseDown2 >>>>> bind-key -T root MouseDown2Pane select-pane -t = \; >>>>> if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { >>>>> paste-buffer -p } >>>>> >>>>> I didn't bind that, that is the default for me. >>>>> On Thursday, 8 June 2023 at 10:06:16 UTC+1 nicholas...@gmail.com >>>>> wrote: >>>>> >>>>>> > Not exactly true, I can paste the ESC character into Notepad++ just >>>>>> fine, it shows up like `[esc]`. Similarrly for control characters. I >>>>>> verified this in one of my many tests yesterday. >>>>>> >>>>>> That has nothing to do with it. How would the terminal know the >>>>>> difference between a clipboard containing \033\\ and the intended >>>>>> terminator? >>>>>> >>>>>> > I think I have the middle button bound to paste as you mention >>>>>> below, >>>>>> >>>>>> What is it bound to? Check with list-keys. >>>>>> >>>>>> >>>>>> >>>>>> On Thu, 8 Jun 2023 at 10:00, Michael Grant <michae...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> > We can't add unused parameters because newer ncurses will >>>>>>> validate the number of parameters. >>>>>>> >>>>>>> I see. >>>>>>> >>>>>>> > the clipboard may have characters that cannot be sent like \033. >>>>>>> >>>>>>> Not exactly true, I can paste the ESC character into Notepad++ just >>>>>>> fine, it shows up like `[esc]`. Similarrly for control characters. I >>>>>>> verified this in one of my many tests yesterday. >>>>>>> >>>>>>> I tried iconv today as suggested and couldn't find an encoding that >>>>>>> pasted cleanly. I tried converting utf-8 to utf-16 and a few others but >>>>>>> nothing helped. It looks like utf-8 to me. Like I said, it seems like >>>>>>> something is encoding each byte of a multi-byte encoding, so there's >>>>>>> probably nothing i'm going to be able to do here, the damage happens >>>>>>> further downstream. This is not a tmux issue, it happens even outside >>>>>>> tmux. I've opened an issue in the KiTTY github repo on this. >>>>>>> >>>>>>> Real OSC-52 support seems to be needed in KiTTY. >>>>>>> >>>>>>> How would one do the reverse? How would one get data into tmux's >>>>>>> copy-buffer so that middle-click pasted from the Windows clipboard back >>>>>>> to >>>>>>> tmux? I have mouse mode enabled and on and I was using the middle >>>>>>> click on >>>>>>> the mouse. It pastes what's in tmux's copy buffer into tmux within >>>>>>> tmux. >>>>>>> I think I have the middle button bound to paste as you mention below, I >>>>>>> didn't do anything special in my .tmux.conf to do this, seems like the >>>>>>> default. >>>>>>> On Thursday, 8 June 2023 at 05:12:40 UTC+1 nicholas...@gmail.com >>>>>>> wrote: >>>>>>> >>>>>>>> %pX means push parameter X. We can't add unused parameters because >>>>>>>> newer ncurses will validate the number of parameters. Anyway, sending >>>>>>>> raw >>>>>>>> output won't work as a general solution because the clipboard may have >>>>>>>> characters that cannot be sent like \033. >>>>>>>> >>>>>>>> My guess for UTF-8 would be that either Windows or kitty doesn't >>>>>>>> know about UTF-8 in this output and is treating it as an 8-bit >>>>>>>> encoding. If >>>>>>>> you can't configure this in the terminal you could maybe pass the text >>>>>>>> through iconv to make it the right encoding so at least some characters >>>>>>>> would work. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, 8 Jun 2023, 00:17 Michael Grant, <michae...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Right, you're correct, the copy-buffer will never get control >>>>>>>>> characters by copying using copy mode except newlines and multibyte >>>>>>>>> unicode. >>>>>>>>> >>>>>>>>> Can you (or someone) please explain those params in the tmux Ms >>>>>>>>> terminfo entry? What's %p1%s? The %p2%s appears to be the base64 >>>>>>>>> encoded >>>>>>>>> paste buffer. Maybe one could add a %p3%s which is the raw, not >>>>>>>>> base64 >>>>>>>>> that could be used for this purpose? To be honest, this method would >>>>>>>>> be >>>>>>>>> cleaner and simpler than my script below. >>>>>>>>> >>>>>>>>> When I couldn't get this working earlier, I thought tmux was >>>>>>>>> filtering the escape codes but the problem wasn't passthrough, it was >>>>>>>>> that >>>>>>>>> I wasn't sending the output to the correct tty. >>>>>>>>> >>>>>>>>> Here is the current wcl script: >>>>>>>>> >>>>>>>>> # start send to ansi printer >>>>>>>>> echo -ne '\e[5i' >$SSH_TTY >>>>>>>>> >>>>>>>>> # send stdin to the outer terminal >>>>>>>>> cat >$SSH_TTY >>>>>>>>> >>>>>>>>> # end ansi printer output >>>>>>>>> echo -ne '\e[4i' >$SSH_TTY >>>>>>>>> >>>>>>>>> and in my .tmux.conf I have this line: >>>>>>>>> >>>>>>>>> bind -Tcopy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel >>>>>>>>> '~/bin/wcl' >>>>>>>>> >>>>>>>>> and I set the ansi printer in KiTTY to print to the clipboard as >>>>>>>>> per >>>>>>>>> http://www.9bis.net/kitty/index.html#!pages/StdoutToClipboard.md >>>>>>>>> >>>>>>>>> and now, when I select text in a tmux window with a shell, it >>>>>>>>> magically is available in my Windows clipboard. >>>>>>>>> >>>>>>>>> If I middle click in tmux, it's pasted back into the shell. Ahh, >>>>>>>>> so nice! Used it already multiple times to write this post! >>>>>>>>> >>>>>>>>> This works but I do have a problem with unicode characters that >>>>>>>>> are encoded as multiple bytes. When there's a unicode code-point that >>>>>>>>> would encode to multiple characters in utf-8 on the sceen in tmux >>>>>>>>> that I >>>>>>>>> copy into the copy-buffer, then paste it into Windows, I get the multi >>>>>>>>> bytes instead of the single character. For example, if i have '€100' >>>>>>>>> in >>>>>>>>> tmux, select it to copy it, then paste it back into windows, i get >>>>>>>>> '€100'. >>>>>>>>> >>>>>>>>> I don't know where the problem lies here. The editor window >>>>>>>>> (notepad++) on windows certainly supports unicode. The linux side >>>>>>>>> certainly does too. Something along the way is re-encoding each of >>>>>>>>> the >>>>>>>>> characters in the multi-byte sequence as a single unicode codepoint >>>>>>>>> and >>>>>>>>> then sending a multi-byte character for each of those characters. It >>>>>>>>> could >>>>>>>>> be a manifestation of this printer to clipboard hack and if we can >>>>>>>>> get the >>>>>>>>> terminfo param to do raw output, maybe that would fix this? This >>>>>>>>> might be >>>>>>>>> a KiTTY issue. I am not sure and unsure how to debug this at the >>>>>>>>> moment. >>>>>>>>> >>>>>>>>> By the way, there are some typos on the github documentation page >>>>>>>>> on passthrough which I will try to find the time to do a PR. In the >>>>>>>>> end, I >>>>>>>>> didn't need to use passthrough though I did get it working and it >>>>>>>>> does not >>>>>>>>> help the unicode problem. >>>>>>>>> >>>>>>>>> So the first thing I tried was to copy something from the shell >>>>>>>>> and then edit a file in the same tmux window with vi and paste it >>>>>>>>> into the >>>>>>>>> file. When I run an editor such as vi or emacs, tmux seems to switch >>>>>>>>> to an >>>>>>>>> alternate terminal screen within the terminal. By this, I mean, when >>>>>>>>> I >>>>>>>>> exit vi, instead of seeing the bottom part of the vi session still on >>>>>>>>> my >>>>>>>>> screen, the screen is returned to the way it was before entering the >>>>>>>>> editor. The ansi term for this may be 'anternate screen'. Terminfo >>>>>>>>> seems >>>>>>>>> to calls this 'smcup'. There seems to be a separate paste buffer >>>>>>>>> associated with the middle click when I'm in the alternete screen. Or >>>>>>>>> maybe the editor is controlling this button? I'm not wholey sure. >>>>>>>>> Whatever it is, I can't find a way to paste the tmux clipboard into >>>>>>>>> the >>>>>>>>> editor. This is reproducible without any of the copy-mode settings >>>>>>>>> above >>>>>>>>> and has nothing to do with Windows, and I don't think it has anything >>>>>>>>> to do >>>>>>>>> with KiTTY either, KiTTY seems to be sending middle click to tmux >>>>>>>>> regardless of whether I'm in vi or at the shell prompt. >>>>>>>>> >>>>>>>>> Is there some way to paste from the copy-buffer into an editor >>>>>>>>> such as vi or emacs, both in the same tmux? (Windows not involved >>>>>>>>> here). >>>>>>>>> >>>>>>>>> On Wednesday, 7 June 2023 at 14:14:09 UTC+1 nicholas...@gmail.com >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> No, it needs to be encoded somehow in case the copied text >>>>>>>>>> contains control characters. If you are sure it won't you could >>>>>>>>>> modify tmux >>>>>>>>>> to skip the base64 (look for b64_ntop in tty_set_selection) >>>>>>>>>> >>>>>>>>>> You will never get control characters by copying using copy mode >>>>>>>>>> except for newline, so I don't know what you mean when you say "tmux >>>>>>>>>> filters out the escape characters". >>>>>>>>>> >>>>>>>>>> You can send to the terminal directly using the passthrough >>>>>>>>>> escape sequence (see the FAQ). >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, 7 Jun 2023 at 13:22, Michael Grant <michae...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I didn't want to hijack Eric's other thread which is clearly X >>>>>>>>>>> based so starting a new thread here. >>>>>>>>>>> >>>>>>>>>>> I'm using Windows. I ssh into my linux servers with KiTTY and >>>>>>>>>>> run tmux on the linux server. No, I do not want to install an X >>>>>>>>>>> server on >>>>>>>>>>> windows, thanks very much, >>>>>>>>>>> >>>>>>>>>>> KiTTY (a windows program which is a fork of PuTTY) not to be >>>>>>>>>>> confused with kitty, a terminal emulator that runs under linux. It >>>>>>>>>>> seems >>>>>>>>>>> the linux kitty supports OSC52 by the way. >>>>>>>>>>> >>>>>>>>>>> I don't think KiTTY supports OSC52 (yet), at least, I've never >>>>>>>>>>> gotten it to work. But it does support taking the output to the >>>>>>>>>>> printer >>>>>>>>>>> and putting that into the local clipboard: >>>>>>>>>>> http://www.9bis.net/kitty/index.html#!pages/StdoutToClipboard.md >>>>>>>>>>> >>>>>>>>>>> Try 1, I added this to my .tmux.conf: >>>>>>>>>>> >>>>>>>>>>> bind -Tcopy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel >>>>>>>>>>> '~/bin/wcl' >>>>>>>>>>> >>>>>>>>>>> Unfortunately, tmux filters out the escape characters, the raw >>>>>>>>>>> output is not getting to KiTTY. >>>>>>>>>>> >>>>>>>>>>> I've tried pipping something to wcl outside tmux (as in, before >>>>>>>>>>> starting tmux) and it does work, i can paste on the windows side. >>>>>>>>>>> >>>>>>>>>>> First thought, is there some tmux command I can run which will >>>>>>>>>>> echo something back to the raw terminal (KiTTY in my case)? >>>>>>>>>>> >>>>>>>>>>> Second thought was maybe I could craft an Ms entry for a >>>>>>>>>>> terminfo override. This is what I tried: >>>>>>>>>>> >>>>>>>>>>> Try 2, added this to my .tmux.conf instead: >>>>>>>>>>> >>>>>>>>>>> set -as terminal-overrides ',*-256color:Ms=\E[5i;%p2%s;\E[4i' >>>>>>>>>>> >>>>>>>>>>> Restarted tmux (killed the server and restarted it). And it's >>>>>>>>>>> tantelizingly close. I get base64 text on the windows side! >>>>>>>>>>> >>>>>>>>>>> One difference between OSC52 and this KiTTY hack is that OSC52 >>>>>>>>>>> expects the string to be base64 encoded whereas printing to the >>>>>>>>>>> printer >>>>>>>>>>> doesn't expect that. Is there some param that sends the raw text, >>>>>>>>>>> not >>>>>>>>>>> base64 encoded? >>>>>>>>>>> >>>>>>>>>>> Second, with this method, how can set the behavior to do the >>>>>>>>>>> copy when I release the mouse button? (MouseDragEnd1Pane) >>>>>>>>>>> >>>>>>>>>>> Michael Grant >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "tmux-users" group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to tmux-users+...@googlegroups.com. >>>>>>>>>>> To view this discussion on the web, visit >>>>>>>>>>> https://groups.google.com/d/msgid/tmux-users/70847815-9ce9-4940-8815-1518690d52ban%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/tmux-users/70847815-9ce9-4940-8815-1518690d52ban%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "tmux-users" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to tmux-users+...@googlegroups.com. >>>>>>>>> >>>>>>>> To view this discussion on the web, visit >>>>>>>>> https://groups.google.com/d/msgid/tmux-users/dcc1541b-8edd-4e8f-9565-e36978f5e3fcn%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/tmux-users/dcc1541b-8edd-4e8f-9565-e36978f5e3fcn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "tmux-users" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to tmux-users+...@googlegroups.com. >>>>>>> >>>>>> To view this discussion on the web, visit >>>>>>> https://groups.google.com/d/msgid/tmux-users/9db74581-2cff-4403-8eb8-6646ccba0bc0n%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/tmux-users/9db74581-2cff-4403-8eb8-6646ccba0bc0n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "tmux-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to tmux-users+...@googlegroups.com. >>> >> To view this discussion on the web, visit >>> https://groups.google.com/d/msgid/tmux-users/31f8997a-fd50-4e5d-895b-79be1f7e2bd1n%40googlegroups.com >>> <https://groups.google.com/d/msgid/tmux-users/31f8997a-fd50-4e5d-895b-79be1f7e2bd1n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "tmux-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to tmux-users+unsubscr...@googlegroups.com. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/tmux-users/6f993238-b0af-4849-9194-5205cec8c10cn%40googlegroups.com > <https://groups.google.com/d/msgid/tmux-users/6f993238-b0af-4849-9194-5205cec8c10cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "tmux-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to tmux-users+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/tmux-users/CAEdLfcH0PgG_TC%2BqXWRrdfVQVx5f1itryU3%3Dqke2AuosPR02Ow%40mail.gmail.com.