From 31e76cf451eaf8c5f2bc139b3867f2153e72ee1d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 25 Apr 2025 10:02:31 +0300 Subject: overview: Add DnD up/down scrolling --- niri-config/src/lib.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'niri-config') diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 26fdb8bd..9bad320b 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -1208,6 +1208,8 @@ pub struct SpringParams { pub struct Gestures { #[knuffel(child, default)] pub dnd_edge_view_scroll: DndEdgeViewScroll, + #[knuffel(child, default)] + pub dnd_edge_workspace_switch: DndEdgeWorkspaceSwitch, } #[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] @@ -1230,6 +1232,26 @@ impl Default for DndEdgeViewScroll { } } +#[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] +pub struct DndEdgeWorkspaceSwitch { + #[knuffel(child, unwrap(argument), default = Self::default().trigger_height)] + pub trigger_height: 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 DndEdgeWorkspaceSwitch { + fn default() -> Self { + Self { + trigger_height: FloatOrInt(50.), + delay_ms: 100, + max_speed: FloatOrInt(1500.), + } + } +} + #[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] pub struct Overview { #[knuffel(child, unwrap(argument), default = Self::default().zoom)] @@ -4556,6 +4578,15 @@ mod tests { 50.0, ), }, + dnd_edge_workspace_switch: DndEdgeWorkspaceSwitch { + trigger_height: FloatOrInt( + 50.0, + ), + delay_ms: 100, + max_speed: FloatOrInt( + 1500.0, + ), + }, }, overview: Overview { zoom: FloatOrInt( -- cgit