From 74607374819e000fb4d43a923176be17b838ff29 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 6 Sep 2023 15:49:46 +0400 Subject: Add animation-slowdown debug setting --- src/animation.rs | 5 ++++- src/config.rs | 23 +++++++++++++++++++++++ src/main.rs | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/animation.rs b/src/animation.rs index 27449243..430e3516 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -2,9 +2,12 @@ use std::time::Duration; use keyframe::functions::EaseOutCubic; use keyframe::EasingFunction; +use portable_atomic::{AtomicF64, Ordering}; use crate::utils::get_monotonic_time; +pub static ANIMATION_SLOWDOWN: AtomicF64 = AtomicF64::new(1.); + #[derive(Debug)] pub struct Animation { from: f64, @@ -23,7 +26,7 @@ impl Animation { Self { from, to, - duration: over, + duration: over.mul_f64(ANIMATION_SLOWDOWN.load(Ordering::Relaxed)), start_time: now, current_time: now, } diff --git a/src/config.rs b/src/config.rs index a7d6fd7d..9d03275e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -13,6 +13,8 @@ pub struct Config { pub input: Input, #[knuffel(child, default)] pub binds: Binds, + #[knuffel(child, default)] + pub debug: DebugConfig, } // FIXME: Add other devices. @@ -122,6 +124,20 @@ pub enum Action { MaximizeColumn, } +#[derive(knuffel::Decode, Debug, PartialEq)] +pub struct DebugConfig { + #[knuffel(child, unwrap(argument), default = 1.)] + pub animation_slowdown: f64, +} + +impl Default for DebugConfig { + fn default() -> Self { + Self { + animation_slowdown: 1., + } + } +} + impl Config { pub fn load(path: Option) -> miette::Result { let path = if let Some(path) = path { @@ -233,6 +249,10 @@ mod tests { Mod+Ctrl+Shift+L { move-window-to-monitor-right; } Mod+Comma { consume-window-into-column; } } + + debug { + animation-slowdown 2.0 + } "#, Config { input: Input { @@ -286,6 +306,9 @@ mod tests { actions: vec![Action::ConsumeWindowIntoColumn], }, ]), + debug: DebugConfig { + animation_slowdown: 2., + }, }, ); } diff --git a/src/main.rs b/src/main.rs index f71a959a..81422065 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,6 +20,7 @@ use clap::Parser; use config::Config; use miette::Context; use niri::{Niri, State}; +use portable_atomic::Ordering; use smithay::reexports::calloop::EventLoop; use smithay::reexports::wayland_server::Display; use tracing_subscriber::EnvFilter; @@ -61,6 +62,7 @@ fn main() { Config::default() } }; + animation::ANIMATION_SLOWDOWN.store(config.debug.animation_slowdown, Ordering::Relaxed); let mut event_loop = EventLoop::try_new().unwrap(); let mut display = Display::new().unwrap(); -- cgit