GNU bug report logs -
#74016
29.4; emacs-pgtk doesnt receive numpad events on wayland(sway)
Previous Next
Reported by: joakim <at> verona.se
Date: Fri, 25 Oct 2024 19:37:02 UTC
Severity: normal
Found in version 29.4
Full log
View this message in rfc822 format
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: joakim <at> verona.se
>> Date: Fri, 25 Oct 2024 21:35:48 +0200
>>
>>
>> Emacs-pgtk doesnt seem to receive numpad events, instead number events
>> are received.
>>
>> There was a thread about this on emacs-help:
>>
>> https://lists.gnu.org/archive/html/help-gnu-emacs/2024-10/msg00094.html
>>
>> I have attempted to summarize the thread here, wherein Stefan Monier
>> recomended I report this as a bug, and I also received knowledgeable
>> advice from several others.
>>
>> Heres the bug:
>>
>> I used to use a numpad to bind to do things in emacs.
>>
>> This used to work really well on the i3wm window manager and a gtk emacs
>> build.
>>
>> Then I bought a nice new framework laptop which has a hidpi screen, so I
>> switched to using the sway wm, and emacs-pgtk.
>>
>> Now the numpad no longer sends keypad events in a way that emacs
>> recognizes, instead just plain numbers are received.
>>
>> below is an example of the code I use, but normally I just test with c-h
>> k to see which key emacs receives.
>>
>> I also tried xev, and there it seems I get kp events, at least under
>> xwayland I guess.
>>
>> (define-key cider-mode-map (kbd "<kp-enter>") 'sylt-stop)
>> (define-key cider-mode-map (kbd "<kp-separator>") 'sylt-play-metro)
>>
>> (defmacro sylt-song-event-map-key (key num)
>> `(define-key cider-mode-map (kbd ,key)
>> (lambda () (interactive) (cider-nrepl-sync-request:eval
>> ,(concat "(sylt.core/song-event \"" num "\")")))))
>>
>>
>>
>> (sylt-song-event-map-key "<kp-0>" "init")
>> (sylt-song-event-map-key "<kp-1>" "1")
>>
>>
>> Instead of xev, I tried wev, and got this, which seems expected:
>>
>> Using wev, installed from Fedora repos I get, for numpad 4, and normal 4:
>>
>> [14: wl_keyboard] key: serial: 60293; time: 61646320; key: 83; state: 0
>> (released)
>> sym: KP_4 (65460), utf8: ''
>> [14: wl_keyboard] key: serial: 60294; time: 61651642; key: 13; state: 1
>> (pressed)
>> sym: 4 (52), utf8: '4'
>>
>> That is, the numpad and the number pad sends distinct events that are
>> received by wev.
>>
>> using (read-key) in emacs-pgtk, both the numpad and the number row are
>> received as the same event:
>>
>> 52 (#o64, #x34, ?4) [2 times]
>>
>> I get the same in a emacs gtk session.
>>
>> Maybe gtk is doing something weird?
>>
>> so now I tried emacs-29.4-gtk+x11 -Q
>>
>> and then I get "4 (translated from <kp-4>)"
>> on c-h k, numpad 4, so xwayland is doing something correctly in this
>> case, which pgtk isnt doing in the same way(imho incorrectly but what do
>> I know)
>>
>> (and as a reminder, I run emacs-pgtk because it looks super nice on
>> wayland, with the scaling hints I use on my framework hidpi screen, but
>> emacs-29.4-gtk+x11 doesnt look good.)
>
> Po Lu, is this another manifestation of problems with keyboard input
> under PGTK? If so, should we add something to etc/PROBLEMS?
FYI I found a "workaround" to this problem. I now run Sway with scaling of
1 rather than 1.25.
Then I have to scale each application independently, so I set the
corresponding scale factor in sway window decorations, waybar, firefox
etc.
(the problem with this aproach is that a number of x11 apps cant be scaled)
Lastly in emacs I just scale the fonts and run emacs-gtk-x11. Now things
work adequately.
emacs-pgtk has other interesting features, but I guess they will have to
wait a while more.
Thanks everyone!
>
>
>
--
Joakim Verona
joakim <at> verona.se
This bug report was last modified 171 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.