Support XK_ISO_Level3_Shift and XK_ISO_Level5_Shift #19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for
XK_ISO_Level3_Shift
andXK_ISO_Level5_Shift
.The
AltGr
key is mapped toXK_ISO_Level3_Shift
in the default German keyboard layout (and others). The Neo keyboard layout (which is like a German Dvorak) and other layouts derived from it additionally useXK_ISO_Level5_Shift
. Adding these might make it possible to fix some keyboard layout related bugs in VS Code, p.e. microsoft/vscode#24043, microsoft/vscode#23991 (at least for Linux).The property
withAltGr
now depends onkLevel3KeyModifierMask
(instead ofkControlKeyModifierMask | kAltKeyModifierMask
). This works for both the default German keyboard layout as well as for the Neo layout. Without this PR it doesn't work for Neo (see microsoft/vscode#24043 (comment)).This PR also considers level 5 in the output. This is only important for layouts that use
XK_ISO_Level5_Shift
, like Neo.I have added
withLevel3Level5
as sixth property (instead of the expectedwithShiftLevel5
) because the latter seems to have no relevance but the former corresponds layer 6 in the Neo keyboard layout.value
withShift
withAltGr
withShiftAltGr
withLevel5
withLevel3Level5