diff options
| -rw-r--r-- | niri-config/src/animations.rs | 48 | ||||
| -rw-r--r-- | niri-config/src/lib.rs | 4 | ||||
| -rw-r--r-- | src/animation/mod.rs | 16 | ||||
| -rw-r--r-- | src/layout/tests/animations.rs | 6 | ||||
| -rw-r--r-- | src/tests/animations.rs | 7 |
5 files changed, 40 insertions, 41 deletions
diff --git a/niri-config/src/animations.rs b/niri-config/src/animations.rs index 9a870834..90ff0bf2 100644 --- a/niri-config/src/animations.rs +++ b/niri-config/src/animations.rs @@ -54,11 +54,11 @@ impl Default for Animations { #[derive(Debug, Clone, Copy, PartialEq)] pub struct Animation { pub off: bool, - pub kind: AnimationKind, + pub kind: Kind, } #[derive(Debug, Clone, Copy, PartialEq)] -pub enum AnimationKind { +pub enum Kind { Easing(EasingParams), Spring(SpringParams), } @@ -66,11 +66,11 @@ pub enum AnimationKind { #[derive(Debug, Clone, Copy, PartialEq)] pub struct EasingParams { pub duration_ms: u32, - pub curve: AnimationCurve, + pub curve: Curve, } #[derive(knuffel::DecodeScalar, Debug, Clone, Copy, PartialEq)] -pub enum AnimationCurve { +pub enum Curve { Linear, EaseOutQuad, EaseOutCubic, @@ -91,7 +91,7 @@ impl Default for WorkspaceSwitchAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 1., stiffness: 1000, epsilon: 0.0001, @@ -111,9 +111,9 @@ impl Default for WindowOpenAnim { Self { anim: Animation { off: false, - kind: AnimationKind::Easing(EasingParams { + kind: Kind::Easing(EasingParams { duration_ms: 150, - curve: AnimationCurve::EaseOutExpo, + curve: Curve::EaseOutExpo, }), }, custom_shader: None, @@ -132,9 +132,9 @@ impl Default for WindowCloseAnim { Self { anim: Animation { off: false, - kind: AnimationKind::Easing(EasingParams { + kind: Kind::Easing(EasingParams { duration_ms: 150, - curve: AnimationCurve::EaseOutQuad, + curve: Curve::EaseOutQuad, }), }, custom_shader: None, @@ -149,7 +149,7 @@ impl Default for HorizontalViewMovementAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 1., stiffness: 800, epsilon: 0.0001, @@ -165,7 +165,7 @@ impl Default for WindowMovementAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 1., stiffness: 800, epsilon: 0.0001, @@ -185,7 +185,7 @@ impl Default for WindowResizeAnim { Self { anim: Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 1., stiffness: 800, epsilon: 0.0001, @@ -203,7 +203,7 @@ impl Default for ConfigNotificationOpenCloseAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 0.6, stiffness: 1000, epsilon: 0.001, @@ -219,7 +219,7 @@ impl Default for ExitConfirmationOpenCloseAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 0.6, stiffness: 500, epsilon: 0.01, @@ -235,9 +235,9 @@ impl Default for ScreenshotUiOpenAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Easing(EasingParams { + kind: Kind::Easing(EasingParams { duration_ms: 200, - curve: AnimationCurve::EaseOutQuad, + curve: Curve::EaseOutQuad, }), }) } @@ -250,7 +250,7 @@ impl Default for OverviewOpenCloseAnim { fn default() -> Self { Self(Animation { off: false, - kind: AnimationKind::Spring(SpringParams { + kind: Kind::Spring(SpringParams { damping_ratio: 1., stiffness: 800, epsilon: 0.0001, @@ -446,9 +446,9 @@ impl Animation { pub fn new_off() -> Self { Self { off: true, - kind: AnimationKind::Easing(EasingParams { + kind: Kind::Easing(EasingParams { duration_ms: 0, - curve: AnimationCurve::Linear, + curve: Curve::Linear, }), } } @@ -465,7 +465,7 @@ impl Animation { #[derive(Default, PartialEq)] struct OptionalEasingParams { duration_ms: Option<u32>, - curve: Option<AnimationCurve>, + curve: Option<Curve>, } expect_only_children(node, ctx); @@ -556,24 +556,24 @@ impl Animation { let kind = if let Some(spring_params) = spring_params { // Configured spring. - AnimationKind::Spring(spring_params) + Kind::Spring(spring_params) } else if easing_params == OptionalEasingParams::default() { // Did not configure anything. default.kind } else { // Configured easing. - let default = if let AnimationKind::Easing(easing) = default.kind { + let default = if let Kind::Easing(easing) = default.kind { easing } else { // Generic fallback values for when the default animation is spring, but the user // configured an easing animation. EasingParams { duration_ms: 250, - curve: AnimationCurve::EaseOutCubic, + curve: Curve::EaseOutCubic, } }; - AnimationKind::Easing(EasingParams { + Kind::Easing(EasingParams { duration_ms: easing_params.duration_ms.unwrap_or(default.duration_ms), curve: easing_params.curve.unwrap_or(default.curve), }) diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 636b4c82..21072994 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -22,9 +22,7 @@ pub mod utils; pub mod window_rule; pub mod workspace; -pub use crate::animations::{ - Animation, AnimationCurve, AnimationKind, Animations, EasingParams, SpringParams, -}; +pub use crate::animations::{Animation, Animations}; pub use crate::appearance::*; pub use crate::binds::*; pub use crate::debug::DebugConfig; diff --git a/src/animation/mod.rs b/src/animation/mod.rs index 044ddd46..a8de3275 100644 --- a/src/animation/mod.rs +++ b/src/animation/mod.rs @@ -77,7 +77,7 @@ impl Animation { let start_time = self.start_time; match config.kind { - niri_config::AnimationKind::Spring(p) => { + niri_config::animations::Kind::Spring(p) => { let params = SpringParams::new(p.damping_ratio, f64::from(p.stiffness), p.epsilon); let spring = Spring { @@ -88,7 +88,7 @@ impl Animation { }; *self = Self::spring(self.clock.clone(), spring); } - niri_config::AnimationKind::Easing(p) => { + niri_config::animations::Kind::Easing(p) => { *self = Self::ease( self.clock.clone(), self.from, @@ -346,13 +346,13 @@ impl Curve { } } -impl From<niri_config::AnimationCurve> for Curve { - fn from(value: niri_config::AnimationCurve) -> Self { +impl From<niri_config::animations::Curve> for Curve { + fn from(value: niri_config::animations::Curve) -> Self { match value { - niri_config::AnimationCurve::Linear => Curve::Linear, - niri_config::AnimationCurve::EaseOutQuad => Curve::EaseOutQuad, - niri_config::AnimationCurve::EaseOutCubic => Curve::EaseOutCubic, - niri_config::AnimationCurve::EaseOutExpo => Curve::EaseOutExpo, + niri_config::animations::Curve::Linear => Curve::Linear, + niri_config::animations::Curve::EaseOutQuad => Curve::EaseOutQuad, + niri_config::animations::Curve::EaseOutCubic => Curve::EaseOutCubic, + niri_config::animations::Curve::EaseOutExpo => Curve::EaseOutExpo, } } } diff --git a/src/layout/tests/animations.rs b/src/layout/tests/animations.rs index bae2d512..3f39e25a 100644 --- a/src/layout/tests/animations.rs +++ b/src/layout/tests/animations.rs @@ -1,7 +1,7 @@ use std::fmt::Write as _; use insta::assert_snapshot; -use niri_config::{AnimationCurve, AnimationKind, EasingParams}; +use niri_config::animations::{Curve, EasingParams, Kind}; use super::*; @@ -23,9 +23,9 @@ fn format_tiles(layout: &Layout<TestWindow>) -> String { } fn make_options() -> Options { - const LINEAR: AnimationKind = AnimationKind::Easing(EasingParams { + const LINEAR: Kind = Kind::Easing(EasingParams { duration_ms: 1000, - curve: AnimationCurve::Linear, + curve: Curve::Linear, }); let mut options = Options { diff --git a/src/tests/animations.rs b/src/tests/animations.rs index d930d254..90d64dc8 100644 --- a/src/tests/animations.rs +++ b/src/tests/animations.rs @@ -2,7 +2,8 @@ use std::fmt::Write as _; use std::time::Duration; use insta::assert_snapshot; -use niri_config::{AnimationCurve, AnimationKind, Config, EasingParams, FloatOrInt}; +use niri_config::animations::{Curve, EasingParams, Kind}; +use niri_config::{Config, FloatOrInt}; use niri_ipc::SizeChange; use smithay::utils::{Point, Size}; use wayland_client::protocol::wl_surface::WlSurface; @@ -73,9 +74,9 @@ fn set_time(niri: &mut Niri, time: Duration) { // Sets up a fixture with linear animations, a renderer, and an output. fn set_up() -> Fixture { - const LINEAR: AnimationKind = AnimationKind::Easing(EasingParams { + const LINEAR: Kind = Kind::Easing(EasingParams { duration_ms: 1000, - curve: AnimationCurve::Linear, + curve: Curve::Linear, }); let mut config = Config::default(); |
