https://bugs.kde.org/show_bug.cgi?id=464735
--- Comment #7 from Bernd Steinhauser <li...@bernd-steinhauser.de> ---
First, I opened bug 465463, since I think that I actually found two bugs at the
same time and just wasn't sure whether they are connected or not. Now I'm
pretty sure that they have nothing to do with each other.
Here, I will only report on my findings with the key events when using
non-standard keyboard layouts.

I investigated this a bit further and I do think I understand now what is going
on. I was especially surprised to find that kwin has problems with keys like
the cursor keys or Page Up/Down, which are standard keys and are not modified
by Neo 2 or any other of the mentioned layouts.
These keys are defined by xkb in /usr/share/X11/xkb/symbols/pc, online link:
https://github.com/freedesktop/xkeyboard-config/blob/master/symbols/pc#L61
    key  <INS> {[  Insert  ]};
    key <DELE> {[  Delete  ]};
    key <HOME> {[  Home    ]};
    key  <END> {[  End     ]};
    key <PGUP> {[  Prior   ]};
    key <PGDN> {[  Next    ]};

Now one special thing that Neo 2 invented and that was adapted by other layouts
like adnw or l3 is that you have a second set of these keys (and others as
well) when using the so-called "M4" modifier (which is Level5 in xkb), as shown
here:
https://dl.neo-layout.org/grafik/bilder-einzeln/flat/neo-4-tkl.path.svg
This is a pretty handy thing for quickly moving in a text without needing to
move your hands from the main keyboard keys, but it means there are now e.g.
two keys with the entry Prior. These are defined in
/usr/share/X11/xkb/symbols/de. Online link: 
https://github.com/freedesktop/xkeyboard-config/blob/master/symbols/de#L439
e.g. for Prior:
key <AD01> { [ x,                       X,                       ellipsis,     
          Greek_xi,                Prior,                   Prior,             
      Greek_XI,                NoSymbol                 ] };

Now, I assume that kwin (or kwindowsystems, I'm not familiar with the code)
will perform a lookup for these symbols and it will find the one in 'de' first.
Thus, it will emit key <AD01> without any modifier, which for Neo 2 corresponds
to the symbol 'x', which is exactly what I get when checking it with wev.
Dvorak on the other hand does not introduce additional Prior/Next etc. keys,
hence it's not affected, despite moving around a lot of keys.
I assume the solution for this would be to always first check the symbols in
'pc105' as defined in the 'pc' file, since this is the basis for all layouts
and then proceed with any additions on top of that.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to