diff options
| author | Andreas Stührk <andy@hammerhartes.de> | 2024-03-22 22:09:25 +0100 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-23 15:45:27 +0400 |
| commit | d120e0c45142251b7c59b3a36f9bda709a58095e (patch) | |
| tree | 950da800bfba1e559e9be029f8830ac1ee9dd474 /niri-config | |
| parent | 0f724f20116dd5b013f797521bb53649e7eeb3ed (diff) | |
| download | niri-d120e0c45142251b7c59b3a36f9bda709a58095e.tar.gz niri-d120e0c45142251b7c59b3a36f9bda709a58095e.tar.bz2 niri-d120e0c45142251b7c59b3a36f9bda709a58095e.zip | |
input: Add support for ISO level3 shift modifier
This modifier is typically called "AltGr" on keyboards or "Mod5" in xkb
layouts. Requires a Smithay update.
Diffstat (limited to 'niri-config')
| -rw-r--r-- | niri-config/src/lib.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 39b1f7f5..4e43d795 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -746,7 +746,8 @@ bitflags! { const SHIFT = 2; const ALT = 4; const SUPER = 8; - const COMPOSITOR = 16; + const ISO_LEVEL3_SHIFT = 16; + const COMPOSITOR = 32; } } @@ -1542,6 +1543,10 @@ impl FromStr for Key { modifiers |= Modifiers::ALT; } else if part.eq_ignore_ascii_case("super") || part.eq_ignore_ascii_case("win") { modifiers |= Modifiers::SUPER; + } else if part.eq_ignore_ascii_case("iso_level3_shift") + || part.eq_ignore_ascii_case("mod5") + { + modifiers |= Modifiers::ISO_LEVEL3_SHIFT; } else { return Err(miette!("invalid modifier: {part}")); } @@ -2087,4 +2092,22 @@ mod tests { assert!("-".parse::<SizeChange>().is_err()); assert!("10% ".parse::<SizeChange>().is_err()); } + + #[test] + fn parse_iso_level3_shift() { + assert_eq!( + "ISO_Level3_Shift+A".parse::<Key>().unwrap(), + Key { + trigger: Trigger::Keysym(Keysym::a), + modifiers: Modifiers::ISO_LEVEL3_SHIFT + }, + ); + assert_eq!( + "Mod5+A".parse::<Key>().unwrap(), + Key { + trigger: Trigger::Keysym(Keysym::a), + modifiers: Modifiers::ISO_LEVEL3_SHIFT + }, + ); + } } |
