diff options
Diffstat (limited to 'src/utils/brightness.rs')
-rw-r--r-- | src/utils/brightness.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/utils/brightness.rs b/src/utils/brightness.rs new file mode 100644 index 0000000..b340907 --- /dev/null +++ b/src/utils/brightness.rs @@ -0,0 +1,28 @@ +use crate::config::CONFIG; +use crate::types::ThreadsData; +use std::fs::read_to_string; +use std::path::Path; + +// getting brightness +pub async fn get_brightness() -> ThreadsData { + let brightness_path = Path::new(&CONFIG.brightness.path); + if !brightness_path.exists() { + return ThreadsData::Brightness(String::from("brightness path not found")); + }; + let current_brightness = match read_to_string(Path::new(brightness_path).join("brightness")) { + Ok(brightness) => brightness.trim().to_owned().parse::<f32>().unwrap(), + _ => return ThreadsData::Brightness(String::from("error reading current brightness")), + }; + let max_brightness = match read_to_string(Path::new(brightness_path).join("max_brightness")) { + Ok(brightness) => brightness.trim().to_owned().parse::<f32>().unwrap(), + _ => return ThreadsData::Brightness(String::from("error reading max brightness")), + }; + + let value = (current_brightness / max_brightness) * 100.0; + + let result = format!( + " {} {:.0}% {}", + CONFIG.brightness.icon, value, CONFIG.seperator + ); + ThreadsData::Brightness(result) +} |