aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-06-09 14:02:17 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-06-09 14:04:56 +0300
commit6bab9123833c2b0616c952a1ab2897ad4a05a826 (patch)
treea9b6431448cacf353f491d0353c73fb85381b321
parent3edb8fd906b69312513ed9c2603bc329685ba3b6 (diff)
downloadniri-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.rs14
-rw-r--r--src/input/mod.rs8
-rw-r--r--src/niri.rs4
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);