aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-04-25 10:02:31 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-04-25 02:00:18 -0700
commit31e76cf451eaf8c5f2bc139b3867f2153e72ee1d (patch)
treeaaa164fb5e6d4d04f1294370cb7e8657d690df87 /niri-config/src
parentb8a9be542fe6c6e99b1eac159188166f2bf2e82e (diff)
downloadniri-31e76cf451eaf8c5f2bc139b3867f2153e72ee1d.tar.gz
niri-31e76cf451eaf8c5f2bc139b3867f2153e72ee1d.tar.bz2
niri-31e76cf451eaf8c5f2bc139b3867f2153e72ee1d.zip
overview: Add DnD up/down scrolling
Diffstat (limited to 'niri-config/src')
-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(