From 29c7552852874a08f9e70ed52ddfb6be8f55bc69 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 12 May 2024 09:50:16 +0400 Subject: Add linear animation curve --- niri-config/src/lib.rs | 1 + src/animation/mod.rs | 3 +++ wiki/Configuration:-Animations.md | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 52676fa8..14119dc5 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -657,6 +657,7 @@ pub struct EasingParams { #[derive(knuffel::DecodeScalar, Debug, Clone, Copy, PartialEq)] pub enum AnimationCurve { + Linear, EaseOutQuad, EaseOutCubic, EaseOutExpo, diff --git a/src/animation/mod.rs b/src/animation/mod.rs index 2319c00b..0d8b061e 100644 --- a/src/animation/mod.rs +++ b/src/animation/mod.rs @@ -41,6 +41,7 @@ enum Kind { #[derive(Debug, Clone, Copy)] pub enum Curve { + Linear, EaseOutQuad, EaseOutCubic, EaseOutExpo, @@ -358,6 +359,7 @@ impl Animation { impl Curve { pub fn y(self, x: f64) -> f64 { match self { + Curve::Linear => x, Curve::EaseOutQuad => EaseOutQuad.y(x), Curve::EaseOutCubic => EaseOutCubic.y(x), Curve::EaseOutExpo => 1. - 2f64.powf(-10. * x), @@ -368,6 +370,7 @@ impl Curve { impl From for Curve { fn from(value: niri_config::AnimationCurve) -> 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, diff --git a/wiki/Configuration:-Animations.md b/wiki/Configuration:-Animations.md index 440d10fa..f228a5a8 100644 --- a/wiki/Configuration:-Animations.md +++ b/wiki/Configuration:-Animations.md @@ -71,11 +71,12 @@ animations { } ``` -Currently, niri only supports three curves: +Currently, niri only supports four curves: - `ease-out-quad` Since: 0.1.5 - `ease-out-cubic` - `ease-out-expo` +- `linear` Since: 0.1.6 You can get a feel for them on pages like [easings.net](https://easings.net/). -- cgit