diff options
| author | la .uetcis <weitcis@pm.me> | 2024-03-13 21:26:03 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-13 21:26:03 -0700 |
| commit | cc83ff008d7500f38bce4e75c2dbcdfc1621cac4 (patch) | |
| tree | b3f271eab4402c0b59d1efb01b988a87a2b1f129 /niri-config/src | |
| parent | ba4e7481c3be18c3ec0faeca03ab44a1b49e75bf (diff) | |
| download | niri-cc83ff008d7500f38bce4e75c2dbcdfc1621cac4.tar.gz niri-cc83ff008d7500f38bce4e75c2dbcdfc1621cac4.tar.bz2 niri-cc83ff008d7500f38bce4e75c2dbcdfc1621cac4.zip | |
Add `clickfinger` in touchpad config (#256)
* Add clickfinger in touchpad config
* Change `clickfinger` to `click-method`
* Change `bottom_areas` to `button_areas`
* Change button_areas to button-areas
For consistency.
* Reorder click methods in error message
The most usual one comes first.
* default-config: Move click-method down
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'niri-config/src')
| -rw-r--r-- | niri-config/src/lib.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 6d104827..cad39c66 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -142,6 +142,8 @@ pub struct Touchpad { pub dwtp: bool, #[knuffel(child)] pub natural_scroll: bool, + #[knuffel(child, unwrap(argument, str))] + pub click_method: Option<ClickMethod>, #[knuffel(child, unwrap(argument), default)] pub accel_speed: f64, #[knuffel(child, unwrap(argument, str))] @@ -171,6 +173,21 @@ pub struct Trackpoint { } #[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ClickMethod { + Clickfinger, + ButtonAreas, +} + +impl From<ClickMethod> for input::ClickMethod { + fn from(value: ClickMethod) -> Self { + match value { + ClickMethod::Clickfinger => Self::Clickfinger, + ClickMethod::ButtonAreas => Self::ButtonAreas, + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum AccelProfile { Adaptive, Flat, @@ -1469,6 +1486,20 @@ impl FromStr for Key { } } +impl FromStr for ClickMethod { + type Err = miette::Error; + + fn from_str(s: &str) -> Result<Self, Self::Err> { + match s { + "clickfinger" => Ok(Self::Clickfinger), + "button-areas" => Ok(Self::ButtonAreas), + _ => Err(miette!( + r#"invalid click method, can be "button-areas" or "clickfinger""# + )), + } + } +} + impl FromStr for AccelProfile { type Err = miette::Error; @@ -1534,6 +1565,7 @@ mod tests { tap dwt dwtp + click-method "clickfinger" accel-speed 0.2 accel-profile "flat" tap-button-map "left-middle-right" @@ -1676,6 +1708,7 @@ mod tests { tap: true, dwt: true, dwtp: true, + click_method: Some(ClickMethod::Clickfinger), natural_scroll: false, accel_speed: 0.2, accel_profile: Some(AccelProfile::Flat), |
