Cherry-picked Fix an issue where xkb defined hotkeys for arrows would not work (#34823) Addresses https://github.com/zed-industries/zed/pull/34053#issuecomment-3096447601 where custom-defined arrows would stop working in Zed. How to reproduce: 1. Define custom keyboard layout ```bash cd /usr/share/X11/xkb/symbols/ sudo nano mykbd ``` ``` default partial alphanumeric_keys xkb_symbols "custom" { name[Group1]= "Custom Layout"; key <AD01> { [ q, Q, Escape, Escape ] }; key <AD02> { [ w, W, Home, Home ] }; key <AD03> { [ e, E, Up, Up ] }; key <AD04> { [ r, R, End, End ] }; key <AD05> { [ t, T, Tab, Tab ] }; key <AC01> { [ a, A, Return, Return ] }; key <AC02> { [ s, S, Left, Left ] }; key <AC03> { [ d, D, Down, Down ] }; key <AC04> { [ f, F, Right, Right ] }; key <AC05> { [ g, G, BackSpace, BackSpace ] }; // include a base layout to inherit the rest include "us(basic)" }; ``` 2. Activate custom layout with win-key as AltGr ```bash setxkbmap mykbd -variant custom -option lv3:win_switch ``` 3. Now Win-S should produce left arrow, Win-F right arrow 4. Test whether it works in Zed Release Notes: - linux: xkb-defined hotkeys for arrow keys should behave as expected. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Sergei Surovtsev <97428129+stillonearth@users.noreply.github.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
parent
fab9da0b93
commit
dc4fc962f0
1 changed files with 7 additions and 0 deletions
|
@ -828,6 +828,13 @@ impl crate::Keystroke {
|
|||
Keysym::Delete => "delete".to_owned(),
|
||||
Keysym::Escape => "escape".to_owned(),
|
||||
|
||||
Keysym::Left => "left".to_owned(),
|
||||
Keysym::Right => "right".to_owned(),
|
||||
Keysym::Up => "up".to_owned(),
|
||||
Keysym::Down => "down".to_owned(),
|
||||
Keysym::Home => "home".to_owned(),
|
||||
Keysym::End => "end".to_owned(),
|
||||
|
||||
_ => {
|
||||
let name = xkb::keysym_get_name(key_sym).to_lowercase();
|
||||
if key_sym.is_keypad_key() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue