From e3b846291e792ee2f1537f093445edeb1bf58b01 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 4 Mar 2018 16:16:45 -0500 Subject: don't display the battery meter at all if no batteries detected --- src/power.rs | 4 ++++ src/prompt.rs | 38 +++++++++++++++++++++----------------- 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); -- cgit v1.2.3-54-g00ecf