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. |
|
||||
| `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
|
||||
|
||||
```toml
|
||||
|
@ -75,6 +75,20 @@ impl<'a> Module<'a> {
|
||||
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
|
||||
pub fn is_empty(&self) -> bool {
|
||||
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 => {
|
||||
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,
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user