diff options
Diffstat (limited to 'niri-config/src/gestures.rs')
| -rw-r--r-- | niri-config/src/gestures.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/niri-config/src/gestures.rs b/niri-config/src/gestures.rs new file mode 100644 index 00000000..893cc053 --- /dev/null +++ b/niri-config/src/gestures.rs @@ -0,0 +1,57 @@ +use crate::FloatOrInt; + +#[derive(knuffel::Decode, Debug, Default, Clone, Copy, PartialEq)] +pub struct Gestures { + #[knuffel(child, default)] + pub dnd_edge_view_scroll: DndEdgeViewScroll, + #[knuffel(child, default)] + pub dnd_edge_workspace_switch: DndEdgeWorkspaceSwitch, + #[knuffel(child, default)] + pub hot_corners: HotCorners, +} + +#[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: 100, + max_speed: FloatOrInt(1500.), + } + } +} + +#[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, Default, Clone, Copy, PartialEq)] +pub struct HotCorners { + #[knuffel(child)] + pub off: bool, +} |
