diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-08-27 10:32:50 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-08-27 10:46:46 +0300 |
| commit | 3c11004515d5c1b6773c0ddc7c44ecfa0e451ca2 (patch) | |
| tree | 8d5beb1c1720d307b7a4b53d509b50834b890314 | |
| parent | 02e3f9f66ee71ce5252df3bb7b7c9743e95fdcbc (diff) | |
| download | niri-3c11004515d5c1b6773c0ddc7c44ecfa0e451ca2.tar.gz niri-3c11004515d5c1b6773c0ddc7c44ecfa0e451ca2.tar.bz2 niri-3c11004515d5c1b6773c0ddc7c44ecfa0e451ca2.zip | |
config: Extract gestures
| -rw-r--r-- | niri-config/src/gestures.rs | 57 | ||||
| -rw-r--r-- | niri-config/src/lib.rs | 58 |
2 files changed, 59 insertions, 56 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, +} diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 0de753f7..ced44010 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -21,6 +21,7 @@ use smithay::input::keyboard::Keysym; pub mod animations; pub mod appearance; +pub mod gestures; pub mod input; pub mod layer_rule; pub mod layout; @@ -32,6 +33,7 @@ pub use crate::animations::{ Animation, AnimationCurve, AnimationKind, Animations, EasingParams, SpringParams, }; pub use crate::appearance::*; +pub use crate::gestures::Gestures; pub use crate::input::{Input, ModKey, ScrollMethod, TrackLayout, WarpMouseToFocusMode, Xkb}; pub use crate::layer_rule::LayerRule; pub use crate::layout::*; @@ -154,62 +156,6 @@ pub struct Clipboard { pub disable_primary: bool, } -#[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, -} - #[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] pub struct Overview { #[knuffel(child, unwrap(argument), default = Self::default().zoom)] |
