aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-03-13 21:37:52 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-03-13 21:39:07 +0300
commitee0e2c7f1b4edae42d2f1b05466adbdffe156e61 (patch)
tree75dc357789aaa8e82628a48ed066a29266877c1f /src
parent4f16be9e4d3b13925f5fb5368f4e24cba50227c6 (diff)
downloadniri-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.rs17
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);