Subject: bug#57904: 28.2; Holding capslock key on colemak layout does not keep erasing

From: Nikita Romanyuk <[email-masked]>
Date: Sat, 17 Sep 2022 21:48:15 +0300

Date: Sat, 17 Sep 2022 21:42:37 +0300
Message-ID: <[email-masked]>
--text follows this line--

I'm running GNU/Emacs on Wayland wlroots compositor Sway, via Xwayland
and I'm using colemak keyboard layout which has Caps-lock key bound to
Backspace. I expect holding Caps-lock to behave the same as holding
Backspace. However, it does not. When I hold Backspace it starts erasing
text, until I unhold it. But when I hold Caps-lock key, it erases one
single character and stops. This is incorrect.

Steps to reproduce (assuming you run Xorg environment, as most people
still do):
- Set layout to colemak: setxkbmap -layout 'us' -variant 'colemak'
- Open GNU/Emacs
- Start erasing any text with Caps-lock key (holding it)

I'm not sure if this bug persists on Xorg environment because it's not
my main driver.

In GNU Emacs 28.2 (build 1, x86_64-gentoo-linux-musl, GTK+ Version 3.24.34)
of 2022-09-15 built on kelviumtux
Windowing system distributor 'The X.Org Foundation', version 11.0.12201003
System Description: Gentoo Linux

Configured using:
'configure --prefix=/usr --build=x86_64-gentoo-linux-musl
--host=x86_64-gentoo-linux-musl --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --datarootdir=/usr/share
--disable-silent-rules --docdir=/usr/share/doc/emacs-28.2
--htmldir=/usr/share/doc/emacs-28.2/html --libdir=/usr/lib
--program-suffix=-emacs-28 --includedir=/usr/include/emacs-28
--infodir=/usr/share/info/emacs-28 --localstatedir=/var
--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
--without-compress-install --without-hesiod --without-pop
--with-file-notification=inotify --with-pdumper --enable-acl
--with-dbus --without-modules --without-gameuser --with-libgmp
--without-gpm --without-native-compilation --without-json
--without-kerberos --without-kerberos5 --without-lcms2 --without-xml2
--without-mailutils --without-selinux --with-gnutls
--without-libsystemd --with-threads --without-wide-int
--with-sound=alsa --with-zlib --with-x --without-ns --without-gconf
--without-gsettings --without-toolkit-scroll-bars --without-gif
--without-jpeg --without-png --without-rsvg --without-tiff --with-xpm
--without-imagemagick --with-xft --without-cairo --without-harfbuzz
--without-libotf --without-m17n-flt --with-x-toolkit=gtk3
--without-xwidgets --with-dumping=pdumper 'CFLAGS=-march=haswell -O2
-pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''

Configured features:
ACL DBUS FREETYPE GLIB GMP GNUTLS NOTIFY INOTIFY PDUMPER SECCOMP SOUND
THREADS X11 XDBE XFT XIM XPM GTK3 ZLIB

Important settings:
value of $LANG: C.UTF8
locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
override-global-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils edmacro kmacro
northcode-theme cus-edit pp cus-load wid-edit cl-extra help-mode
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
site-gentoo info package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 245346 14087)
(symbols 48 15546 1)
(strings 32 82586 2478)
(string-bytes 1 2061287)
(vectors 16 23640)
(vector-slots 8 334850 17855)
(floats 8 43 111)
(intervals 56 400 0)
(buffers 992 11))