diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-16 08:46:38 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-16 10:18:00 +0300 |
| commit | f2b1fc66f21f720ba85a4c218546298e527ba8b9 (patch) | |
| tree | ec7c6950c3a7007357f3ede823392982295c3e1b /niri-config/src | |
| parent | 22302bf224def0ba24ad73e10a987ee6ba33cb2d (diff) | |
| download | niri-f2b1fc66f21f720ba85a4c218546298e527ba8b9.tar.gz niri-f2b1fc66f21f720ba85a4c218546298e527ba8b9.tar.bz2 niri-f2b1fc66f21f720ba85a4c218546298e527ba8b9.zip | |
Make DnD edge view scroll configurable
Diffstat (limited to 'niri-config/src')
| -rw-r--r-- | niri-config/src/lib.rs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 0c4f5680..54e2a3a9 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -59,6 +59,8 @@ pub struct Config { #[knuffel(child, default)] pub animations: Animations, #[knuffel(child, default)] + pub gestures: Gestures, + #[knuffel(child, default)] pub environment: Environment, #[knuffel(children(name = "window-rule"))] pub window_rules: Vec<WindowRule>, @@ -1115,6 +1117,32 @@ pub struct SpringParams { pub epsilon: f64, } +#[derive(knuffel::Decode, Debug, Default, Clone, Copy, PartialEq)] +pub struct Gestures { + #[knuffel(child, default)] + pub dnd_edge_view_scroll: DndEdgeViewScroll, +} + +#[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] +pub struct DndEdgeViewScroll { + #[knuffel(child, unwrap(argument), default = Self::default().trigger_width)] + pub trigger_width: FloatOrInt<0, 65535>, + #[knuffel(child, unwrap(argument), default = Self::default().delay_ms)] + pub delay_ms: u16, + #[knuffel(child, unwrap(argument), default = Self::default().max_speed)] + pub max_speed: FloatOrInt<0, 1_000_000>, +} + +impl Default for DndEdgeViewScroll { + fn default() -> Self { + Self { + trigger_width: FloatOrInt(30.), // Taken from GTK 4. + delay_ms: 50, + max_speed: FloatOrInt(1500.), + } + } +} + #[derive(knuffel::Decode, Debug, Default, Clone, PartialEq, Eq)] pub struct Environment(#[knuffel(children)] pub Vec<EnvironmentVariable>); @@ -3679,6 +3707,13 @@ mod tests { window-open { off; } } + gestures { + dnd-edge-view-scroll { + trigger-width 10 + max-speed 50 + } + } + environment { QT_QPA_PLATFORM "wayland" DISPLAY null @@ -4252,6 +4287,17 @@ mod tests { }, ), }, + gestures: Gestures { + dnd_edge_view_scroll: DndEdgeViewScroll { + trigger_width: FloatOrInt( + 10.0, + ), + delay_ms: 50, + max_speed: FloatOrInt( + 50.0, + ), + }, + }, environment: Environment( [ EnvironmentVariable { |
