From 84655d3b2627687e14431adb49450cd6af1de40f Mon Sep 17 00:00:00 2001 From: tazjin Date: Wed, 16 Oct 2024 16:51:56 +0300 Subject: Implement input configuration for trackballs (#743) * niri-config: add trackball configuration struct The available options are mostly the same as for mice. I've verified that each option is applicable to trackballs in the libinput CLI. * input: apply trackball config settings --- src/input/mod.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/input') diff --git a/src/input/mod.rs b/src/input/mod.rs index f4beb9f0..ee201922 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -2718,6 +2718,25 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input:: } } + if is_trackball { + let c = &config.trackball; + let _ = device.config_send_events_set_mode(if c.off { + input::SendEventsMode::DISABLED + } else { + input::SendEventsMode::ENABLED + }); + let _ = device.config_scroll_set_natural_scroll_enabled(c.natural_scroll); + let _ = device.config_accel_set_speed(c.accel_speed); + let _ = device.config_middle_emulation_set_enabled(c.middle_emulation); + let _ = device.config_left_handed_set(c.left_handed); + + if let Some(accel_profile) = c.accel_profile { + let _ = device.config_accel_set_profile(accel_profile.into()); + } else if let Some(default) = device.config_accel_default_profile() { + let _ = device.config_accel_set_profile(default); + } + } + if is_trackpoint { let c = &config.trackpoint; let _ = device.config_send_events_set_mode(if c.off { -- cgit