From 4ca6596b1dab0309eac07d7ccd837373ae015d94 Mon Sep 17 00:00:00 2001 From: jmb05 Date: Sun, 25 Oct 2026 00:02:36 +0200 Subject: [PATCH] Clippy --- Cargo.lock | 164 ++++++++++++++--------------- Cargo.toml | 2 +- src/backend/audio.rs | 17 ++- src/backend/brightness_control.rs | 58 +++++----- src/backend/network.rs | 115 ++++++++++---------- src/backend/perf_stats.rs | 50 +++++---- src/backend/tailscale.rs | 24 ++--- src/backend/window_manager_hypr.rs | 36 +++---- src/css.rs | 22 ++-- src/ui.rs | 21 ++-- src/ui/action_centre.rs | 35 +++--- src/ui/title_panel.rs | 80 +++++++------- src/ui/utilities_panel.rs | 91 +++++++--------- src/ui/workspaces_panel.rs | 22 ++-- 14 files changed, 351 insertions(+), 386 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ed96131..d6cbca5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,7 +63,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ - "memchr 2.8.3", + "memchr", ] [[package]] @@ -416,7 +416,7 @@ dependencies = [ "hyper-util", "itoa", "matchit", - "memchr 2.8.3", + "memchr", "mime", "percent-encoding", "pin-project-lite", @@ -679,9 +679,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877bf67ac8e52449eb2f9e98a344ea163beb70dd1f9eebe3cc5357dcfeaee4df" +checksum = "86e055fa6e3e40ad6187ba25b6855eeb635d5271f8e0f0e1e9a5826b8d75bea0" dependencies = [ "find-msvc-tools", "jobserver", @@ -746,7 +746,7 @@ checksum = "13de944a44b5064ee5d3a5ceccc49a41bfec50f2580e66f82e87703acdb88b53" dependencies = [ "cfg-if", "encoding_rs", - "memchr 2.8.3", + "memchr", ] [[package]] @@ -849,7 +849,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92" dependencies = [ "bytes", - "memchr 2.8.3", + "memchr", ] [[package]] @@ -1029,9 +1029,9 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" +checksum = "cc907c45bb7e9ef8fc3778defd0f3cd8c81288f1b4e748eba064948f20c47122" dependencies = [ "cpubits", "ctutils", @@ -1076,9 +1076,9 @@ dependencies = [ [[package]] name = "ctutils" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12218662ccac37d9714f2191252553d67585b97df8c839cbe49e0bde278dc865" +checksum = "38d28fb6aa7dd680b3ffd1a3e64e115c177bdba63c0ae7f9cd48129ff05c4fa0" dependencies = [ "cmov", "subtle", @@ -1170,26 +1170,25 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba69f2c53e320fc4abad17cb02bbbf04d1a36f18e9907f347589ec5991b3c6c5" dependencies = [ - "mccs", + "mccs 0.1.3", ] [[package]] name = "ddc-hi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6747b17c926a2aa34739b30f1a6cc726e3a7baf0e2f69a4c03a95cf5de94de" +version = "0.5.0-jmb1" +source = "git+https://github.com/jmb05/ddc-hi-rs#3c105d7ce3333220d7304c34468c421cea5941a0" dependencies = [ - "anyhow", "ddc", "ddc-i2c", "ddc-macos", "ddc-winapi", "edid", "log", - "mccs", + "mccs 0.2.0", "mccs-caps", "mccs-db", "nvapi", + "thiserror 2.0.21", ] [[package]] @@ -1362,12 +1361,6 @@ dependencies = [ "litrs", ] -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - [[package]] name = "dunce" version = "1.0.5" @@ -1417,11 +1410,10 @@ dependencies = [ [[package]] name = "edid" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ce75530893d834dcfe3bb67ce0e7dec489484e7cb4423ca31618af4bab24fe" +version = "0.4.0" +source = "git+https://github.com/jmb05/rust-edid#509d792617f521ea3797b70b547ac64a5fa35935" dependencies = [ - "nom", + "nom 8.0.0", ] [[package]] @@ -1432,9 +1424,9 @@ checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" [[package]] name = "elliptic-curve" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" +checksum = "0ad4496221fcfc21015fd8c0e26fcfab00504832dc0604f52acdd7bad2a8dc81" dependencies = [ "base16ct", "crypto-bigint", @@ -1797,7 +1789,7 @@ dependencies = [ "futures-macro", "futures-sink", "futures-task", - "memchr 2.8.3", + "memchr", "pin-project-lite", "slab", ] @@ -1985,7 +1977,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "memchr 2.8.3", + "memchr", "smallvec", ] @@ -2972,12 +2964,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -3118,25 +3104,30 @@ dependencies = [ ] [[package]] -name = "mccs-caps" -version = "0.1.3" +name = "mccs" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb961d01a3bb07969cfa276be2ab88c31d0fefa77a872696832732d6e9ec094" +checksum = "2a63ab5297c9a7d5f8298a076b5f858c3c51ce84bf2f57a302d1d67ff9323360" + +[[package]] +name = "mccs-caps" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47729c9dbef15d10c6a7ebb3157034265ccc2559e76ac10afb45ecc69ce09288" dependencies = [ - "mccs", - "nom", + "mccs 0.2.0", + "nom 7.1.3", ] [[package]] name = "mccs-db" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cdaa8fe19a1a1918becc1b8cbbbdc1058bc71411dff4de0a6ec6b5269f49d38" +checksum = "3f407952e10e26ed81e89ebb45ecd3a153854ad74d956f6f4dcca4472b587dc5" dependencies = [ - "mccs", - "nom", + "mccs 0.2.0", + "nom 7.1.3", "serde", - "serde_derive", "serde_yaml", ] @@ -3146,15 +3137,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c" -[[package]] -name = "memchr" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -dependencies = [ - "libc", -] - [[package]] name = "memchr" version = "2.8.3" @@ -3213,6 +3195,12 @@ dependencies = [ "unicase", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.9.1" @@ -3366,11 +3354,21 @@ dependencies = [ [[package]] name = "nom" -version = "3.2.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "memchr 1.0.2", + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", ] [[package]] @@ -4238,7 +4236,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "278e9268c93b9e498a2da46c34d90ba93a3255eb99009646398f34bc73ab36eb" dependencies = [ "bitflags 2.13.2", - "memchr 2.8.3", + "memchr", "unicase", ] @@ -4405,7 +4403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", - "memchr 2.8.3", + "memchr", "regex-automata", "regex-syntax", ] @@ -4417,7 +4415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", - "memchr 2.8.3", + "memchr", "regex-syntax", ] @@ -4923,7 +4921,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6" dependencies = [ "itoa", - "memchr 2.8.3", + "memchr", "serde", "serde_core", "zmij", @@ -4974,14 +4972,15 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.7.5" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8099d3df28273c99a1728190c7a9f19d444c941044f64adf986bee7ec53051" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "dtoa", - "linked-hash-map", + "indexmap", + "itoa", + "ryu", "serde", - "yaml-rust", + "unsafe-libyaml", ] [[package]] @@ -5145,9 +5144,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.16.3" +version = "1.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3dc8af474f516a851ff4bd12db780f948b9250ad37211e4eec0bccea54e01b" +checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8" [[package]] name = "socket2" @@ -5324,7 +5323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2071df9448915b71c4fe6d25deaf1c22f12bd234f01540b77312bb8e41361e6" dependencies = [ "libc", - "memchr 2.8.3", + "memchr", "ntapi", "objc2-core-foundation", "objc2-io-kit", @@ -5912,6 +5911,12 @@ dependencies = [ "ctutils", ] +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "untrusted" version = "0.7.1" @@ -5960,9 +5965,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.28.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606" +checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -6125,9 +6130,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb" +checksum = "e49d0e65abc00c142e8f9428da991da9f1a250c39be97459901eb12b9b49f62a" dependencies = [ "rustls-pki-types", ] @@ -6640,7 +6645,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ - "memchr 2.8.3", + "memchr", ] [[package]] @@ -6710,15 +6715,6 @@ version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "yoke" version = "0.8.4" diff --git a/Cargo.toml b/Cargo.toml index 04d8c31..1f28e27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ hyper-util = { version = "0.1.21", features = ["tokio"] } http-body-util = "0.1.5" brightness = { version = "0.8.0", features = ["blocking"] } battery = "0.7.8" -ddc-hi = { version = "0.4.1", features = ["ddc-i2c"] } +ddc-hi = { git = "https://github.com/jmb05/ddc-hi-rs" } [build-dependencies] glib-build-tools = "0.22.8" diff --git a/src/backend/audio.rs b/src/backend/audio.rs index d365538..66ec91a 100644 --- a/src/backend/audio.rs +++ b/src/backend/audio.rs @@ -307,8 +307,8 @@ impl BackendThread> for MediaBackend { loop { while let Ok(msg) = controller_rx.try_recv() { match msg { - ControllerMsg::Request => { - let _ = instance_clone.lock().expect("Couldn't get lock").publish( + Request => { + instance_clone.lock().expect("Couldn't get lock").publish( MediaCommand::Cmd( controller.current_vol, controller.current_mute, @@ -319,7 +319,7 @@ impl BackendThread> for MediaBackend { ControllerMsg::NotifyServer => { controller.query_default_device_blocking(); let _ = controller.query_state_blocking(); - let _ = instance_clone.lock().expect("Couldn't get lock").publish( + instance_clone.lock().expect("Couldn't get lock").publish( MediaCommand::Cmd( controller.current_vol, controller.current_mute, @@ -331,14 +331,13 @@ impl BackendThread> for MediaBackend { if controller.device_index.is_some_and(|i| i == idx) { let changed = controller.query_state_blocking(); if changed { - let _ = instance_clone - .lock() - .expect("Couldn't get lock") - .publish(MediaCommand::Cmd( + instance_clone.lock().expect("Couldn't get lock").publish( + MediaCommand::Cmd( controller.current_vol, controller.current_mute, controller.device_bt.unwrap_or(false), - )); + ), + ); trace!( &LOGGER, "Change: {} muted: {}", @@ -350,7 +349,7 @@ impl BackendThread> for MediaBackend { } ControllerMsg::Set(volume, mute) => { controller.set_state(volume, mute); - let _ = instance_clone.lock().expect("Couldn't get lock").publish( + instance_clone.lock().expect("Couldn't get lock").publish( MediaCommand::Cmd( controller.current_vol, controller.current_mute, diff --git a/src/backend/brightness_control.rs b/src/backend/brightness_control.rs index 05ef3b6..7d7c0c4 100644 --- a/src/backend/brightness_control.rs +++ b/src/backend/brightness_control.rs @@ -15,7 +15,7 @@ use std::{fs, thread}; pub enum DisplayBackend { Sysfs(BrightnessDevice), - DdcCi(ddc_hi::Display), + DdcCi(Box), } fn get_sysfs_dev(id: &str) -> Option { @@ -47,7 +47,7 @@ impl DisplayBackend { pub fn get_brightness(&mut self) -> Option { match self { - DisplayBackend::Sysfs(dev) => dev.get().and_then(|val| Ok(val as u8)).ok(), + DisplayBackend::Sysfs(dev) => dev.get().map(|val| val as u8).ok(), DisplayBackend::DdcCi(display) => { if let Ok(val) = display.handle.get_vcp_feature(0x10) { Some(val.value() as u8) @@ -70,11 +70,11 @@ struct DisplayData(DisplayBackend, u8); impl DisplayData { fn update(&mut self) -> bool { - if let Some(value) = self.0.get_brightness() { - if self.1 != value { - self.1 = value; - return true; - } + if let Some(value) = self.0.get_brightness() + && self.1 != value + { + self.1 = value; + return true; } false } @@ -116,7 +116,7 @@ impl BackendThread> for BrightnessM subscribers: Vec::new(), })); let instance_clone = instance.clone(); - std::thread::spawn(move || { + thread::spawn(move || { while let Ok(tx) = registration_rx.recv() { if tx.send(BrightnessMessage::Init(f2b_tx.clone())).is_ok() { trace!(&LOGGER, "Added Brightness Subscriber: {tx:?}"); @@ -129,7 +129,7 @@ impl BackendThread> for BrightnessM } }); let instance_clone = instance.clone(); - std::thread::spawn(move || { + thread::spawn(move || { while let Ok(mut msg) = f2b_rx.recv() { while let Ok(newer) = f2b_rx.try_recv() { msg = newer; @@ -151,7 +151,7 @@ impl BackendThread> for BrightnessM .expect("Couldn't get lock") .display_cache .get(&id) - .and_then(|v| Some(v.1)) + .map(|v| v.1) { instance_clone .lock() @@ -216,23 +216,21 @@ impl BrightnessManager { if path.file_name().eq("device") && let Ok(link) = fs::read_link(path.path()) && let Some(name) = link.file_name() - { - if name + && name .to_str() .is_some_and(|name| name.eq(&format!("card1-{connector}"))) - { - println!("Found sysfs display {connector}"); - let path = bl_path.file_name(); - let Some(name) = path.to_str() else { continue }; - let Some(device) = get_sysfs_dev(name) else { - continue; - }; - let mut backend = DisplayBackend::Sysfs(device); - let value = backend.get_brightness().unwrap_or(60); - self.display_cache - .insert(connector.clone(), DisplayData(backend, value)); - return; - } + { + println!("Found sysfs display {connector}"); + let path = bl_path.file_name(); + let Some(name) = path.to_str() else { continue }; + let Some(device) = get_sysfs_dev(name) else { + continue; + }; + let mut backend = DisplayBackend::Sysfs(device); + let value = backend.get_brightness().unwrap_or(60); + self.display_cache + .insert(connector.clone(), DisplayData(backend, value)); + return; } } } @@ -244,7 +242,7 @@ impl BrightnessManager { println!("Found DDC/CI display {connector}"); for display in ddc_hi::Display::enumerate() { if id.to_string().eq(&display.info.id) { - let mut backend = DisplayBackend::DdcCi(display); + let mut backend = DisplayBackend::DdcCi(Box::new(display)); let value = backend.get_brightness().unwrap_or(60); self.display_cache .insert(connector.clone(), DisplayData(backend, value)); @@ -307,10 +305,10 @@ impl BrightnessManager { } } - if drm_connector.as_deref() == Some(connector) { - if let Some(bus) = bus { - return Ok(bus); - } + if drm_connector.as_deref() == Some(connector) + && let Some(bus) = bus + { + return Ok(bus); } } diff --git a/src/backend/network.rs b/src/backend/network.rs index 4473143..3de7668 100644 --- a/src/backend/network.rs +++ b/src/backend/network.rs @@ -39,7 +39,7 @@ impl PartialEq for NetworkInfo { impl PartialOrd for NetworkInfo { fn partial_cmp(&self, other: &Self) -> Option { - Some(other.cmp(self)) + Some(self.cmp(other)) } } @@ -82,20 +82,17 @@ impl From for ConnectError { match value { ConnectionError::AuthFailed => ConnectError::AuthFailed, ConnectionError::NotFound => ConnectError::NotFound, - ConnectionError::Dbus(err) => match err { - Error::MethodError(name, ..) => { - if name.eq(&ErrorName::try_from( - "org.freedesktop.NetworkManager.Device.SpecificObjectNotFound", - ) - .unwrap()) - { - ConnectError::NotFound - } else { - ConnectError::Unknown - } + ConnectionError::Dbus(Error::MethodError(name, ..)) => { + if name.eq(&ErrorName::try_from( + "org.freedesktop.NetworkManager.Device.SpecificObjectNotFound", + ) + .unwrap()) + { + ConnectError::NotFound + } else { + ConnectError::Unknown } - _ => ConnectError::Unknown, - }, + } _ => ConnectError::Unknown, } } @@ -208,13 +205,13 @@ impl BackendThread> for NetworkBac } else { match auth { Auth::Open => { - if let Ok(networks) = nm.list_access_points(None).await { - if let Some(ap) = networks.iter().find(|net| net.ssid.eq(&ssid)) { - if ap.security.is_open() { - instance_clone.connect(&nm, ssid, WifiSecurity::Open).await; - } else { - instance_clone.publish(NetworkState::Auth(ssid, AuthType::Password)); - } + if let Ok(networks) = nm.list_access_points(None).await + && let Some(ap) = networks.iter().find(|net| net.ssid.eq(&ssid)) + { + if ap.security.is_open() { + instance_clone.connect(&nm, ssid, WifiSecurity::Open).await; + } else { + instance_clone.publish(NetworkState::Auth(ssid, AuthType::Password)); } } } @@ -269,23 +266,23 @@ impl NetworkBackendHandle { } async fn print_network_info(&self, nm: &NetworkManager, ssid: &str, level: Level) { - if let Ok(nets) = nm.list_networks(None).await { - if let Some(net) = nets.iter().find(|net| net.ssid.eq(ssid)) { - log!(&LOGGER, level, "Network:"); - log!(&LOGGER, level, " SSID: {}", net.ssid); - log!(&LOGGER, level, " Active: {}", net.is_active); - log!(&LOGGER, level, " Known: {}", net.known); - log!(&LOGGER, level, " Secured: {}", net.secured); - if net.secured { - log!(&LOGGER, level, " Features: {:?}", net.security_features); - log!(&LOGGER, level, " EAP: {}", net.is_eap); - log!(&LOGGER, level, " PSK: {}", net.is_psk); - } - log!(&LOGGER, level, " Strength: {:?}", net.strength); - log!(&LOGGER, level, " Device: {}", net.device); - log!(&LOGGER, level, " Addr(4): {:?}", net.ip4_address); - log!(&LOGGER, level, " Addr(6): {:?}", net.ip6_address); + if let Ok(nets) = nm.list_networks(None).await + && let Some(net) = nets.iter().find(|net| net.ssid.eq(ssid)) + { + log!(&LOGGER, level, "Network:"); + log!(&LOGGER, level, " SSID: {}", net.ssid); + log!(&LOGGER, level, " Active: {}", net.is_active); + log!(&LOGGER, level, " Known: {}", net.known); + log!(&LOGGER, level, " Secured: {}", net.secured); + if net.secured { + log!(&LOGGER, level, " Features: {:?}", net.security_features); + log!(&LOGGER, level, " EAP: {}", net.is_eap); + log!(&LOGGER, level, " PSK: {}", net.is_psk); } + log!(&LOGGER, level, " Strength: {:?}", net.strength); + log!(&LOGGER, level, " Device: {}", net.device); + log!(&LOGGER, level, " Addr(4): {:?}", net.ip4_address); + log!(&LOGGER, level, " Addr(6): {:?}", net.ip6_address); } } @@ -304,7 +301,7 @@ impl NetworkBackendHandle { NetworkEvent::WirelessEnabledChanged => { if let Ok(state) = nm.wifi_state().await { if !state.enabled { - let _ = self.publish(NetworkState::ChangeNetwork(None)); + self.publish(NetworkState::ChangeNetwork(None)); } else { let _ = self.send_active_connection(nm).await; } @@ -313,23 +310,22 @@ impl NetworkBackendHandle { NetworkEvent::ActiveConnectionsChanged => { let _ = self.send_active_connection(nm).await; } - NetworkEvent::DeviceChanged { interface } => match interface { - Some(interface) => match nm.active_vpn_connections().await { - Ok(connections) => { - let mut connected = false; - for conn in connections { - if conn.interface.is_some_and(|s| s.eq(&interface)) { - connected = true; - } + NetworkEvent::DeviceChanged { + interface: Some(interface), + } => match nm.active_vpn_connections().await { + Ok(connections) => { + let mut connected = false; + for conn in connections { + if conn.interface.is_some_and(|s| s.eq(&interface)) { + connected = true; } - let _ = self.publish(NetworkState::VpnState { - profile: interface, - connected, - }); } - Err(err) => error!(&LOGGER, "Error getting active vpns: {}", err.to_string()), - }, - None => {} + self.publish(NetworkState::VpnState { + profile: interface, + connected, + }); + } + Err(err) => error!(&LOGGER, "Error getting active vpns: {}", err.to_string()), }, _ => {} } @@ -443,7 +439,7 @@ impl NetworkBackendHandle { secured: None, known: true, }; - let _ = self.publish(NetworkState::ChangeNetwork(Some(info))); + self.publish(NetworkState::ChangeNetwork(Some(info))); } ActiveConnection::Wifi(c) => { let info = NetworkInfo { @@ -453,13 +449,13 @@ impl NetworkBackendHandle { secured: None, // Not relevant here known: true, }; - let _ = self.publish(NetworkState::ChangeNetwork(Some(info))); + self.publish(NetworkState::ChangeNetwork(Some(info))); } _ => {} } } None => { - let _ = self.publish(NetworkState::ChangeNetwork(None)); + self.publish(NetworkState::ChangeNetwork(None)); } } } @@ -478,11 +474,8 @@ impl NetworkBackendHandle { Ok::>(active.iter().any(|vpn| vpn.name == profile)) }; - match operation.await { - Ok(connected) => { - let _ = self.publish(NetworkState::VpnState { profile, connected }); - } - Err(_) => {} + if let Ok(connected) = operation.await { + self.publish(NetworkState::VpnState { profile, connected }); } } } diff --git a/src/backend/perf_stats.rs b/src/backend/perf_stats.rs index 7230689..7182a54 100644 --- a/src/backend/perf_stats.rs +++ b/src/backend/perf_stats.rs @@ -91,33 +91,31 @@ impl BackendThread for StatsBackend { let mut battery_draw: f32 = 0.0; let mut battery_time: u64 = 0; - if let Ok(manager) = &manager { - if let Ok(mut batteries) = manager.batteries() { - match batteries.next() { - Some(Ok(battery)) => { - battery_charge = - battery.state_of_charge().get::().round() as u8; - battery_state = battery.state(); - battery_draw = battery.energy_rate().get::(); - battery_time = if battery_state == State::Charging { - battery - .time_to_full() - .unwrap_or(Time::new::(0.0)) - .get::() - as u64 - } else if battery_state == State::Discharging { - battery - .time_to_empty() - .unwrap_or(Time::new::(0.0)) - .get::() - as u64 - } else { - 0 - }; - } - Some(Err(e)) => error!(&LOGGER, "Error accessing battery: {e:?}"), - None => {} + if let Ok(manager) = &manager + && let Ok(mut batteries) = manager.batteries() + { + match batteries.next() { + Some(Ok(battery)) => { + battery_charge = + battery.state_of_charge().get::().round() as u8; + battery_state = battery.state(); + battery_draw = battery.energy_rate().get::(); + battery_time = if battery_state == State::Charging { + battery + .time_to_full() + .unwrap_or(Time::new::(0.0)) + .get::() as u64 + } else if battery_state == State::Discharging { + battery + .time_to_empty() + .unwrap_or(Time::new::(0.0)) + .get::() as u64 + } else { + 0 + }; } + Some(Err(e)) => error!(&LOGGER, "Error accessing battery: {e:?}"), + None => {} } } diff --git a/src/backend/tailscale.rs b/src/backend/tailscale.rs index 81cb676..3bcb476 100644 --- a/src/backend/tailscale.rs +++ b/src/backend/tailscale.rs @@ -89,13 +89,13 @@ impl TailscaleBackend { match serde_json::from_slice::(line) { Ok(notification) => { - if let Some(state) = notification.get("State") { - if !state.is_null() { - let state = - TailscaleState::try_from_value(state.as_i64().unwrap_or(4)) - .unwrap_or(TailscaleState::Stopped); - instance.lock().expect("Couldn't get lock").publish(state); - } + if let Some(state) = notification.get("State") + && !state.is_null() + { + let state = + TailscaleState::try_from_value(state.as_i64().unwrap_or(4)) + .unwrap_or(TailscaleState::Stopped); + instance.lock().expect("Couldn't get lock").publish(state); } } Err(err) => { @@ -174,11 +174,11 @@ fn initial_state() -> TailscaleState { .output() { let val: Result = serde_json::from_slice(&output.stdout); - if val.is_ok() { - if let Some(res) = val.unwrap().get("BackendState").and_then(|v| v.as_str()) { - if res.eq("Running") { - return TailscaleState::Running; - } + if let Ok(val) = val { + if let Some(res) = val.get("BackendState").and_then(|v| v.as_str()) + && res.eq("Running") + { + return TailscaleState::Running; } } else { error!(&LOGGER, "{:?}", val.err()); diff --git a/src/backend/window_manager_hypr.rs b/src/backend/window_manager_hypr.rs index fbf63b2..5308ed0 100644 --- a/src/backend/window_manager_hypr.rs +++ b/src/backend/window_manager_hypr.rs @@ -45,13 +45,13 @@ impl BackendThread for HyprlandComms { let inst_clone = instance.clone(); listener.add_workspace_changed_handler(move |workspace| { - if let WorkspaceType::Regular(name) = workspace.name { - if let Ok(id) = name.parse::() { - inst_clone - .lock() - .expect("Couldn't get Subscribers") - .publish(WindowManagerEvent::WorkspaceChanged(id)); - } + if let WorkspaceType::Regular(name) = workspace.name + && let Ok(id) = name.parse::() + { + inst_clone + .lock() + .expect("Couldn't get Subscribers") + .publish(WindowManagerEvent::WorkspaceChanged(id)); } }); @@ -84,13 +84,13 @@ impl BackendThread for HyprlandComms { let inst_clone = instance.clone(); listener.add_workspace_deleted_handler(move |workspace| { - if let WorkspaceType::Regular(name) = workspace.name { - if let Ok(id) = name.parse::() { - inst_clone - .lock() - .expect("Couldn't get Subscribers") - .publish(WindowManagerEvent::WorkspaceRemoved(id)); - } + if let WorkspaceType::Regular(name) = workspace.name + && let Ok(id) = name.parse::() + { + inst_clone + .lock() + .expect("Couldn't get Subscribers") + .publish(WindowManagerEvent::WorkspaceRemoved(id)); } }); @@ -159,10 +159,10 @@ impl BackendThread for HyprlandComms { impl HyprlandComms { fn monitor_id_from_workspace_id(id: WorkspaceId) -> Option { - if let Ok(wss) = Workspaces::get() { - if let Some(ws) = wss.to_vec().iter().find(|ws| ws.id().unwrap() == id) { - return ws.monitor_id; - } + if let Ok(wss) = Workspaces::get() + && let Some(ws) = wss.to_vec().iter().find(|ws| ws.id().unwrap() == id) + { + return ws.monitor_id; } None } diff --git a/src/css.rs b/src/css.rs index 4978a18..4909403 100644 --- a/src/css.rs +++ b/src/css.rs @@ -1,3 +1,4 @@ +use crate::LOGGER; use glib::ControlFlow; use jmb_logger_rs::*; use notify::EventKind::{Create, Modify, Remove}; @@ -5,35 +6,30 @@ use notify::{RecommendedWatcher, RecursiveMode, Watcher}; use std::path::Path; use std::sync::mpsc; use std::time::Duration; -use crate::LOGGER; pub fn parse_css() -> Option { - match grass::from_path( - "style/style.scss", - &grass::Options::default(), - ) { + match grass::from_path("style/style.scss", &grass::Options::default()) { Ok(css) => { debug!(&LOGGER, "(Re-)Loading CSS"); Some(css) - }, + } Err(err) => { error!(&LOGGER, "SCSS compilation failed: {err}"); None - }, + } } } pub fn watch_css(reload: F) -> RecommendedWatcher -where F: Fn(String) -> () + 'static { +where + F: Fn(String) + 'static, +{ let (tx, rx) = mpsc::channel(); let mut watcher = notify::recommended_watcher(tx).unwrap(); watcher - .watch( - Path::new("style"), - RecursiveMode::Recursive, - ) + .watch(Path::new("style"), RecursiveMode::Recursive) .unwrap(); glib::timeout_add_local(Duration::from_millis(1000), move || { @@ -53,4 +49,4 @@ where F: Fn(String) -> () + 'static { }); watcher -} \ No newline at end of file +} diff --git a/src/ui.rs b/src/ui.rs index f26a487..161f3f5 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -80,11 +80,7 @@ fn create_bar( .expect("Tried taking unavailable Hyprland Channel Receiver"); let player_opt = if let Ok(player_finder) = PlayerFinder::new() { - if let Ok(player) = player_finder.find_active() { - Some(player) - } else { - None - } + player_finder.find_active().ok() } else { None }; @@ -105,10 +101,10 @@ fn create_bar( window.set_anchor(Edge::Left, true); window.set_anchor(Edge::Right, true); window.set_margin(Edge::Top, 20); - if let Some(monitor) = monitors.item(monitor_idx) { - if let Ok(monitor) = monitor.downcast::() { - window.set_monitor(Some(&monitor)); - } + if let Some(monitor) = monitors.item(monitor_idx) + && let Ok(monitor) = monitor.downcast::() + { + window.set_monitor(Some(&monitor)); } window.set_exclusive_zone(30); @@ -116,10 +112,7 @@ fn create_bar( let mut buttons: HashMap = HashMap::new(); let (workspaces, submap) = workspaces_panel::build( &mut buttons, - window - .monitor() - .map(|monitor| monitor_index(&monitor)) - .flatten(), + window.monitor().and_then(|monitor| monitor_index(&monitor)), ); let title_button: Option