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")]