Opened 4 years ago
Closed 4 years ago
#20216 closed defect (invalid)
Meta key in X.org guest not repeating on Windows 10 host
Reported by: | anrxc | Owned by: | |
---|---|---|---|
Component: | guest additions/x11/graphics | Version: | VirtualBox 6.1.16 |
Keywords: | meta, alt, emacs | Cc: | |
Guest type: | Linux | Host type: | other |
Description
In terminal emulators, in Emacs, and in GTK applications when gtk-key-theme-name=Emacs is used the meta key (Escape and/or left Alt) can be used to quickly navigate the command line or text and source code. Meta+f will go one word forward, Meta+b one word backwards etc.
In a Linux console and in a native Linux desktop environment if you wanted to move 3 words forward you could press: Meta+f ... f ... f. But in a VirtualBox guest on my Windows 10 host you must press: Meta+f Meta+f Meta+f.
The meta key does not repeat. Instead it inserts an "f" into the text for each subsequent press.
Another example, if you wanted to cycle through irssi chat windows you cannot press Meta+2 then 3, then 4... you have to press Meta+2 Meta+3 Meta+4 to cycle to each window.
This destroys productivity completely and is incredibly frustrating! Last two decades I developed muscle memory and various techniques to manipulate systems and code quickly, and now it's all useless.
Before X.org is started the meta key shortcuts behave as they should on the console/terminal, for example Meta+f ... f ... f just works, but when X.org is started they do not.
If you are an experienced Linux user and know exactly what I'm talking about, the type of shortcuts I'm talking about, and if you wanted to reproduce this issue then first remember that Alt is seemingly some kind of a reserved key on a Windows host. You need an Xmodmap such as this to assign it like it behaves typically on native Linux desktops:
$ cat ~/.Xmodmap ! Swap Esc and Alt under VirtualBox guest ! - Todo: unreliable in VirtualBox guest, sometimes must be ! ran 2-3 times, open a separate report about this ! remove mod1 = Alt_L keysym Escape = Alt_L keysym Alt_L = Escape add mod1 = Alt_L $ xmodmap ~/.Xmodmap
Extra information,
Host Windows 10 19042 virtualbox extension pack 6.1.16r140961
Guest Arch Linux virtualbox-guest-utils 6.1.16 xorg-server 1.20.10 xf86-input-libinput 0.30.0 libinput 1.16.4
X.org configuration:
Section "InputClass" Identifier "keyboard" MatchIsKeyboard "on" Option "XkbLayout" "hr,us" # XkbOptions list: /usr/share/X11/xkb/rules/base.lst Option "XkbOptions" "grp:shifts_toggle,terminate:ctrl_alt_bksp" EndSection
This was user error. Please close the issue.
For the first time in many years I used Xterm instead of Urxvt. But Xterm by default does not behave the same. This must be set in ~/.Xdefaults: