mirror of
https://github.com/starship/starship.git
synced 2024-11-23 00:33:16 +01:00
fix: Add display for unknown battery state (#316)
This commit is contained in:
parent
c2875d99b6
commit
14fe246138
@ -119,6 +119,18 @@ The module is only visible when the device's battery is below 10%.
|
|||||||
| `display` | [link](#battery-display) | Display threshold and style for the module. |
|
| `display` | [link](#battery-display) | Display threshold and style for the module. |
|
||||||
| `disabled` | `false` | Disables the `battery` module. |
|
| `disabled` | `false` | Disables the `battery` module. |
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>There are also options for some uncommon battery states.</summary>
|
||||||
|
|
||||||
|
| Variable | Description |
|
||||||
|
|------------------|-----------------------------------------------------|
|
||||||
|
| `unknown_symbol` | The symbol shown when the battery state is unknown. |
|
||||||
|
| `empty_symbol` | The symbol shown when the battery state is empty. |
|
||||||
|
|
||||||
|
Note: Battery indicator will be hidden if the status is `unknown` or `empty` unless you specify the option in the config.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
|
@ -75,6 +75,20 @@ impl<'a> Module<'a> {
|
|||||||
self.segments.last_mut().unwrap()
|
self.segments.last_mut().unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Should config exists, get a reference to a newly created segment in the module
|
||||||
|
pub fn new_segment_if_config_exists(&mut self, name: &str) -> Option<&mut Segment> {
|
||||||
|
// Use the provided value unless overwritten by config
|
||||||
|
if let Some(value) = self.config_value_str(name) {
|
||||||
|
let mut segment = Segment::new(name);
|
||||||
|
segment.set_style(self.style);
|
||||||
|
segment.set_value(value);
|
||||||
|
self.segments.push(segment);
|
||||||
|
Some(self.segments.last_mut().unwrap())
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Whether a module has non-empty segments
|
/// Whether a module has non-empty segments
|
||||||
pub fn is_empty(&self) -> bool {
|
pub fn is_empty(&self) -> bool {
|
||||||
self.segments.iter().all(|segment| segment.is_empty())
|
self.segments.iter().all(|segment| segment.is_empty())
|
||||||
|
@ -45,6 +45,17 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
battery::State::Discharging => {
|
battery::State::Discharging => {
|
||||||
module.new_segment("discharging_symbol", BATTERY_DISCHARGING);
|
module.new_segment("discharging_symbol", BATTERY_DISCHARGING);
|
||||||
}
|
}
|
||||||
|
battery::State::Unknown => {
|
||||||
|
log::debug!("Unknown detected");
|
||||||
|
module.new_segment_if_config_exists("unknown_symbol")?;
|
||||||
|
}
|
||||||
|
battery::State::Empty => {
|
||||||
|
module.new_segment_if_config_exists("empty_symbol")?;
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
log::debug!("Unhandled battery state `{}`", state);
|
||||||
|
return None;
|
||||||
|
}
|
||||||
_ => return None,
|
_ => return None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user