mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-07-09 22:52:51 +02:00
feat(bar): changing battery icons
This commit is changing the icon on the battery widget based on the current level. level | icon ------------ 100 - 75: discharging 75 - 50: high 50 - 25: medium 25 - 10: low 10 - 0: warning PR: #1398
This commit is contained in:
@@ -55,6 +55,10 @@ impl From<BatteryConfig> for Battery {
|
|||||||
pub enum BatteryState {
|
pub enum BatteryState {
|
||||||
Charging,
|
Charging,
|
||||||
Discharging,
|
Discharging,
|
||||||
|
High,
|
||||||
|
Medium,
|
||||||
|
Low,
|
||||||
|
Warning,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
@@ -85,14 +89,22 @@ impl Battery {
|
|||||||
|
|
||||||
if let Ok(mut batteries) = self.manager.batteries() {
|
if let Ok(mut batteries) = self.manager.batteries() {
|
||||||
if let Some(Ok(first)) = batteries.nth(0) {
|
if let Some(Ok(first)) = batteries.nth(0) {
|
||||||
let percentage = first.state_of_charge().get::<percent>() as u8;
|
let percentage = first.state_of_charge().get::<percent>().round() as u8;
|
||||||
|
|
||||||
if percentage == 100 && self.hide_on_full_charge {
|
if percentage == 100 && self.hide_on_full_charge {
|
||||||
output = None
|
output = None
|
||||||
} else {
|
} else {
|
||||||
match first.state() {
|
match first.state() {
|
||||||
State::Charging => self.state = BatteryState::Charging,
|
State::Charging => self.state = BatteryState::Charging,
|
||||||
State::Discharging => self.state = BatteryState::Discharging,
|
State::Discharging => {
|
||||||
|
self.state = match percentage {
|
||||||
|
p if p > 75 => BatteryState::Discharging,
|
||||||
|
p if p > 50 => BatteryState::High,
|
||||||
|
p if p > 25 => BatteryState::Medium,
|
||||||
|
p if p > 10 => BatteryState::Low,
|
||||||
|
_ => BatteryState::Warning,
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,6 +141,10 @@ impl BarWidget for Battery {
|
|||||||
let emoji = match self.state {
|
let emoji = match self.state {
|
||||||
BatteryState::Charging => egui_phosphor::regular::BATTERY_CHARGING,
|
BatteryState::Charging => egui_phosphor::regular::BATTERY_CHARGING,
|
||||||
BatteryState::Discharging => egui_phosphor::regular::BATTERY_FULL,
|
BatteryState::Discharging => egui_phosphor::regular::BATTERY_FULL,
|
||||||
|
BatteryState::High => egui_phosphor::regular::BATTERY_HIGH,
|
||||||
|
BatteryState::Medium => egui_phosphor::regular::BATTERY_MEDIUM,
|
||||||
|
BatteryState::Low => egui_phosphor::regular::BATTERY_LOW,
|
||||||
|
BatteryState::Warning => egui_phosphor::regular::BATTERY_WARNING,
|
||||||
};
|
};
|
||||||
|
|
||||||
let auto_text_color = config.auto_select_text.filter(|_| output.selected);
|
let auto_text_color = config.auto_select_text.filter(|_| output.selected);
|
||||||
|
|||||||
Reference in New Issue
Block a user