From 7f6920507cc844664863363f29bb2a79ef208d6b Mon Sep 17 00:00:00 2001 From: MCorange Date: Thu, 20 Jun 2024 23:46:33 +0300 Subject: [PATCH] Fixed battery plugin --- dim_plugins/battery/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dim_plugins/battery/src/lib.rs b/dim_plugins/battery/src/lib.rs index ee5fb6b..b7c0451 100644 --- a/dim_plugins/battery/src/lib.rs +++ b/dim_plugins/battery/src/lib.rs @@ -1,4 +1,4 @@ -use std::fmt::Write; +use std::{fmt::Write, path::PathBuf}; use dim_sdk::{plugin_info, Context, DimPlugin}; use std::fs::read_to_string; @@ -19,11 +19,17 @@ impl Plug { } } +const BATT0: &'static str = "/sys/class/power_supply/BAT0/capacity"; +const BATT1: &'static str = "/sys/class/power_supply/BAT1/capacity"; + impl DimPlugin for Plug { fn init(&mut self, _ctx: Context) { } fn poll(&mut self, f: &mut dim_sdk::CBuffer) -> dim_sdk::Result<()> { - let contents = read_to_string("/sys/class/power_supply/BAT0/capacity")?; + //TODO: Quick fix, make this better, more portable + let path = if PathBuf::from(BATT0).exists() { BATT0 } else { BATT1 }; + + let contents = read_to_string(path)?; let cleaned_contents: String = contents.chars().filter(|c| c.is_digit(10)).collect(); write!(f, "Battery: {}%", cleaned_contents)?;