mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-21 02:01:55 +07:00
Preserve num lock state when loading custom keymap
This commit is contained in:
committed by
Ivan Molodetskikh
parent
74d2b18603
commit
8d583fe854
+12
-2
@@ -1376,10 +1376,20 @@ impl State {
|
||||
|
||||
let keymap = std::fs::read_to_string(xkb_file).context("failed to read xkb_file")?;
|
||||
|
||||
let xkb = self.niri.seat.get_keyboard().unwrap();
|
||||
xkb.set_keymap_from_string(self, keymap)
|
||||
let keyboard = self.niri.seat.get_keyboard().unwrap();
|
||||
let num_lock = keyboard.modifier_state().num_lock;
|
||||
|
||||
keyboard
|
||||
.set_keymap_from_string(self, keymap)
|
||||
.context("failed to set keymap")?;
|
||||
|
||||
// Restore num lock to its previous value.
|
||||
let mut mods_state = keyboard.modifier_state();
|
||||
if mods_state.num_lock != num_lock {
|
||||
mods_state.num_lock = num_lock;
|
||||
keyboard.set_modifier_state(mods_state);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user