diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-06-09 14:02:17 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-06-09 14:04:56 +0300 |
| commit | 6bab9123833c2b0616c952a1ab2897ad4a05a826 (patch) | |
| tree | a9b6431448cacf353f491d0353c73fb85381b321 | |
| parent | 3edb8fd906b69312513ed9c2603bc329685ba3b6 (diff) | |
| download | niri-6bab9123833c2b0616c952a1ab2897ad4a05a826.tar.gz niri-6bab9123833c2b0616c952a1ab2897ad4a05a826.tar.bz2 niri-6bab9123833c2b0616c952a1ab2897ad4a05a826.zip | |
Accept FloatOrInt for input accel_speed, animation slowdown
Technically cfg-breaking due to introducing min/max limits at parse time, but
values outside these limits were invalid anyway, so maybe it's fine?
| -rw-r--r-- | niri-config/src/lib.rs | 14 | ||||
| -rw-r--r-- | src/input/mod.rs | 8 | ||||
| -rw-r--r-- | src/niri.rs | 4 |
3 files changed, 13 insertions, 13 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index e82f881e..796a02c4 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -206,7 +206,7 @@ pub struct Touchpad { #[knuffel(child, unwrap(argument, str))] pub click_method: Option<ClickMethod>, #[knuffel(child, unwrap(argument), default)] - pub accel_speed: f64, + pub accel_speed: FloatOrInt<-1, 1>, #[knuffel(child, unwrap(argument, str))] pub accel_profile: Option<AccelProfile>, #[knuffel(child, unwrap(argument, str))] @@ -232,7 +232,7 @@ pub struct Mouse { #[knuffel(child)] pub natural_scroll: bool, #[knuffel(child, unwrap(argument), default)] - pub accel_speed: f64, + pub accel_speed: FloatOrInt<-1, 1>, #[knuffel(child, unwrap(argument, str))] pub accel_profile: Option<AccelProfile>, #[knuffel(child, unwrap(argument, str))] @@ -254,7 +254,7 @@ pub struct Trackpoint { #[knuffel(child)] pub natural_scroll: bool, #[knuffel(child, unwrap(argument), default)] - pub accel_speed: f64, + pub accel_speed: FloatOrInt<-1, 1>, #[knuffel(child, unwrap(argument, str))] pub accel_profile: Option<AccelProfile>, #[knuffel(child, unwrap(argument, str))] @@ -274,7 +274,7 @@ pub struct Trackball { #[knuffel(child)] pub natural_scroll: bool, #[knuffel(child, unwrap(argument), default)] - pub accel_speed: f64, + pub accel_speed: FloatOrInt<-1, 1>, #[knuffel(child, unwrap(argument, str))] pub accel_profile: Option<AccelProfile>, #[knuffel(child, unwrap(argument, str))] @@ -1047,8 +1047,8 @@ pub struct Clipboard { pub struct Animations { #[knuffel(child)] pub off: bool, - #[knuffel(child, unwrap(argument), default = 1.)] - pub slowdown: f64, + #[knuffel(child, unwrap(argument), default = FloatOrInt(1.))] + pub slowdown: FloatOrInt<0, { i32::MAX }>, #[knuffel(child, default)] pub workspace_switch: WorkspaceSwitchAnim, #[knuffel(child, default)] @@ -1073,7 +1073,7 @@ impl Default for Animations { fn default() -> Self { Self { off: false, - slowdown: 1., + slowdown: FloatOrInt(1.), workspace_switch: Default::default(), horizontal_view_movement: Default::default(), window_movement: Default::default(), diff --git a/src/input/mod.rs b/src/input/mod.rs index 5f31d7ee..fc011b6a 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -4162,7 +4162,7 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input:: let _ = device.config_dwtp_set_enabled(c.dwtp); let _ = device.config_tap_set_drag_lock_enabled(c.drag_lock); let _ = device.config_scroll_set_natural_scroll_enabled(c.natural_scroll); - let _ = device.config_accel_set_speed(c.accel_speed); + let _ = device.config_accel_set_speed(c.accel_speed.0); let _ = device.config_left_handed_set(c.left_handed); let _ = device.config_middle_emulation_set_enabled(c.middle_emulation); @@ -4237,7 +4237,7 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input:: input::SendEventsMode::ENABLED }); let _ = device.config_scroll_set_natural_scroll_enabled(c.natural_scroll); - let _ = device.config_accel_set_speed(c.accel_speed); + let _ = device.config_accel_set_speed(c.accel_speed.0); let _ = device.config_left_handed_set(c.left_handed); let _ = device.config_middle_emulation_set_enabled(c.middle_emulation); @@ -4274,7 +4274,7 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input:: input::SendEventsMode::ENABLED }); let _ = device.config_scroll_set_natural_scroll_enabled(c.natural_scroll); - let _ = device.config_accel_set_speed(c.accel_speed); + let _ = device.config_accel_set_speed(c.accel_speed.0); let _ = device.config_middle_emulation_set_enabled(c.middle_emulation); let _ = device.config_left_handed_set(c.left_handed); @@ -4311,7 +4311,7 @@ pub fn apply_libinput_settings(config: &niri_config::Input, device: &mut input:: input::SendEventsMode::ENABLED }); let _ = device.config_scroll_set_natural_scroll_enabled(c.natural_scroll); - let _ = device.config_accel_set_speed(c.accel_speed); + let _ = device.config_accel_set_speed(c.accel_speed.0); let _ = device.config_left_handed_set(c.left_handed); let _ = device.config_middle_emulation_set_enabled(c.middle_emulation); diff --git a/src/niri.rs b/src/niri.rs index e058cf28..bf1cbd54 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1319,7 +1319,7 @@ impl State { self.niri.layout.ensure_named_workspace(ws_config); } - let rate = 1.0 / config.animations.slowdown.max(0.001); + let rate = 1.0 / config.animations.slowdown.0.max(0.001); self.niri.clock.set_rate(rate); self.niri .clock @@ -2227,7 +2227,7 @@ impl Niri { let mut animation_clock = Clock::default(); - let rate = 1.0 / config_.animations.slowdown.max(0.001); + let rate = 1.0 / config_.animations.slowdown.0.max(0.001); animation_clock.set_rate(rate); animation_clock.set_complete_instantly(config_.animations.off); |
