mirror of
https://github.com/YaLTeR/niri.git
synced 2024-09-11 12:35:58 +03:00
Add animation-slowdown debug setting
This commit is contained in:
parent
c7a7b2daf2
commit
7460737481
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -1376,6 +1376,7 @@ dependencies = [
|
||||
"knuffel",
|
||||
"logind-zbus",
|
||||
"miette",
|
||||
"portable-atomic",
|
||||
"profiling",
|
||||
"sd-notify",
|
||||
"serde",
|
||||
@ -1666,6 +1667,12 @@ dependencies = [
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "portable-atomic"
|
||||
version = "1.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.17"
|
||||
|
@ -16,6 +16,7 @@ keyframe = { version = "1.1.1", default-features = false }
|
||||
knuffel = "3.2.0"
|
||||
logind-zbus = "3.1.2"
|
||||
miette = { version = "5.10.0", features = ["fancy"] }
|
||||
portable-atomic = { version = "1.4.3", default-features = false, features = ["float"] }
|
||||
profiling = "1.0.9"
|
||||
sd-notify = "0.4.1"
|
||||
serde = { version = "1.0.188", features = ["derive"] }
|
||||
|
@ -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,
|
||||
}
|
||||
|
@ -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<PathBuf>) -> miette::Result<Self> {
|
||||
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.,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user