[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: elpa xclip 1.11.1: copying from emacs GUI hangs emacs terminal
From: |
Madhu |
Subject: |
Re: elpa xclip 1.11.1: copying from emacs GUI hangs emacs terminal |
Date: |
Tue, 10 Dec 2024 09:25:56 +0530 |
* pinmacs <38c19494-4abb-4316-a307-5c9e2f43fe23@cas.cat> :
Wrote on Mon, 9 Dec 2024 17:59:32 +0100:
> I first contacted Leo, the maintainer privately, and she proposed me to
> discuss with you guys here broadly.
>
> Context: I am a Debian GNU/Linux 12 (bookworm) user that runs the
> i3wm.org desktop, but I use emacs compiled on my own [0] from banch
> emacs-30 commit 44c2614, I think this is unrelated for the issue because
> I am having the issue since long time but recently I dedicated some
> hours to see if I could fix it:
>
> Bug report: When I run an emacsclient sessions through X11 (named later,
> x11 emacs), and I copy (with common M-w) some text to the X11 clipboard
> and I paste (with common C-y) X11 clipboard it with Alacritty terminal
> (emacs running on terminal), then emacs hangs and I need to press C-g
> several times to kill the process that is being run and I don't get the
> clipboard content.
FWIW I'm attaching a patch I've been using for a long time, ever since
the the clipboard stuff was converted to elisp cl-generics. (I only
understood enough of it to work around the hangs at that time. and
haven't reviewed it for mistakes before posting)
0001-initial-fixes.patch
Description: xclip fixes
>
> More details:
>
> Everything else works perfectly, my config is simple on that matter:
>
> #+begin_src emacs-lisp
> ;; https://elpa.gnu.org/packages/xclip.html
> (use-package xclip :ensure nil
> :config
> (xclip-mode 1)
> )
> #+end_src
>
>
> This problem is somehow well-known [1] (that does not mean that I
> understand what's going on, just reporting that this happens, not only
> in xclip context)
>
> Here, I am able to reproduce the hang with org-babel [1]:
>
> #+begin_src bash
> xclip -i /dev/null -selection clipboard
> xclip -o -selection clipboard
> #+end_src
>
> it also hangs with the built-in shell-command elisp function calls:
>
> (shell-command "echo 'clipboard content' | xclip -selection clipboard")
> (shell-command "xclip -o -selection clipboard")
>
>
> But I cannot reproduce the hang in a normal terminal (vterm, alacritty,
> even in a linux console; fails because cannot open display).
>
>
> Inside the xclip.el, a process-call with the xclip program is invoked,
> then hangs, and then you need to press C-g several times, this happens
> with the following configurations:
>
> (setq xclip-method 'xclip)
> (setq xclip-method 'xsel)
>
> Here, I suggest, to reduce UX-frustration throwing a timeout error; but
> I don't know how to do it. I just know the POSIX timeout command [2].
>
> There is a workaround, unrelated to emacs: using the typical terminal
> clipboard paste command Ctrl+Shift+V, but I don't like to think if I am
> in a terminal emacs buffer or X11 emacs buffer, I want to flow and have
> something that works everywhere flawlessly. In fact, I also like to
> access the whole previous kill ring with M-y.
>
>
> Then I found that the emacs xclip-method works fine for that corner case
> that I am describing, but then sometimes "looses the synchronization"
> (?) with the X11 clipboard and provides an old-wrong clipboard; so I end
> up copying and recopying from a random X11 app to emacs terminal without
> success (specially when doing it to the terminal window).
>
> (setq xclip-method 'emacs)
>
>
> I also tried to hack on the xclip code, it is weird that when I override
> the function definition does not work, I think it would be nice to know
> the details/documentation on how to hack or change on this.
>
> Anyway, trying stuff, when I replaced the paste content with hello
> world, it does not hang and it works, so it is clearly a problem when
> tries to get the xclip content from terminal and the last content was
> put in clipboard by emacs X11.
>
> By the way, disabling xclip package, makes pasting the emacs X11 to
> emacs terminal work; but then, does not work with the rest of X11
> clipboard apps.
>
>
> Thanks for your attention,
> pinmacs
>
> [0] my compilation details:
> ./configure --with-native-compilation --with-native-compilation=aot
> --with-x-toolkit=lucid
> make -j4
> make bootstrap
>
> [1]
> https://emacs.stackexchange.com/questions/39019/xclip-hangs-shell-command
> [2] https://orgmode.org/worg/org-contrib/babel/
> [3] https://pubs.opengroup.org/onlinepubs/9799919799/utilities/timeout.html