other: clean up some strings (#904)

* other: clean up some strings

* formatting
This commit is contained in:
Clement Tsang 2022-11-20 02:21:20 -05:00 committed by GitHub
parent 6a0bf10760
commit 63df220a38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 352 additions and 308 deletions

64
Cargo.lock generated
View File

@ -235,6 +235,7 @@ dependencies = [
"mach2", "mach2",
"nvml-wrapper", "nvml-wrapper",
"once_cell", "once_cell",
"phf",
"predicates", "predicates",
"procfs", "procfs",
"regex", "regex",
@ -1289,6 +1290,48 @@ dependencies = [
"windows-sys", "windows-sys",
] ]
[[package]]
name = "phf"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
dependencies = [
"phf_macros",
"phf_shared",
]
[[package]]
name = "phf_generator"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
dependencies = [
"phf_shared",
"rand",
]
[[package]]
name = "phf_macros"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
dependencies = [
"phf_generator",
"phf_shared",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "phf_shared"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
dependencies = [
"siphasher",
]
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
version = "0.2.9" version = "0.2.9"
@ -1375,6 +1418,21 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"rand_core",
]
[[package]]
name = "rand_core"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
[[package]] [[package]]
name = "rayon" name = "rayon"
version = "1.5.2" version = "1.5.2"
@ -1550,6 +1608,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "siphasher"
version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
[[package]] [[package]]
name = "slab" name = "slab"
version = "0.4.6" version = "0.4.6"

View File

@ -79,6 +79,7 @@ indexmap = "1.8.1"
itertools = "0.10.3" itertools = "0.10.3"
kstring = { version = "2.0.0", features = ["arc"] } kstring = { version = "2.0.0", features = ["arc"] }
log = { version = "0.4.16", optional = true } log = { version = "0.4.16", optional = true }
phf = { version = "0.11", features = ["macros"] }
nvml-wrapper = { version = "0.8.0", optional = true } nvml-wrapper = { version = "0.8.0", optional = true }
once_cell = "1.5.2" once_cell = "1.5.2"
regex = "1.5.5" regex = "1.5.5"

View File

@ -3,13 +3,10 @@
use std::time::Instant; use std::time::Instant;
use futures::join; use futures::join;
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
use fxhash::FxHashMap; use fxhash::FxHashMap;
#[cfg(feature = "battery")] #[cfg(feature = "battery")]
use starship_battery::{Battery, Manager}; use starship_battery::{Battery, Manager};
#[cfg(not(target_os = "linux"))] #[cfg(not(target_os = "linux"))]
use sysinfo::{System, SystemExt}; use sysinfo::{System, SystemExt};

View File

@ -134,9 +134,10 @@ fn main() -> Result<()> {
#[cfg(target_os = "freebsd")] #[cfg(target_os = "freebsd")]
let _stderr_fd = { let _stderr_fd = {
// A really ugly band-aid to suppress stderr warnings on FreeBSD due to sysinfo. // A really ugly band-aid to suppress stderr warnings on FreeBSD due to sysinfo.
use filedescriptor::{FileDescriptor, StdioDescriptor};
use std::fs::OpenOptions; use std::fs::OpenOptions;
use filedescriptor::{FileDescriptor, StdioDescriptor};
let path = OpenOptions::new().write(true).open("/dev/null")?; let path = OpenOptions::new().write(true).open("/dev/null")?;
FileDescriptor::redirect_stdio(&path, StdioDescriptor::Stderr)? FileDescriptor::redirect_stdio(&path, StdioDescriptor::Stderr)?
}; };

View File

@ -1,3 +1,5 @@
use std::borrow::Cow;
use anyhow::Context; use anyhow::Context;
use colour_utils::*; use colour_utils::*;
use tui::style::{Color, Style}; use tui::style::{Color, Style};
@ -45,15 +47,13 @@ impl Default for CanvasColours {
CanvasColours { CanvasColours {
currently_selected_text_colour: Color::Black, currently_selected_text_colour: Color::Black,
currently_selected_bg_colour: Color::Cyan, currently_selected_bg_colour: Color::Cyan,
currently_selected_text_style: Style::default() currently_selected_text_style: Style::default().fg(Color::Black).bg(HIGHLIGHT_COLOUR),
.fg(Color::Black) table_header_style: Style::default().fg(HIGHLIGHT_COLOUR),
.bg(STANDARD_HIGHLIGHT_COLOUR), ram_style: Style::default().fg(FIRST_COLOUR),
table_header_style: Style::default().fg(STANDARD_HIGHLIGHT_COLOUR), swap_style: Style::default().fg(SECOND_COLOUR),
ram_style: Style::default().fg(STANDARD_FIRST_COLOUR), arc_style: Style::default().fg(THIRD_COLOUR),
swap_style: Style::default().fg(STANDARD_SECOND_COLOUR),
arc_style: Style::default().fg(STANDARD_THIRD_COLOUR),
gpu_colour_styles: vec![ gpu_colour_styles: vec![
Style::default().fg(STANDARD_FOURTH_COLOUR), Style::default().fg(FOURTH_COLOUR),
Style::default().fg(Color::LightBlue), Style::default().fg(Color::LightBlue),
Style::default().fg(Color::LightRed), Style::default().fg(Color::LightRed),
Style::default().fg(Color::Cyan), Style::default().fg(Color::Cyan),
@ -61,10 +61,10 @@ impl Default for CanvasColours {
Style::default().fg(Color::Blue), Style::default().fg(Color::Blue),
Style::default().fg(Color::Red), Style::default().fg(Color::Red),
], ],
rx_style: Style::default().fg(STANDARD_FIRST_COLOUR), rx_style: Style::default().fg(FIRST_COLOUR),
tx_style: Style::default().fg(STANDARD_SECOND_COLOUR), tx_style: Style::default().fg(SECOND_COLOUR),
total_rx_style: Style::default().fg(STANDARD_THIRD_COLOUR), total_rx_style: Style::default().fg(THIRD_COLOUR),
total_tx_style: Style::default().fg(STANDARD_FOURTH_COLOUR), total_tx_style: Style::default().fg(FOURTH_COLOUR),
all_colour_style: Style::default().fg(ALL_COLOUR), all_colour_style: Style::default().fg(ALL_COLOUR),
avg_colour_style: Style::default().fg(AVG_COLOUR), avg_colour_style: Style::default().fg(AVG_COLOUR),
cpu_colour_styles: vec![ cpu_colour_styles: vec![
@ -80,7 +80,7 @@ impl Default for CanvasColours {
Style::default().fg(Color::Red), Style::default().fg(Color::Red),
], ],
border_style: Style::default().fg(text_colour), border_style: Style::default().fg(text_colour),
highlighted_border_style: Style::default().fg(STANDARD_HIGHLIGHT_COLOUR), highlighted_border_style: Style::default().fg(HIGHLIGHT_COLOUR),
text_style: Style::default().fg(text_colour), text_style: Style::default().fg(text_colour),
widget_title_style: Style::default().fg(text_colour), widget_title_style: Style::default().fg(text_colour),
graph_style: Style::default().fg(text_colour), graph_style: Style::default().fg(text_colour),
@ -283,7 +283,7 @@ impl CanvasColours {
Ok(()) Ok(())
} }
pub fn set_gpu_colours(&mut self, colours: &[String]) -> error::Result<()> { pub fn set_gpu_colours(&mut self, colours: &[Cow<'static, str>]) -> error::Result<()> {
self.gpu_colour_styles = colours self.gpu_colour_styles = colours
.iter() .iter()
.map(|colour| get_style_from_config(colour)) .map(|colour| get_style_from_config(colour))
@ -321,7 +321,7 @@ impl CanvasColours {
Ok(()) Ok(())
} }
pub fn set_cpu_colours(&mut self, colours: &[String]) -> error::Result<()> { pub fn set_cpu_colours(&mut self, colours: &[Cow<'static, str>]) -> error::Result<()> {
self.cpu_colour_styles = colours self.cpu_colour_styles = colours
.iter() .iter()
.map(|colour| get_style_from_config(colour)) .map(|colour| get_style_from_config(colour))

View File

@ -1,44 +1,35 @@
use std::collections::HashMap;
use once_cell::sync::Lazy;
use tui::style::{Color, Style}; use tui::style::{Color, Style};
use crate::utils::error; use crate::utils::error;
// Approx, good enough for use (also Clippy gets mad if it's too long) pub const FIRST_COLOUR: Color = Color::LightMagenta;
pub const STANDARD_FIRST_COLOUR: Color = Color::LightMagenta; pub const SECOND_COLOUR: Color = Color::LightYellow;
pub const STANDARD_SECOND_COLOUR: Color = Color::LightYellow; pub const THIRD_COLOUR: Color = Color::LightCyan;
pub const STANDARD_THIRD_COLOUR: Color = Color::LightCyan; pub const FOURTH_COLOUR: Color = Color::LightGreen;
pub const STANDARD_FOURTH_COLOUR: Color = Color::LightGreen; pub const HIGHLIGHT_COLOUR: Color = Color::LightBlue;
pub const STANDARD_HIGHLIGHT_COLOUR: Color = Color::LightBlue;
pub const AVG_COLOUR: Color = Color::Red; pub const AVG_COLOUR: Color = Color::Red;
pub const ALL_COLOUR: Color = Color::Green; pub const ALL_COLOUR: Color = Color::Green;
static COLOR_NAME_LOOKUP_TABLE: Lazy<HashMap<&'static str, Color>> = Lazy::new(|| { static COLOR_LOOKUP_TABLE: phf::Map<&'static str, Color> = phf::phf_map! {
[ "reset" => Color::Reset,
("reset", Color::Reset), "black" => Color::Black,
("black", Color::Black), "red" => Color::Red,
("red", Color::Red), "green" => Color::Green,
("green", Color::Green), "yellow" => Color::Yellow,
("yellow", Color::Yellow), "blue" => Color::Blue,
("blue", Color::Blue), "magenta" => Color::Magenta,
("magenta", Color::Magenta), "cyan" => Color::Cyan,
("cyan", Color::Cyan), "gray" => Color::Gray,
("gray", Color::Gray), "grey" => Color::Gray,
("grey", Color::Gray), "darkgray" => Color::DarkGray,
("darkgray", Color::DarkGray), "lightred" => Color::LightRed,
("lightred", Color::LightRed), "lightgreen" => Color::LightGreen,
("lightgreen", Color::LightGreen), "lightyellow" => Color::LightYellow,
("lightyellow", Color::LightYellow), "lightblue" => Color::LightBlue,
("lightblue", Color::LightBlue), "lightmagenta" => Color::LightMagenta,
("lightmagenta", Color::LightMagenta), "lightcyan" => Color::LightCyan,
("lightcyan", Color::LightCyan), "white" => Color::White,
("white", Color::White), };
]
.iter()
.copied()
.collect()
});
pub fn convert_hex_to_color(hex: &str) -> error::Result<Color> { pub fn convert_hex_to_color(hex: &str) -> error::Result<Color> {
fn hex_err(hex: &str) -> error::Result<u8> { fn hex_err(hex: &str) -> error::Result<u8> {
@ -149,14 +140,12 @@ pub fn get_style_from_rgb(rgb_str: &str) -> error::Result<Style> {
} }
fn convert_name_to_color(color_name: &str) -> error::Result<Color> { fn convert_name_to_color(color_name: &str) -> error::Result<Color> {
let color = COLOR_NAME_LOOKUP_TABLE.get(color_name.to_lowercase().as_str()); if let Some(color) = COLOR_LOOKUP_TABLE.get(color_name.to_lowercase().as_str()) {
if let Some(color) = color { Ok(*color)
return Ok(*color); } else {
} Err(error::BottomError::ConfigError(format!(
"\"{}\" is an invalid named colour.
Err(error::BottomError::ConfigError(format!(
"\"{}\" is an invalid named colour.
The following are supported strings: The following are supported strings:
+--------+------------+--------------+ +--------+------------+--------------+
| Reset | Magenta | LightYellow | | Reset | Magenta | LightYellow |
@ -172,8 +161,9 @@ The following are supported strings:
| Blue | LightGreen | | | Blue | LightGreen | |
+--------+------------+--------------+ +--------+------------+--------------+
", ",
color_name color_name
))) )))
}
} }
pub fn get_style_from_color_name(color_name: &str) -> error::Result<Style> { pub fn get_style_from_color_name(color_name: &str) -> error::Result<Style> {

View File

@ -37,7 +37,7 @@ impl Painter {
let title = if app_state.is_expanded { let title = if app_state.is_expanded {
const TITLE_BASE: &str = " Battery ── Esc to go back "; const TITLE_BASE: &str = " Battery ── Esc to go back ";
Spans::from(vec![ Spans::from(vec![
Span::styled(" Battery ".to_string(), self.colours.widget_title_style), Span::styled(" Battery ", self.colours.widget_title_style),
Span::styled( Span::styled(
format!( format!(
"─{}─ Esc to go back ", "─{}─ Esc to go back ",
@ -49,10 +49,7 @@ impl Painter {
), ),
]) ])
} else { } else {
Spans::from(Span::styled( Spans::from(Span::styled(" Battery ", self.colours.widget_title_style))
" Battery ".to_string(),
self.colours.widget_title_style,
))
}; };
let battery_block = if draw_border { let battery_block = if draw_border {

View File

@ -29,235 +29,235 @@ pub static DEFAULT_HEADER_STYLE: Lazy<tui::style::Style> =
// Colour profiles // Colour profiles
pub static DEFAULT_LIGHT_MODE_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours { pub static DEFAULT_LIGHT_MODE_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours {
text_color: Some("black".to_string()), text_color: Some("black".into()),
border_color: Some("black".to_string()), border_color: Some("black".into()),
table_header_color: Some("black".to_string()), table_header_color: Some("black".into()),
widget_title_color: Some("black".to_string()), widget_title_color: Some("black".into()),
selected_text_color: Some("white".to_string()), selected_text_color: Some("white".into()),
graph_color: Some("black".to_string()), graph_color: Some("black".into()),
disabled_text_color: Some("gray".to_string()), disabled_text_color: Some("gray".into()),
ram_color: Some("blue".to_string()), ram_color: Some("blue".into()),
swap_color: Some("red".to_string()), swap_color: Some("red".into()),
arc_color: Some("LightBlue".to_string()), arc_color: Some("LightBlue".into()),
gpu_core_colors: Some(vec![ gpu_core_colors: Some(vec![
"LightGreen".to_string(), "LightGreen".into(),
"LightCyan".to_string(), "LightCyan".into(),
"LightRed".to_string(), "LightRed".into(),
"Cyan".to_string(), "Cyan".into(),
"Green".to_string(), "Green".into(),
"Blue".to_string(), "Blue".into(),
"Red".to_string(), "Red".into(),
]), ]),
rx_color: Some("blue".to_string()), rx_color: Some("blue".into()),
tx_color: Some("red".to_string()), tx_color: Some("red".into()),
rx_total_color: Some("LightBlue".to_string()), rx_total_color: Some("LightBlue".into()),
tx_total_color: Some("LightRed".to_string()), tx_total_color: Some("LightRed".into()),
cpu_core_colors: Some(vec![ cpu_core_colors: Some(vec![
"LightMagenta".to_string(), "LightMagenta".into(),
"LightBlue".to_string(), "LightBlue".into(),
"LightRed".to_string(), "LightRed".into(),
"Cyan".to_string(), "Cyan".into(),
"Green".to_string(), "Green".into(),
"Blue".to_string(), "Blue".into(),
"Red".to_string(), "Red".into(),
]), ]),
..ConfigColours::default() ..ConfigColours::default()
}); });
pub static GRUVBOX_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours { pub static GRUVBOX_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours {
table_header_color: Some("#83a598".to_string()), table_header_color: Some("#83a598".into()),
all_cpu_color: Some("#8ec07c".to_string()), all_cpu_color: Some("#8ec07c".into()),
avg_cpu_color: Some("#fb4934".to_string()), avg_cpu_color: Some("#fb4934".into()),
cpu_core_colors: Some(vec![ cpu_core_colors: Some(vec![
"#cc241d".to_string(), "#cc241d".into(),
"#98971a".to_string(), "#98971a".into(),
"#d79921".to_string(), "#d79921".into(),
"#458588".to_string(), "#458588".into(),
"#b16286".to_string(), "#b16286".into(),
"#689d6a".to_string(), "#689d6a".into(),
"#fe8019".to_string(), "#fe8019".into(),
"#b8bb26".to_string(), "#b8bb26".into(),
"#fabd2f".to_string(), "#fabd2f".into(),
"#83a598".to_string(), "#83a598".into(),
"#d3869b".to_string(), "#d3869b".into(),
"#d65d0e".to_string(), "#d65d0e".into(),
"#9d0006".to_string(), "#9d0006".into(),
"#79740e".to_string(), "#79740e".into(),
"#b57614".to_string(), "#b57614".into(),
"#076678".to_string(), "#076678".into(),
"#8f3f71".to_string(), "#8f3f71".into(),
"#427b58".to_string(), "#427b58".into(),
"#d65d03".to_string(), "#d65d03".into(),
"#af3a03".to_string(), "#af3a03".into(),
]), ]),
ram_color: Some("#8ec07c".to_string()), ram_color: Some("#8ec07c".into()),
swap_color: Some("#fabd2f".to_string()), swap_color: Some("#fabd2f".into()),
arc_color: Some("#689d6a".to_string()), arc_color: Some("#689d6a".into()),
gpu_core_colors: Some(vec![ gpu_core_colors: Some(vec![
"#d79921".to_string(), "#d79921".into(),
"#458588".to_string(), "#458588".into(),
"#b16286".to_string(), "#b16286".into(),
"#fe8019".to_string(), "#fe8019".into(),
"#b8bb26".to_string(), "#b8bb26".into(),
"#cc241d".to_string(), "#cc241d".into(),
"#98971a".to_string(), "#98971a".into(),
]), ]),
rx_color: Some("#8ec07c".to_string()), rx_color: Some("#8ec07c".into()),
tx_color: Some("#fabd2f".to_string()), tx_color: Some("#fabd2f".into()),
rx_total_color: Some("#689d6a".to_string()), rx_total_color: Some("#689d6a".into()),
tx_total_color: Some("#d79921".to_string()), tx_total_color: Some("#d79921".into()),
border_color: Some("#ebdbb2".to_string()), border_color: Some("#ebdbb2".into()),
highlighted_border_color: Some("#fe8019".to_string()), highlighted_border_color: Some("#fe8019".into()),
disabled_text_color: Some("#665c54".to_string()), disabled_text_color: Some("#665c54".into()),
text_color: Some("#ebdbb2".to_string()), text_color: Some("#ebdbb2".into()),
selected_text_color: Some("#1d2021".to_string()), selected_text_color: Some("#1d2021".into()),
selected_bg_color: Some("#ebdbb2".to_string()), selected_bg_color: Some("#ebdbb2".into()),
widget_title_color: Some("#ebdbb2".to_string()), widget_title_color: Some("#ebdbb2".into()),
graph_color: Some("#ebdbb2".to_string()), graph_color: Some("#ebdbb2".into()),
high_battery_color: Some("#98971a".to_string()), high_battery_color: Some("#98971a".into()),
medium_battery_color: Some("#fabd2f".to_string()), medium_battery_color: Some("#fabd2f".into()),
low_battery_color: Some("#fb4934".to_string()), low_battery_color: Some("#fb4934".into()),
}); });
pub static GRUVBOX_LIGHT_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours { pub static GRUVBOX_LIGHT_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours {
table_header_color: Some("#076678".to_string()), table_header_color: Some("#076678".into()),
all_cpu_color: Some("#8ec07c".to_string()), all_cpu_color: Some("#8ec07c".into()),
avg_cpu_color: Some("#fb4934".to_string()), avg_cpu_color: Some("#fb4934".into()),
cpu_core_colors: Some(vec![ cpu_core_colors: Some(vec![
"#cc241d".to_string(), "#cc241d".into(),
"#98971a".to_string(), "#98971a".into(),
"#d79921".to_string(), "#d79921".into(),
"#458588".to_string(), "#458588".into(),
"#b16286".to_string(), "#b16286".into(),
"#689d6a".to_string(), "#689d6a".into(),
"#fe8019".to_string(), "#fe8019".into(),
"#b8bb26".to_string(), "#b8bb26".into(),
"#fabd2f".to_string(), "#fabd2f".into(),
"#83a598".to_string(), "#83a598".into(),
"#d3869b".to_string(), "#d3869b".into(),
"#d65d0e".to_string(), "#d65d0e".into(),
"#9d0006".to_string(), "#9d0006".into(),
"#79740e".to_string(), "#79740e".into(),
"#b57614".to_string(), "#b57614".into(),
"#076678".to_string(), "#076678".into(),
"#8f3f71".to_string(), "#8f3f71".into(),
"#427b58".to_string(), "#427b58".into(),
"#d65d03".to_string(), "#d65d03".into(),
"#af3a03".to_string(), "#af3a03".into(),
]), ]),
ram_color: Some("#427b58".to_string()), ram_color: Some("#427b58".into()),
swap_color: Some("#cc241d".to_string()), swap_color: Some("#cc241d".into()),
arc_color: Some("#689d6a".to_string()), arc_color: Some("#689d6a".into()),
gpu_core_colors: Some(vec![ gpu_core_colors: Some(vec![
"#9d0006".to_string(), "#9d0006".into(),
"#98971a".to_string(), "#98971a".into(),
"#d79921".to_string(), "#d79921".into(),
"#458588".to_string(), "#458588".into(),
"#b16286".to_string(), "#b16286".into(),
"#fe8019".to_string(), "#fe8019".into(),
"#b8bb26".to_string(), "#b8bb26".into(),
]), ]),
rx_color: Some("#427b58".to_string()), rx_color: Some("#427b58".into()),
tx_color: Some("#cc241d".to_string()), tx_color: Some("#cc241d".into()),
rx_total_color: Some("#689d6a".to_string()), rx_total_color: Some("#689d6a".into()),
tx_total_color: Some("#9d0006".to_string()), tx_total_color: Some("#9d0006".into()),
border_color: Some("#3c3836".to_string()), border_color: Some("#3c3836".into()),
highlighted_border_color: Some("#af3a03".to_string()), highlighted_border_color: Some("#af3a03".into()),
disabled_text_color: Some("#d5c4a1".to_string()), disabled_text_color: Some("#d5c4a1".into()),
text_color: Some("#3c3836".to_string()), text_color: Some("#3c3836".into()),
selected_text_color: Some("#ebdbb2".to_string()), selected_text_color: Some("#ebdbb2".into()),
selected_bg_color: Some("#3c3836".to_string()), selected_bg_color: Some("#3c3836".into()),
widget_title_color: Some("#3c3836".to_string()), widget_title_color: Some("#3c3836".into()),
graph_color: Some("#3c3836".to_string()), graph_color: Some("#3c3836".into()),
high_battery_color: Some("#98971a".to_string()), high_battery_color: Some("#98971a".into()),
medium_battery_color: Some("#d79921".to_string()), medium_battery_color: Some("#d79921".into()),
low_battery_color: Some("#cc241d".to_string()), low_battery_color: Some("#cc241d".into()),
}); });
pub static NORD_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours { pub static NORD_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours {
table_header_color: Some("#81a1c1".to_string()), table_header_color: Some("#81a1c1".into()),
all_cpu_color: Some("#88c0d0".to_string()), all_cpu_color: Some("#88c0d0".into()),
avg_cpu_color: Some("#8fbcbb".to_string()), avg_cpu_color: Some("#8fbcbb".into()),
cpu_core_colors: Some(vec![ cpu_core_colors: Some(vec![
"#5e81ac".to_string(), "#5e81ac".into(),
"#81a1c1".to_string(), "#81a1c1".into(),
"#d8dee9".to_string(), "#d8dee9".into(),
"#b48ead".to_string(), "#b48ead".into(),
"#a3be8c".to_string(), "#a3be8c".into(),
"#ebcb8b".to_string(), "#ebcb8b".into(),
"#d08770".to_string(), "#d08770".into(),
"#bf616a".to_string(), "#bf616a".into(),
]), ]),
ram_color: Some("#88c0d0".to_string()), ram_color: Some("#88c0d0".into()),
swap_color: Some("#d08770".to_string()), swap_color: Some("#d08770".into()),
arc_color: Some("#5e81ac".to_string()), arc_color: Some("#5e81ac".into()),
gpu_core_colors: Some(vec![ gpu_core_colors: Some(vec![
"#8fbcbb".to_string(), "#8fbcbb".into(),
"#81a1c1".to_string(), "#81a1c1".into(),
"#d8dee9".to_string(), "#d8dee9".into(),
"#b48ead".to_string(), "#b48ead".into(),
"#a3be8c".to_string(), "#a3be8c".into(),
"#ebcb8b".to_string(), "#ebcb8b".into(),
"#bf616a".to_string(), "#bf616a".into(),
]), ]),
rx_color: Some("#88c0d0".to_string()), rx_color: Some("#88c0d0".into()),
tx_color: Some("#d08770".to_string()), tx_color: Some("#d08770".into()),
rx_total_color: Some("#5e81ac".to_string()), rx_total_color: Some("#5e81ac".into()),
tx_total_color: Some("#8fbcbb".to_string()), tx_total_color: Some("#8fbcbb".into()),
border_color: Some("#88c0d0".to_string()), border_color: Some("#88c0d0".into()),
highlighted_border_color: Some("#5e81ac".to_string()), highlighted_border_color: Some("#5e81ac".into()),
disabled_text_color: Some("#4c566a".to_string()), disabled_text_color: Some("#4c566a".into()),
text_color: Some("#e5e9f0".to_string()), text_color: Some("#e5e9f0".into()),
selected_text_color: Some("#2e3440".to_string()), selected_text_color: Some("#2e3440".into()),
selected_bg_color: Some("#88c0d0".to_string()), selected_bg_color: Some("#88c0d0".into()),
widget_title_color: Some("#e5e9f0".to_string()), widget_title_color: Some("#e5e9f0".into()),
graph_color: Some("#e5e9f0".to_string()), graph_color: Some("#e5e9f0".into()),
high_battery_color: Some("#a3be8c".to_string()), high_battery_color: Some("#a3be8c".into()),
medium_battery_color: Some("#ebcb8b".to_string()), medium_battery_color: Some("#ebcb8b".into()),
low_battery_color: Some("#bf616a".to_string()), low_battery_color: Some("#bf616a".into()),
}); });
pub static NORD_LIGHT_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours { pub static NORD_LIGHT_COLOUR_PALETTE: Lazy<ConfigColours> = Lazy::new(|| ConfigColours {
table_header_color: Some("#5e81ac".to_string()), table_header_color: Some("#5e81ac".into()),
all_cpu_color: Some("#81a1c1".to_string()), all_cpu_color: Some("#81a1c1".into()),
avg_cpu_color: Some("#8fbcbb".to_string()), avg_cpu_color: Some("#8fbcbb".into()),
cpu_core_colors: Some(vec![ cpu_core_colors: Some(vec![
"#5e81ac".to_string(), "#5e81ac".into(),
"#88c0d0".to_string(), "#88c0d0".into(),
"#4c566a".to_string(), "#4c566a".into(),
"#b48ead".to_string(), "#b48ead".into(),
"#a3be8c".to_string(), "#a3be8c".into(),
"#ebcb8b".to_string(), "#ebcb8b".into(),
"#d08770".to_string(), "#d08770".into(),
"#bf616a".to_string(), "#bf616a".into(),
]), ]),
ram_color: Some("#81a1c1".to_string()), ram_color: Some("#81a1c1".into()),
swap_color: Some("#d08770".to_string()), swap_color: Some("#d08770".into()),
arc_color: Some("#5e81ac".to_string()), arc_color: Some("#5e81ac".into()),
gpu_core_colors: Some(vec![ gpu_core_colors: Some(vec![
"#8fbcbb".to_string(), "#8fbcbb".into(),
"#88c0d0".to_string(), "#88c0d0".into(),
"#4c566a".to_string(), "#4c566a".into(),
"#b48ead".to_string(), "#b48ead".into(),
"#a3be8c".to_string(), "#a3be8c".into(),
"#ebcb8b".to_string(), "#ebcb8b".into(),
"#bf616a".to_string(), "#bf616a".into(),
]), ]),
rx_color: Some("#81a1c1".to_string()), rx_color: Some("#81a1c1".into()),
tx_color: Some("#d08770".to_string()), tx_color: Some("#d08770".into()),
rx_total_color: Some("#5e81ac".to_string()), rx_total_color: Some("#5e81ac".into()),
tx_total_color: Some("#8fbcbb".to_string()), tx_total_color: Some("#8fbcbb".into()),
border_color: Some("#2e3440".to_string()), border_color: Some("#2e3440".into()),
highlighted_border_color: Some("#5e81ac".to_string()), highlighted_border_color: Some("#5e81ac".into()),
disabled_text_color: Some("#d8dee9".to_string()), disabled_text_color: Some("#d8dee9".into()),
text_color: Some("#2e3440".to_string()), text_color: Some("#2e3440".into()),
selected_text_color: Some("#f5f5f5".to_string()), selected_text_color: Some("#f5f5f5".into()),
selected_bg_color: Some("#5e81ac".to_string()), selected_bg_color: Some("#5e81ac".into()),
widget_title_color: Some("#2e3440".to_string()), widget_title_color: Some("#2e3440".into()),
graph_color: Some("#2e3440".to_string()), graph_color: Some("#2e3440".into()),
high_battery_color: Some("#a3be8c".to_string()), high_battery_color: Some("#a3be8c".into()),
medium_battery_color: Some("#ebcb8b".to_string()), medium_battery_color: Some("#ebcb8b".into()),
low_battery_color: Some("#bf616a".to_string()), low_battery_color: Some("#bf616a".into()),
}); });
// Help text // Help text

View File

@ -371,7 +371,7 @@ pub fn convert_network_data_points(
), ),
}; };
let (rx_converted_result, total_rx_converted_result): ((f64, String), (f64, String)) = let (rx_converted_result, total_rx_converted_result): ((f64, String), (f64, &'static str)) =
if network_use_binary_prefix { if network_use_binary_prefix {
( (
get_binary_prefix(rx_data, unit), // If this isn't obvious why there's two functions, one you can configure the unit, the other is always bytes get_binary_prefix(rx_data, unit), // If this isn't obvious why there's two functions, one you can configure the unit, the other is always bytes
@ -384,7 +384,7 @@ pub fn convert_network_data_points(
) )
}; };
let (tx_converted_result, total_tx_converted_result): ((f64, String), (f64, String)) = let (tx_converted_result, total_tx_converted_result): ((f64, String), (f64, &'static str)) =
if network_use_binary_prefix { if network_use_binary_prefix {
( (
get_binary_prefix(tx_data, unit), get_binary_prefix(tx_data, unit),

View File

@ -114,29 +114,29 @@ impl WidgetIdEnabled {
#[derive(Clone, Debug, Default, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct ConfigColours { pub struct ConfigColours {
pub table_header_color: Option<String>, pub table_header_color: Option<Cow<'static, str>>,
pub all_cpu_color: Option<String>, pub all_cpu_color: Option<Cow<'static, str>>,
pub avg_cpu_color: Option<String>, pub avg_cpu_color: Option<Cow<'static, str>>,
pub cpu_core_colors: Option<Vec<String>>, pub cpu_core_colors: Option<Vec<Cow<'static, str>>>,
pub ram_color: Option<String>, pub ram_color: Option<Cow<'static, str>>,
pub swap_color: Option<String>, pub swap_color: Option<Cow<'static, str>>,
pub arc_color: Option<String>, pub arc_color: Option<Cow<'static, str>>,
pub gpu_core_colors: Option<Vec<String>>, pub gpu_core_colors: Option<Vec<Cow<'static, str>>>,
pub rx_color: Option<String>, pub rx_color: Option<Cow<'static, str>>,
pub tx_color: Option<String>, pub tx_color: Option<Cow<'static, str>>,
pub rx_total_color: Option<String>, // These only affect basic mode. pub rx_total_color: Option<Cow<'static, str>>, // These only affect basic mode.
pub tx_total_color: Option<String>, // These only affect basic mode. pub tx_total_color: Option<Cow<'static, str>>, // These only affect basic mode.
pub border_color: Option<String>, pub border_color: Option<Cow<'static, str>>,
pub highlighted_border_color: Option<String>, pub highlighted_border_color: Option<Cow<'static, str>>,
pub disabled_text_color: Option<String>, pub disabled_text_color: Option<Cow<'static, str>>,
pub text_color: Option<String>, pub text_color: Option<Cow<'static, str>>,
pub selected_text_color: Option<String>, pub selected_text_color: Option<Cow<'static, str>>,
pub selected_bg_color: Option<String>, pub selected_bg_color: Option<Cow<'static, str>>,
pub widget_title_color: Option<String>, pub widget_title_color: Option<Cow<'static, str>>,
pub graph_color: Option<String>, pub graph_color: Option<Cow<'static, str>>,
pub high_battery_color: Option<String>, pub high_battery_color: Option<Cow<'static, str>>,
pub medium_battery_color: Option<String>, pub medium_battery_color: Option<Cow<'static, str>>,
pub low_battery_color: Option<String>, pub low_battery_color: Option<Cow<'static, str>>,
} }
impl ConfigColours { impl ConfigColours {

View File

@ -100,13 +100,7 @@ impl From<regex::Error> for BottomError {
let err_str = err.to_string(); let err_str = err.to_string();
let error = err_str.split('\n').map(|s| s.trim()).collect::<Vec<_>>(); let error = err_str.split('\n').map(|s| s.trim()).collect::<Vec<_>>();
BottomError::QueryError( BottomError::QueryError(format!("Regex error: {}", error.last().unwrap_or(&"")).into())
format!(
"Regex error: {}",
error.last().unwrap_or(&"".to_string().as_str())
)
.into(),
)
} }
} }

View File

@ -47,26 +47,26 @@ pub const LOG_TEBI_LIMIT_U32: u32 = 40;
/// Returns a tuple containing the value and the unit in bytes. In units of 1024. /// Returns a tuple containing the value and the unit in bytes. In units of 1024.
/// This only supports up to a tebi. Note the "single" unit will have a space appended to match the others if /// This only supports up to a tebi. Note the "single" unit will have a space appended to match the others if
/// `spacing` is true. /// `spacing` is true.
pub fn get_binary_bytes(bytes: u64) -> (f64, String) { pub fn get_binary_bytes(bytes: u64) -> (f64, &'static str) {
match bytes { match bytes {
b if b < KIBI_LIMIT => (bytes as f64, "B".to_string()), b if b < KIBI_LIMIT => (bytes as f64, "B"),
b if b < MEBI_LIMIT => (bytes as f64 / 1024.0, "KiB".to_string()), b if b < MEBI_LIMIT => (bytes as f64 / 1024.0, "KiB"),
b if b < GIBI_LIMIT => (bytes as f64 / 1_048_576.0, "MiB".to_string()), b if b < GIBI_LIMIT => (bytes as f64 / 1_048_576.0, "MiB"),
b if b < TERA_LIMIT => (bytes as f64 / 1_073_741_824.0, "GiB".to_string()), b if b < TERA_LIMIT => (bytes as f64 / 1_073_741_824.0, "GiB"),
_ => (bytes as f64 / 1_099_511_627_776.0, "TiB".to_string()), _ => (bytes as f64 / 1_099_511_627_776.0, "TiB"),
} }
} }
/// Returns a tuple containing the value and the unit in bytes. In units of 1000. /// Returns a tuple containing the value and the unit in bytes. In units of 1000.
/// This only supports up to a tera. Note the "single" unit will have a space appended to match the others if /// This only supports up to a tera. Note the "single" unit will have a space appended to match the others if
/// `spacing` is true. /// `spacing` is true.
pub fn get_decimal_bytes(bytes: u64) -> (f64, String) { pub fn get_decimal_bytes(bytes: u64) -> (f64, &'static str) {
match bytes { match bytes {
b if b < KILO_LIMIT => (bytes as f64, "B".to_string()), b if b < KILO_LIMIT => (bytes as f64, "B"),
b if b < MEGA_LIMIT => (bytes as f64 / 1000.0, "KB".to_string()), b if b < MEGA_LIMIT => (bytes as f64 / 1000.0, "KB"),
b if b < GIGA_LIMIT => (bytes as f64 / 1_000_000.0, "MB".to_string()), b if b < GIGA_LIMIT => (bytes as f64 / 1_000_000.0, "MB"),
b if b < TERA_LIMIT => (bytes as f64 / 1_000_000_000.0, "GB".to_string()), b if b < TERA_LIMIT => (bytes as f64 / 1_000_000_000.0, "GB"),
_ => (bytes as f64 / 1_000_000_000_000.0, "TB".to_string()), _ => (bytes as f64 / 1_000_000_000_000.0, "TB"),
} }
} }