diff options
| -rw-r--r-- | src/config.rs | 14 | ||||
| -rw-r--r-- | src/niri.rs | 15 |
2 files changed, 17 insertions, 12 deletions
diff --git a/src/config.rs b/src/config.rs index a76bf348..966fd85b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -6,7 +6,7 @@ use directories::ProjectDirs; use miette::{miette, Context, IntoDiagnostic}; use smithay::input::keyboard::keysyms::KEY_NoSymbol; use smithay::input::keyboard::xkb::{keysym_from_name, KEYSYM_CASE_INSENSITIVE}; -use smithay::input::keyboard::Keysym; +use smithay::input::keyboard::{Keysym, XkbConfig}; #[derive(knuffel::Decode, Debug, PartialEq)] pub struct Config { @@ -80,6 +80,18 @@ pub struct Xkb { pub options: Option<String>, } +impl Xkb { + pub fn to_xkb_config(&self) -> XkbConfig { + XkbConfig { + rules: &self.rules, + model: &self.model, + layout: self.layout.as_deref().unwrap_or("us"), + variant: &self.variant, + options: self.options.clone(), + } + } +} + #[derive(knuffel::DecodeScalar, Debug, Default, PartialEq, Eq)] pub enum TrackLayout { /// The layout change is global. diff --git a/src/niri.rs b/src/niri.rs index 61d99527..544ae16d 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -32,7 +32,7 @@ use smithay::desktop::utils::{ use smithay::desktop::{ layer_map_for_output, LayerSurface, PopupManager, Space, Window, WindowSurfaceType, }; -use smithay::input::keyboard::{Layout as KeyboardLayout, XkbConfig, XkbContextHandler}; +use smithay::input::keyboard::{Layout as KeyboardLayout, XkbContextHandler}; use smithay::input::pointer::{CursorIcon, CursorImageAttributes, CursorImageStatus, MotionEvent}; use smithay::input::{Seat, SeatState}; use smithay::output::Output; @@ -633,17 +633,10 @@ impl Niri { VirtualKeyboardManagerState::new::<State, _>(&display_handle, |_| true); let mut seat: Seat<State> = seat_state.new_wl_seat(&display_handle, backend.seat_name()); - let xkb = XkbConfig { - rules: &config_.input.keyboard.xkb.rules, - model: &config_.input.keyboard.xkb.model, - layout: config_.input.keyboard.xkb.layout.as_deref().unwrap_or("us"), - variant: &config_.input.keyboard.xkb.variant, - options: config_.input.keyboard.xkb.options.clone(), - }; seat.add_keyboard( - xkb, - config_.input.keyboard.repeat_delay as i32, - config_.input.keyboard.repeat_rate as i32, + config_.input.keyboard.xkb.to_xkb_config(), + config_.input.keyboard.repeat_delay.into(), + config_.input.keyboard.repeat_rate.into(), ) .unwrap(); seat.add_pointer(); |
