|
|
@ -22,11 +22,11 @@ impl Block for BatteryBlock { |
|
|
|
|
|
|
|
|
|
|
|
fn run(&mut self, _event_r: flume::Receiver<BlockEvent>, update_s: flume::Sender<BlockUpdate>) { |
|
|
|
fn run(&mut self, _event_r: flume::Receiver<BlockEvent>, update_s: flume::Sender<BlockUpdate>) { |
|
|
|
let sys = systemstat::System::new(); |
|
|
|
let sys = systemstat::System::new(); |
|
|
|
if let Ok(battery) = sys.battery_life() { |
|
|
|
loop { |
|
|
|
loop { |
|
|
|
if let Ok(battery) = sys.battery_life() { |
|
|
|
let battery_percentage = 100.0 * battery.remaining_capacity; |
|
|
|
let battery_percentage = 100.0 * battery.remaining_capacity; |
|
|
|
let battery_rem_hours = battery.remaining_time.as_secs() / 3600; |
|
|
|
let battery_rem_hours = battery.remaining_time.as_secs() / 3600; |
|
|
|
let battery_rem_mins = battery.remaining_time.as_secs() % 60; |
|
|
|
let battery_rem_mins = (battery.remaining_time.as_secs() / 60) % 60; |
|
|
|
let mut fg_color = Color::Default; |
|
|
|
let mut fg_color = Color::Default; |
|
|
|
let icon = if battery_percentage > 90.0 { |
|
|
|
let icon = if battery_percentage > 90.0 { |
|
|
|
// Tailwind green 500
|
|
|
|
// Tailwind green 500
|
|
|
@ -43,6 +43,7 @@ impl Block for BatteryBlock { |
|
|
|
fg_color = Color::Rgb(239, 68, 68); |
|
|
|
fg_color = Color::Rgb(239, 68, 68); |
|
|
|
"\u{f244}" |
|
|
|
"\u{f244}" |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
let formatted = format!( |
|
|
|
let formatted = format!( |
|
|
|
" {}{:.1}% {}:{:02} ", |
|
|
|
" {}{:.1}% {}:{:02} ", |
|
|
|
icon, battery_percentage, battery_rem_hours, battery_rem_mins |
|
|
|
icon, battery_percentage, battery_rem_hours, battery_rem_mins |
|
|
@ -50,7 +51,7 @@ impl Block for BatteryBlock { |
|
|
|
let update = |
|
|
|
let update = |
|
|
|
BlockUpdate::Single(BlockInfo::from_main(formatted).fg_color(fg_color).build()); |
|
|
|
BlockUpdate::Single(BlockInfo::from_main(formatted).fg_color(fg_color).build()); |
|
|
|
update_s.send(update).unwrap(); |
|
|
|
update_s.send(update).unwrap(); |
|
|
|
std::thread::sleep(std::time::Duration::from_millis(1000)); |
|
|
|
std::thread::sleep(std::time::Duration::from_millis(5000)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|