Hyper mapped by default to Mod3 in xkeyboard-config 2.43 #663
Labels
No Label
(╯°□°)╯︵ ┻━┻
Bug
Diskussion
Dokumentation
Duplikat
Gitea
Hardware
Hilfe
Invalid
Java
Lernen
Qt
Remote
Subversion
Tablet
Tastaturbelegung
Test
Treiber/Android
Treiber/iOS
Treiber/Linux/Konsole
Treiber/Linux/xkb
Treiber/Linux/xmodmap
Treiber/MacOS
Treiber/Windows/AHK
Treiber/Windows/kbdneo
Treiber/Windows/ReNeo
Verbesserung
Website
Windows 11
Wontfix
Worksforme
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: neo/neo-layout#663
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hi,
xkeyboard-config
maintainer here.Hyper
is mapped by default toMod3
sincexkeyboard-config
2.43 in order to solve this issue.However, I got a report that any use of
LevelFive
modifier in Emacs now triggersHyper
shortcuts. Indeed, both virtual modifiers map now to the real modifierMod3
. Not being a user of Emacs myself, could anybody confirm that?While the use of the
Hyper
modifier seems a niche AFAIK, this is obviously not the case of Emacs.There is a pending merge request to fix this issue. It would be very useful to have your feedback.
By the way, I am big fan of the Neo project (but not using its layouts). Together with Bépo, it got me into tweaking keyboard layouts and I ended a maintainer of
xkeyboard-config
andlibxkbcommon
.Welcome Wismill!
Just saw this issue. Unfortunately I am not versed in xkb magic (only knowing and doing the Windows part of Neo), but I will ask around in the IRC channel if there might be anyone to test and confirm it.
@qwertfisch Thank you for taking care of this. Can anyone confirm the issue?
Hi Wismill
I'm currently don't know how I can test this. I have tried to put "setxkbmap -I$HOME/src/xkeyboard-config -rules base de neo" in my .xinitrc (from docs/HOWTO.testing). But this breaks my i3 setup (I have mod on the windows-key). I'm on debian stable with xkeyconfig-config 2.35 installed.
@satanist OK, there seems to be 2 issues.
I think you should use
evdev
rules on modern Linux.The doc is probably dated (20 years since last meaningful modification 😅
setxkbmap -Ixxx
does not work as expected. Butxkbcomp -Ixxx
does. So in order to test the Neo layout provided by the latestxkeyboard-config
release, please follow these steps:Remove the line above that you added in you
.xinitrc
and restart a clean session.Download and extract the 2.43 release, say e.g. in
/tmp/xkc-2.43
Build
xkeyboard-config
:Under an X11 session, run:
setxkbmap -print -rules evdev -layout de -variant neo | xkbcomp -I -I/tmp/xkc-2.43/inst/share/X11/xkb - $DISPLAY
.Note that the empty
-I
is intended; i.e. fromxkbcomp
manual:You may add
-w 10
to thexkbcomp
command to get more verbose output, if necessary.Run
setxkbmap -rules evdev -layout de -variant neo
(not in/tmp/xkc-2.43
) to get back to you system keyboard layout, or simply relog.EDIT: fixed
xkeyboard-config
missing build step.@Wismill I think there is some parts in your explanation missing.
First of all I think the command should be something like
... | xkbcomp -I -I/tmp/xkc-2.43 - $DISPLAY
.Next when I try to run this without any -I the neo-mod4 aren't working.
When including the xkc dir I get following error:
I have also attached the full output of the command with xkc-2.43. This conntains an error about the HYPR key. This error is gone when I manual include the linked merge request.
Btw: sorry for the long delay
@satanist you are right, I missed the
-
before$DISPLAY
. But I also forgot that thexkeyboard-config
link above is only a source tarball: you need to build it. I fixed my previous comment, please git it another try.However, that does not explain the following error:
It seems there is an issue with the X server that is not obvious to reproduce.
setxkbmap … | xkbcomp …
works on first try.setxkbmap -layout de
then re-run our command, it works!Note that
setxkbmap
is not the correct way to change layout in a Wayland session: it will only affect X11 apps. ↩︎I belive there is some X extension missing which gets autoloaded by setxkbmap when needed. Because when I run
setxkbmap de neo
before I runxkbcomp
it's working.When getting this loaded I can't use Ebene4 (and Ebene6) or X Level5 (and Level7). I have also tried what happens when I remove the mod3 -> hyper mapping. But with this change the Ebene4 also doesn't work.
I have looked at the initial merge request and I would say changing Mod4 to Mod3 breaks neo (and friends).
Ps: it's
meson setup --prefix="$PWD/inst" build
and you missed the-
againPps: would be nice when you add something like this to the repo docs, so other can simpler test the current state.
@satanist Glad you confirm. X11 land is such a mess 😅
I do not reproduce this. What is the output of
xev -event keyboard
for such config and key sequence?Oups, fixed?!
I think so too: see the corresponding MR.
I messed up a bit on first testing (forgot to open a new client).
So what I have tested now is following:
setxkbmap -print -rules evdev -layout de -variant neo | xkbcomp - "$DISPLAY"
(I'm not sure if this change the results)setxkbmap -print -rules evdev -layout de -variant neo | xkbcomp -I -I/tmp/xkc-2.43/inst/share/X11/xkb - "$DISPLAY"
Here the xev output for a Level5 key event:
and the output for a Level3 event:
@satanist Sorry for the delay. So when trying the 2.43 release, you see no side effect in Emacs? Could that mean that you and this other Emacs user have a different config for Hyper in Emacs, so you have no issue but he has?
EDIT: according to the other Emacs user, error triggers with an empty Emacs config.