diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-03-13 21:37:52 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-03-13 21:39:07 +0300 |
| commit | ee0e2c7f1b4edae42d2f1b05466adbdffe156e61 (patch) | |
| tree | 75dc357789aaa8e82628a48ed066a29266877c1f /src | |
| parent | 4f16be9e4d3b13925f5fb5368f4e24cba50227c6 (diff) | |
| download | niri-ee0e2c7f1b4edae42d2f1b05466adbdffe156e61.tar.gz niri-ee0e2c7f1b4edae42d2f1b05466adbdffe156e61.tar.bz2 niri-ee0e2c7f1b4edae42d2f1b05466adbdffe156e61.zip | |
Try default when configured xkb keymap fails to compile
Fixes panic at startup.
Diffstat (limited to 'src')
| -rw-r--r-- | src/niri.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/niri.rs b/src/niri.rs index 308a21ac..b7829d0e 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1965,12 +1965,23 @@ impl Niri { let single_pixel_buffer_state = SinglePixelBufferState::new::<State>(&display_handle); let mut seat: Seat<State> = seat_state.new_wl_seat(&display_handle, backend.seat_name()); - seat.add_keyboard( + if let Err(err) = seat.add_keyboard( config_.input.keyboard.xkb.to_xkb_config(), config_.input.keyboard.repeat_delay.into(), config_.input.keyboard.repeat_rate.into(), - ) - .unwrap(); + ) { + 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_pointer(); let cursor_shape_manager_state = CursorShapeManagerState::new::<State>(&display_handle); |
