From 82dabc21f3c2379a7bed320574ff468869d59a18 Mon Sep 17 00:00:00 2001 From: erdii Date: Sun, 20 Apr 2025 11:30:40 +0200 Subject: feat: implement support to enable numlock at startup Signed-off-by: erdii --- src/niri.rs | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/niri.rs b/src/niri.rs index 69e48962..ab7371dc 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -2248,22 +2248,30 @@ impl Niri { let single_pixel_buffer_state = SinglePixelBufferState::new::(&display_handle); let mut seat: Seat = seat_state.new_wl_seat(&display_handle, backend.seat_name()); - if let Err(err) = seat.add_keyboard( + let keyboard = match seat.add_keyboard( config_.input.keyboard.xkb.to_xkb_config(), config_.input.keyboard.repeat_delay.into(), config_.input.keyboard.repeat_rate.into(), ) { - if let smithay::input::keyboard::Error::BadKeymap = err { - warn!("error loading the configured xkb keymap, trying default"); - } else { - warn!("error adding keyboard: {err:?}"); + Err(err) => { + if let smithay::input::keyboard::Error::BadKeymap = err { + warn!("error loading the configured xkb keymap, trying default"); + } else { + warn!("error adding keyboard: {err:?}"); + } + seat.add_keyboard( + Default::default(), + config_.input.keyboard.repeat_delay.into(), + config_.input.keyboard.repeat_rate.into(), + ) + .unwrap() } - seat.add_keyboard( - Default::default(), - config_.input.keyboard.repeat_delay.into(), - config_.input.keyboard.repeat_rate.into(), - ) - .unwrap(); + Ok(keyboard) => keyboard, + }; + if config_.input.keyboard.numlock { + let mut modifier_state = keyboard.modifier_state(); + modifier_state.num_lock = true; + keyboard.set_modifier_state(modifier_state); } seat.add_pointer(); -- cgit