all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jared Finder via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gerd.moellmann@gmail.com, 74833@debbugs.gnu.org,
	fgunbin@fastmail.fm, shipmints@gmail.com, rms@gnu.org
Subject: bug#74833: 31.0.50; Copy to OS clipboard doesn't work in macOS Terminal.app with xterm-mouse-mode enabled
Date: Sat, 28 Dec 2024 21:16:28 -0800	[thread overview]
Message-ID: <eb5002c5d1b62da9501b7033295a6070@finder.org> (raw)
In-Reply-To: <86ldw0ur0h.fsf@gnu.org>

On 2024-12-28 00:54, Eli Zaretskii wrote:
>> Date: Fri, 27 Dec 2024 23:08:27 -0800
>> From: Jared Finder <jared@finder.org>
>> Cc: shipmints@gmail.com, rms@gnu.org, gerd.moellmann@gmail.com,
>>  fgunbin@fastmail.fm, 74833@debbugs.gnu.org
>> 
>> >> 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.
> 
> What would this allow list specify, and in what terms?
> 
> When reading your proposal above, I thought we have a means of testing
> the OSC52 support, but now you seem to be saying that this support
> should be somehow specified by a database of terminals we maintain?
> ANd if so, the question of detecting a non-xterm terminal that sets
> TERM to xterm but doesn't support OSC52 still stands, doesn't it?

Yes, that's right. Unfortunately we are limited in two ways:

1. Setting TERM to xterm is commonly done by alternative terminals, even 
though they do not fully support all of xterm's functionality. I'd 
estimate that over 80% of alternative terminals just set TERM to 
xterm-256color. This includes the default terminals for Mac 
(Terminal.app), Windows (Windows Terminal), GNOME (GNOME Terminal), and 
KDE (Konsole).
2. There is no way to check if OSC52 is supported.

>> >> Between $TERM and the results from the terminal escape
>> >> sequence "ESC [ > 0 q", Emacs can have high confidence if it is
>> >> running
>> >> on an OSC52 compatible terminal. I checked against most of the
>> >> terminals
>> >> mentioned at
>> >> https://can-i-use-terminal.github.io/features/osc52copy.html I just
>> >> wasn'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).
> 
> And if the terminal does NOT support OSC52, what should I expect to
> happen?

I'm proposing to add a single regexp that matches against the terminal 
name and version string. If there's a match, automatically enable 
xterm-mouse-mode. For terminals that aren't supported or don't support 
"\e[>0q", leave xterm-mouse-mode as is. No other complexity is needed. A 
user can always customize xterm-mouse-mode (it's a user option) if they 
want to enable it anyways.

   -- MJF





  reply	other threads:[~2024-12-29  5:16 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-12 17:54 bug#74833: 31.0.50; Copy to OS clipboard doesn't work in macOS Terminal.app with xterm-mouse-mode enabled Filipp Gunbin
2024-12-12 18:08 ` Ship Mints
2024-12-12 18:18   ` Filipp Gunbin
2024-12-12 18:20     ` Ship Mints
2024-12-12 19:15 ` Eli Zaretskii
2024-12-12 19:18   ` Ship Mints
2024-12-12 19:32     ` Eli Zaretskii
2024-12-12 20:07       ` Gerd Möllmann
2024-12-12 20:31       ` Ship Mints
2024-12-13  7:21         ` Eli Zaretskii
2024-12-13 14:46           ` Ship Mints
2024-12-13 16:35           ` Filipp Gunbin
2024-12-13 16:42             ` Ship Mints
2024-12-13 16:52               ` Ship Mints
2024-12-13 20:46                 ` Filipp Gunbin
2024-12-13 16:49             ` Eli Zaretskii
2024-12-13 20:32               ` Filipp Gunbin
2024-12-13 20:54                 ` Ship Mints
2024-12-14  7:52                 ` Eli Zaretskii
2024-12-14  9:40                   ` Gerd Möllmann
2024-12-16 16:32                     ` Filipp Gunbin
2024-12-16 17:30                       ` Gerd Möllmann
2024-12-16 17:42                         ` Eli Zaretskii
2024-12-16 17:53                           ` Gerd Möllmann
2024-12-16 19:09                         ` Filipp Gunbin
2024-12-16 19:20                           ` Ship Mints
2024-12-16 19:57                             ` Gerd Möllmann
2024-12-16 19:58                             ` Eli Zaretskii
2024-12-16 20:07                               ` Ship Mints
2024-12-16 20:19                                 ` Eli Zaretskii
2024-12-17  3:32                                   ` Gerd Möllmann
2024-12-17 12:32                                     ` Eli Zaretskii
2024-12-18 17:50                                       ` Ship Mints
2024-12-19  5:16                                         ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-19 17:23                                           ` Ship Mints
2024-12-20 18:48                                             ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-22  4:49                                             ` Richard Stallman
2024-12-22  6:12                                               ` Gerd Möllmann
2024-12-22  7:46                                               ` Eli Zaretskii
     [not found]                                                 ` <861pxy5zxk.fsf@gnu.org>
2024-12-23 13:36                                                   ` Ship Mints
2024-12-23 13:55                                                     ` Eli Zaretskii
2024-12-23 14:44                                                       ` Ship Mints
2024-12-23 15:06                                                         ` Eli Zaretskii
2024-12-23 19:43                                                           ` Ship Mints
2024-12-26 23:51                                                             ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-27  8:02                                                               ` Eli Zaretskii
2024-12-28  7:08                                                                 ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-28  8:54                                                                   ` Eli Zaretskii
2024-12-29  5:16                                                                     ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-12-29  7:13                                                                       ` Eli Zaretskii
2024-12-16 19:53                           ` Gerd Möllmann
2024-12-16 20:25                             ` Filipp Gunbin
2024-12-16 20:29                               ` Ship Mints
2024-12-12 19:55   ` Gerd Möllmann
2024-12-16  1:41 ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-16  3:40   ` Gerd Möllmann
2024-12-16  5:16     ` Jared Finder via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-16 16:37       ` Eli Zaretskii
2024-12-16 16:47         ` Ship Mints
2024-12-16 17:36         ` Gerd Möllmann
2024-12-16 16:30     ` Eli Zaretskii
2024-12-16 16:49   ` Filipp Gunbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eb5002c5d1b62da9501b7033295a6070@finder.org \
    --to=bug-gnu-emacs@gnu.org \
    --cc=74833@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=fgunbin@fastmail.fm \
    --cc=gerd.moellmann@gmail.com \
    --cc=jared@finder.org \
    --cc=rms@gnu.org \
    --cc=shipmints@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.