mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-22 02:01:55 +07:00
Allow disabling tap-and-drag (#1107)
* Allow disabling tap-and-drag Similar to https://github.com/YaLTeR/niri/pull/1088, this adds a new touchpad `drag` configuration option that configures tap-and-drag behavior. Currently tap-and-drag is always enabled when the `tap` setting is enabled, but other compositors allow setting this separately. * Update wiki/Configuration:-Input.md --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
This commit is contained in:
@@ -185,6 +185,8 @@ pub struct Touchpad {
|
|||||||
pub dwt: bool,
|
pub dwt: bool,
|
||||||
#[knuffel(child)]
|
#[knuffel(child)]
|
||||||
pub dwtp: bool,
|
pub dwtp: bool,
|
||||||
|
#[knuffel(child, unwrap(argument))]
|
||||||
|
pub drag: Option<bool>,
|
||||||
#[knuffel(child)]
|
#[knuffel(child)]
|
||||||
pub drag_lock: bool,
|
pub drag_lock: bool,
|
||||||
#[knuffel(child)]
|
#[knuffel(child)]
|
||||||
@@ -3553,6 +3555,7 @@ mod tests {
|
|||||||
tap
|
tap
|
||||||
dwt
|
dwt
|
||||||
dwtp
|
dwtp
|
||||||
|
drag true
|
||||||
click-method "clickfinger"
|
click-method "clickfinger"
|
||||||
accel-speed 0.2
|
accel-speed 0.2
|
||||||
accel-profile "flat"
|
accel-profile "flat"
|
||||||
@@ -3811,6 +3814,9 @@ mod tests {
|
|||||||
tap: true,
|
tap: true,
|
||||||
dwt: true,
|
dwt: true,
|
||||||
dwtp: true,
|
dwtp: true,
|
||||||
|
drag: Some(
|
||||||
|
true,
|
||||||
|
),
|
||||||
drag_lock: false,
|
drag_lock: false,
|
||||||
natural_scroll: false,
|
natural_scroll: false,
|
||||||
click_method: Some(
|
click_method: Some(
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ input {
|
|||||||
tap
|
tap
|
||||||
// dwt
|
// dwt
|
||||||
// dwtp
|
// dwtp
|
||||||
|
// drag false
|
||||||
// drag-lock
|
// drag-lock
|
||||||
natural-scroll
|
natural-scroll
|
||||||
// accel-speed 0.2
|
// accel-speed 0.2
|
||||||
|
|||||||
@@ -3334,6 +3334,13 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input::
|
|||||||
let _ = device.config_left_handed_set(c.left_handed);
|
let _ = device.config_left_handed_set(c.left_handed);
|
||||||
let _ = device.config_middle_emulation_set_enabled(c.middle_emulation);
|
let _ = device.config_middle_emulation_set_enabled(c.middle_emulation);
|
||||||
|
|
||||||
|
if let Some(drag) = c.drag {
|
||||||
|
let _ = device.config_tap_set_drag_enabled(drag);
|
||||||
|
} else {
|
||||||
|
let default = device.config_tap_default_drag_enabled();
|
||||||
|
let _ = device.config_tap_set_drag_enabled(default);
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(accel_profile) = c.accel_profile {
|
if let Some(accel_profile) = c.accel_profile {
|
||||||
let _ = device.config_accel_set_profile(accel_profile.into());
|
let _ = device.config_accel_set_profile(accel_profile.into());
|
||||||
} else if let Some(default) = device.config_accel_default_profile() {
|
} else if let Some(default) = device.config_accel_default_profile() {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ input {
|
|||||||
tap
|
tap
|
||||||
// dwt
|
// dwt
|
||||||
// dwtp
|
// dwtp
|
||||||
|
// drag false
|
||||||
// drag-lock
|
// drag-lock
|
||||||
natural-scroll
|
natural-scroll
|
||||||
// accel-speed 0.2
|
// accel-speed 0.2
|
||||||
@@ -186,6 +187,7 @@ Settings specific to `touchpad`s:
|
|||||||
- `tap`: tap-to-click.
|
- `tap`: tap-to-click.
|
||||||
- `dwt`: disable-when-typing.
|
- `dwt`: disable-when-typing.
|
||||||
- `dwtp`: disable-when-trackpointing.
|
- `dwtp`: disable-when-trackpointing.
|
||||||
|
- `drag`: can be `true` or `false`, controls if tap-and-drag is enabled.
|
||||||
- `drag-lock`: <sup>Since: 25.02</sup> if set, lifting the finger off for a short time while dragging will not drop the dragged item. See the [libinput documentation](https://wayland.freedesktop.org/libinput/doc/latest/tapping.html#tap-and-drag).
|
- `drag-lock`: <sup>Since: 25.02</sup> if set, lifting the finger off for a short time while dragging will not drop the dragged item. See the [libinput documentation](https://wayland.freedesktop.org/libinput/doc/latest/tapping.html#tap-and-drag).
|
||||||
- `tap-button-map`: can be `left-right-middle` or `left-middle-right`, controls which button corresponds to a two-finger tap and a three-finger tap.
|
- `tap-button-map`: can be `left-right-middle` or `left-middle-right`, controls which button corresponds to a two-finger tap and a three-finger tap.
|
||||||
- `click-method`: can be `button-areas` or `clickfinger`, changes the [click method](https://wayland.freedesktop.org/libinput/doc/latest/clickpad-softbuttons.html).
|
- `click-method`: can be `button-areas` or `clickfinger`, changes the [click method](https://wayland.freedesktop.org/libinput/doc/latest/clickpad-softbuttons.html).
|
||||||
|
|||||||
Reference in New Issue
Block a user