From e7a83ba472d47034d965e392cf94357d026abfb8 Mon Sep 17 00:00:00 2001 From: oiupoyt Date: Sun, 11 Oct 2026 18:33:55 +0530 Subject: [PATCH] fix(ui): borderless toast, effective power-gated replay with drain --- src/daemon.rs | 54 ++++++++++++++++++++++++++++++++------------- src/overlay_egui.rs | 10 +-------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/src/daemon.rs b/src/daemon.rs index 51482ea..de61b2c 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -446,9 +446,21 @@ async fn run_daemon_async() -> Result<(), Box bool { + if !cfg.replay_enabled { + return false; + } + if cfg.autostart_power_only && !crate::config::ScytheConfig::is_ac_power_connected() { + return false; + } + true + } + let recorder_handle = thread::spawn(move || { let mut config = crate::config::ScytheConfig::load(); - replay_state_clone.store(config.replay_enabled, Ordering::SeqCst); + let mut replay_effective = effective_replay_active(&config); + replay_state_clone.store(replay_effective, Ordering::SeqCst); + let mut last_power_state = crate::config::ScytheConfig::is_ac_power_connected(); let active_bitrate = if config.replay_enabled { config.replay_bitrate_kbps @@ -670,11 +682,8 @@ async fn run_daemon_async() -> Result<(), Box Result<(), Box Result<(), Box { - if config.replay_enabled { + if replay_effective { let now = std::time::Instant::now(); if now.duration_since(last_replay_save) > std::time::Duration::from_millis(800) { last_replay_save = now; @@ -995,11 +1010,8 @@ async fn run_daemon_async() -> Result<(), Box Result<(), Box