aboutsummaryrefslogtreecommitdiff
path: root/niri-config
diff options
context:
space:
mode:
Diffstat (limited to 'niri-config')
-rw-r--r--niri-config/src/lib.rs31
1 files changed, 31 insertions, 0 deletions
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)]
@@ -1231,6 +1233,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)]
pub zoom: FloatOrInt<0, 1>,
@@ -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(