Subject: bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u

From: Po Lu <[email-masked]>
Date: Fri, 01 Nov 2024 21:02:41 +0800

Eli Zaretskii <[email-masked]> writes:

>> X-Spam-Status: No, score=-0.8 tagged_above=-999 required=6.2
>>  tests=[ALL_TRUSTED=-1, DKIM_INVALID=0.1, DKIM_SIGNED=0.1] autolearn=disabled
>> From: [email-masked]
>> Cc: Po Lu <[email-masked]>,  [email-masked]
>> Date: Thu, 31 Oct 2024 20:39:29 +0100
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> 
>> > Isn't this the following known issue from PROBLEMS?
>> >
>> >   ** Certain keys such as 'C-S-u' are not reported correctly.
>> >
>> >   Some keys with modifiers such as Shift and Control might not be
>> >   reported correctly due to incorrectly written GTK input method
>> >   modules.  This is known to happen to 'C-S-u' and 'C->', which are
>> >   misreported as 'C-u' and '>'.
>> >
>> >   To disable the use of GTK input methods, evaluate:
>> >
>> >     (pgtk-use-im-context nil)
>> >
>> >   This will also cause system input methods and features such as the
>> >   Compose key to stop working.
>> >
>> >   On X Windows, users should not use Emacs configured with PGTK, since
>> >   this and many other problems do not exist on the regular X builds.
>> 
>> Thanks!
>> 
>>     (pgtk-use-im-context nil)
>> 
>> inhibited the broken gtk input method c-s-u behaviour, and now the code below can be
>> made to emulate the behaviour in other applications.
>> 
>> 
>> ;; enable standard linux unicode input
>> (define-key global-map (kbd "C-S-u") 'read-unicode-char)
>> 
>> (defun read-unicode-char (c1 c2 c3 c4 _trailing_space_ignored)
>>   "Convert unicode input C1 C2 C3 C4 to the corresponding insert char call."
>>   (interactive "c\nc\nc\nc\nc")
>>   (insert-char (string-to-number (format "%c%c%c%c" c1 c2 c3 c4) 16)))
>> 
>> PS
>> I'm using Sway/Wayland and emacs-pgtk looks better than emacs-gtk-x11
>> there. Maybe I'll go back to X11 when the novelty of Sway faded.
>
> So can we close this bug now?

I suspect so, yes.

It has long been my intention to write a Wayland backend for Emacs
without dependencies on GTK.  This will be an uphill battle, but I
understand that Wayland has become far more stable than of old, and this
could easily be a project for anyone to adopt.