|
From: | Jared Finder |
Subject: | bug#74833: 31.0.50; Copy to OS clipboard doesn't work in macOS Terminal.app with xterm-mouse-mode enabled |
Date: | Fri, 27 Dec 2024 23:08:27 -0800 |
On 2024-12-27 00:02, Eli Zaretskii wrote:
Date: Thu, 26 Dec 2024 15:51:14 -0800 From: Jared Finder <jared@finder.org>Cc: Eli Zaretskii <eliz@gnu.org>, rms@gnu.org, gerd.moellmann@gmail.com,fgunbin@fastmail.fm, 74833@debbugs.gnu.org On 2024-12-23 11:43, Ship Mints wrote: > On Mon, Dec 23, 2024 at 4:07 PM Eli Zaretskii <eliz@gnu.org> wrote: >>> From: Ship Mints <shipmints@gmail.com> >>> >>> Away from a computer, but I think this is still the same in 0.82 >>> these days and I assume you're using modern >>> ssh. >>> >>> https://serverfault.com/a/819740 >> >> OK, so does this mean we want to tell PuTTY users to configure this in >> some specific way that Emacs can recognize? > > Still away from a computer. If you can set a variable using that method > and have it pass through for you to test in lisp, then it would be a > good idea to recommend. We could suggest using TERM_PROGRAM and setting > it to "Putty". What if we only auto-enabled xterm-mouse-mode on OSC52 compatible terminals?On OSC52 compatible terminals, or on OSC52 compatible terminals that define TERM to xterm-like string? The latter sounds like a good idea to me, but only if support for OSC52 necessarily means xterm-mouse escape sequences must be supported. Is this conjecture indeed true?
I'm proposing Emacs have a manually curated allow list for now for auto-enabling xterm-mouse-mode. Being OSC52 compatible gets us the copy / paste issue this bug mentioned. We can add other conditions going forward.
Between $TERM and the results from the terminal escapesequence "ESC [ > 0 q", Emacs can have high confidence if it is running on an OSC52 compatible terminal. I checked against most of the terminalsmentioned at https://can-i-use-terminal.github.io/features/osc52copy.html I justwasn't able to test Foot (Wayland-only), hterm (Chromebook-only), mintty(Cygwin-only), or xterm.js (I have no idea how to test).How do I check this? can you show some script or Lisp or whatever you used to check?
Run the following lisp code in Emacs: (progn (send-string-to-terminal "\e[>0q") (let ((str "") chr) (while (setq chr (xterm--read-event-for-query)) (setq str (concat str (string chr)))) str))You should get the string "\eP>|terminal name and version\e\\". For example, under iTerm2 I get iTerm2 3.5.10 as the terminal name and version and under Kitty I get kitty(0.38.1).
-- MJF
[Prev in Thread] | Current Thread | [Next in Thread] |