aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-03-04 16:16:45 -0500
committerJesse Luehrs <doy@tozt.net>2018-03-04 16:16:45 -0500
commite3b846291e792ee2f1537f093445edeb1bf58b01 (patch)
tree4f7124c55f0ef87e3658f5c98d3a0d29e64ec7d9
parentfaf6193f4051754ae8011b8a80ded6b0a0699e79 (diff)
downloadfancy-prompt-e3b846291e792ee2f1537f093445edeb1bf58b01.tar.gz
fancy-prompt-e3b846291e792ee2f1537f093445edeb1bf58b01.zip
don't display the battery meter at all if no batteries detected
-rw-r--r--src/power.rs4
-rw-r--r--src/prompt.rs38
2 files changed, 25 insertions, 17 deletions
diff --git a/src/power.rs b/src/power.rs
index 725e9fe..6bb90ca 100644
--- a/src/power.rs
+++ b/src/power.rs
@@ -98,6 +98,10 @@ impl PowerInfo {
false
}
+ pub fn has_batteries(&self) -> bool {
+ !self.batteries().is_empty()
+ }
+
fn batteries(&self) -> Vec<&PowerSupplyInfo> {
self.power_supplies
.iter()
diff --git a/src/prompt.rs b/src/prompt.rs
index 8c8eece..4d1b6f6 100644
--- a/src/prompt.rs
+++ b/src/prompt.rs
@@ -59,23 +59,25 @@ impl Prompt {
let cols = self.data.terminal_cols.unwrap_or(80);
// " (~/a/...cde|g*+?:mybr:+1-1) -- {--<=======} doy@lance [19:40:50] "
- let max_path_len = cols
- - 1 // " "
+ let mut max_path_len = cols
+ - 1 // " "
- vcs
.as_ref()
- .map(|vcs| vcs.len() + 1) // "|g*+?:mybr:+1-1"
- .unwrap_or(0) - 2 // "()"
- - 1 // " "
- - 1 // "-"
- - 1 // " "
- - battery_len - 2 // "{<=========}"
- - 1 // " "
- - user.len() - 1 - host.len() // "doy@lance"
- - 1 // " "
- - 10 // "[19:40:50]"
- - 1; // " "
-
- if max_path_len < 10 { // "~/a/...cde"
+ .map(|vcs| vcs.len() + 1) // "|g*+?:mybr:+1-1"
+ .unwrap_or(0) - 2 // "()"
+ - 1 // " "
+ - 1 // "-"
+ - 1 // " "
+ - user.len() - 1 - host.len() // "doy@lance"
+ - 1 // " "
+ - 10 // "[19:40:50]"
+ - 1; // " "
+ if self.data.power_info.has_batteries() {
+ max_path_len -= battery_len + 2 // "{<=========}"
+ + 1; // " "
+ }
+
+ if max_path_len < 10 { // "~/a/...cde"
panic!(
"terminal too small (need at least {} cols)",
cols + 10 - max_path_len
@@ -99,8 +101,10 @@ impl Prompt {
self.display_border(max_path_len - path.len() + 1);
self.colors.pad(1);
- self.display_battery(battery_len);
- self.colors.pad(1);
+ if self.data.power_info.has_batteries() {
+ self.display_battery(battery_len);
+ self.colors.pad(1);
+ }
self.display_identity(&user, &host);
self.colors.pad(1);