aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src
diff options
context:
space:
mode:
authorla .uetcis <weitcis@pm.me>2024-03-13 21:26:03 -0700
committerGitHub <noreply@github.com>2024-03-13 21:26:03 -0700
commitcc83ff008d7500f38bce4e75c2dbcdfc1621cac4 (patch)
treeb3f271eab4402c0b59d1efb01b988a87a2b1f129 /niri-config/src
parentba4e7481c3be18c3ec0faeca03ab44a1b49e75bf (diff)
downloadniri-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.rs33
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),