Add an AltGr key; full-mode letters flick to their AltGr symbol
The right alt in full mode is now AltGr: sticky like the other modifiers, it types the keymap's third/fourth level (sk: AltGr+J = ') instead of an Alt shortcut. In hold-keys mode it holds the physical right alt, since KWin resets the modifier state after an ISO_Level3_Shift keysym. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
|
||||
struct xkb_keymap;
|
||||
|
||||
// One typing key of a keymap layout, at its two shift levels. A level is
|
||||
// either text or a dead key (then `text` is its spacing accent, for labels).
|
||||
// One typing key of a keymap layout, at its shift and AltGr levels. A level
|
||||
// is either text or a dead key (then the text is its spacing accent, for labels).
|
||||
struct KeymapKey {
|
||||
enum class Position { Regular, Backslash, LessGreater }; // BKSL, LSGT: not on every keyboard
|
||||
|
||||
@@ -15,6 +15,10 @@ struct KeymapKey {
|
||||
QString upper;
|
||||
quint32 deadLower = 0; // dead keysym, 0 if the level types text
|
||||
quint32 deadUpper = 0;
|
||||
QString altGr; // third level (AltGr), empty if it types nothing
|
||||
QString altGrUpper; // fourth level (AltGr+Shift)
|
||||
quint32 deadAltGr = 0;
|
||||
quint32 deadAltGrUpper = 0;
|
||||
|
||||
bool isLetter() const;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user