aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-08-15 18:17:26 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-08-15 18:17:26 +0400
commit20b75f5f4031ae2a1c6f902313d023cadecd4ab4 (patch)
tree809e6ca1136c0f83582d816a04aeddb7a4a04dd7
parent30879ed30b0f8ce95a75fabaa240886fe4932979 (diff)
downloadniri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.tar.gz
niri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.tar.bz2
niri-20b75f5f4031ae2a1c6f902313d023cadecd4ab4.zip
Set some touchpad input settings
-rw-r--r--src/input.rs13
-rw-r--r--src/tty.rs3
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);
+ }
+ }
+ }
}
diff --git a/src/tty.rs b/src/tty.rs
index 7581379f..a69a4887 100644
--- a/src/tty.rs
+++ b/src/tty.rs
@@ -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);
})