diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-04-25 10:02:31 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-04-25 02:00:18 -0700 |
| commit | 31e76cf451eaf8c5f2bc139b3867f2153e72ee1d (patch) | |
| tree | aaa164fb5e6d4d04f1294370cb7e8657d690df87 /niri-config/src | |
| parent | b8a9be542fe6c6e99b1eac159188166f2bf2e82e (diff) | |
| download | niri-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.rs | 31 |
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( |
