all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* elpa xclip 1.11.1: copying from emacs GUI hangs emacs terminal
@ 2024-12-09 16:59 pinmacs
  2024-12-10  3:55 ` Madhu
  0 siblings, 1 reply; 2+ messages in thread
From: pinmacs @ 2024-12-09 16:59 UTC (permalink / raw)
  To: emacs-devel

Hi,

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.

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




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-12-10  3:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-09 16:59 elpa xclip 1.11.1: copying from emacs GUI hangs emacs terminal pinmacs
2024-12-10  3:55 ` Madhu

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.