From 355828d4d912e9684a80d0575bf551f77f9aac3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asger=20Geel=20Weirs=C3=B8e?= Date: Wed, 6 May 2026 09:53:27 +0200 Subject: [PATCH] fix: remove redundant volume_state=None, improve pactl volume parser for stereo sinks --- crates/ahfail-gtklock/src/lib.rs | 1 - crates/ahfail-ui/src/volume.rs | 13 ++++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/ahfail-gtklock/src/lib.rs b/crates/ahfail-gtklock/src/lib.rs index 7838ce9..6f64481 100644 --- a/crates/ahfail-gtklock/src/lib.rs +++ b/crates/ahfail-gtklock/src/lib.rs @@ -142,6 +142,5 @@ pub unsafe extern "C" fn g_module_unload(_module: *mut c_void) { state.animation = None; state.audio_uri = None; state.config.deadzone = None; - state.volume_state = None; }); } \ No newline at end of file diff --git a/crates/ahfail-ui/src/volume.rs b/crates/ahfail-ui/src/volume.rs index 7b3745f..138f3a2 100644 --- a/crates/ahfail-ui/src/volume.rs +++ b/crates/ahfail-ui/src/volume.rs @@ -69,9 +69,16 @@ fn get_current_volume() -> (u32, bool) { #[cfg(target_os = "linux")] fn parse_pactl_volume(output: &str) -> Option { - output.split('%').next() - .and_then(|s| s.split_whitespace().last()) - .and_then(|s| s.parse().ok()) + for token in output.split_whitespace() { + if let Some(pct) = token.strip_suffix('%') { + if let Ok(v) = pct.parse::() { + if v <= 100 { + return Some(v); + } + } + } + } + None } #[cfg(target_os = "linux")]