diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-08-15 18:17:26 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-08-15 18:17:26 +0400 |
| commit | 20b75f5f4031ae2a1c6f902313d023cadecd4ab4 (patch) | |
| tree | 809e6ca1136c0f83582d816a04aeddb7a4a04dd7 | |
| parent | 30879ed30b0f8ce95a75fabaa240886fe4932979 (diff) | |
| download | niri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.tar.gz niri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.tar.bz2 niri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.zip | |
Set some touchpad input settings
| -rw-r--r-- | src/input.rs | 13 | ||||
| -rw-r--r-- | src/tty.rs | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/input.rs b/src/input.rs index 7205ad84..35482ed9 100644 --- a/src/input.rs +++ b/src/input.rs @@ -5,6 +5,7 @@ use smithay::backend::input::{ KeyState, KeyboardKeyEvent, PointerAxisEvent, PointerButtonEvent, PointerMotionEvent, TabletToolEvent, TabletToolTipEvent, TabletToolTipState, }; +use smithay::backend::libinput::LibinputInputBackend; use smithay::input::keyboard::{keysyms, FilterResult, KeysymHandle, ModifiersState}; use smithay::input::pointer::{AxisFrame, ButtonEvent, MotionEvent, RelativeMotionEvent}; use smithay::utils::SERIAL_COUNTER; @@ -414,4 +415,16 @@ impl Niri { _ => {} } } + + pub fn process_libinput_event(&mut self, event: &mut InputEvent<LibinputInputBackend>) { + if let InputEvent::DeviceAdded { device } = event { + // According to Mutter code, this setting is specific to touchpads. + let is_touchpad = device.config_tap_finger_count() > 0; + if is_touchpad { + let _ = device.config_tap_set_enabled(true); + let _ = device.config_scroll_set_natural_scroll_enabled(true); + let _ = device.config_accel_set_speed(0.2); + } + } + } } @@ -122,9 +122,10 @@ impl Tty { let input_backend = LibinputInputBackend::new(libinput.clone()); event_loop - .insert_source(input_backend, |event, _, data| { + .insert_source(input_backend, |mut event, _, data| { let tty = data.tty.as_mut().unwrap(); let mut change_vt = |vt| tty.change_vt(vt); + data.niri.process_libinput_event(&mut event); data.niri .process_input_event(&mut change_vt, CompositorMod::Super, event); }) |
