Skip to content

Commit

Permalink
refactor: move around a bunch of config code, start grouping changes
Browse files Browse the repository at this point in the history
TODO: Update built-in configs!
TODO: Update docs; add section for config file
  • Loading branch information
ClementTsang committed Jan 24, 2024
1 parent 01b8015 commit 557cbed
Show file tree
Hide file tree
Showing 16 changed files with 408 additions and 323 deletions.
5 changes: 4 additions & 1 deletion src/canvas/styling.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ use tui::style::{Color, Style};

use super::ColourScheme;
pub use crate::options::Config;
use crate::{constants::*, options::colours::ConfigColours, utils::error};
use crate::{
options::config::{colours::ConfigColours, palettes::*},
utils::error,
};

pub struct CanvasStyling {
pub currently_selected_text_colour: Color,
Expand Down
256 changes: 0 additions & 256 deletions src/constants.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
use tui::widgets::Borders;

use crate::options::ConfigColours;

// Default widget ID
pub const DEFAULT_WIDGET_ID: u64 = 56709;

Expand All @@ -23,260 +21,6 @@ pub const TIME_LABEL_HEIGHT_LIMIT: u16 = 7;
// Side borders
pub const SIDE_BORDERS: Borders = Borders::LEFT.union(Borders::RIGHT);

// Colour profiles
// TODO: Generate these with a macro or something...
pub fn default_light_mode_colour_palette() -> ConfigColours {
ConfigColours {
text_color: Some("black".into()),
border_color: Some("black".into()),
table_header_color: Some("black".into()),
widget_title_color: Some("black".into()),
selected_text_color: Some("white".into()),
graph_color: Some("black".into()),
disabled_text_color: Some("gray".into()),
ram_color: Some("blue".into()),
#[cfg(not(target_os = "windows"))]
cache_color: Some("LightRed".into()),
swap_color: Some("red".into()),
arc_color: Some("LightBlue".into()),
gpu_core_colors: Some(vec![
"LightGreen".into(),
"LightCyan".into(),
"LightRed".into(),
"Cyan".into(),
"Green".into(),
"Blue".into(),
"Red".into(),
]),
rx_color: Some("blue".into()),
tx_color: Some("red".into()),
rx_total_color: Some("LightBlue".into()),
tx_total_color: Some("LightRed".into()),
cpu_core_colors: Some(vec![
"LightMagenta".into(),
"LightBlue".into(),
"LightRed".into(),
"Cyan".into(),
"Green".into(),
"Blue".into(),
"Red".into(),
]),
..ConfigColours::default()
}
}

pub fn gruvbox_colour_palette() -> ConfigColours {
ConfigColours {
table_header_color: Some("#83a598".into()),
all_cpu_color: Some("#8ec07c".into()),
avg_cpu_color: Some("#fb4934".into()),
cpu_core_colors: Some(vec![
"#cc241d".into(),
"#98971a".into(),
"#d79921".into(),
"#458588".into(),
"#b16286".into(),
"#689d6a".into(),
"#fe8019".into(),
"#b8bb26".into(),
"#fabd2f".into(),
"#83a598".into(),
"#d3869b".into(),
"#d65d0e".into(),
"#9d0006".into(),
"#79740e".into(),
"#b57614".into(),
"#076678".into(),
"#8f3f71".into(),
"#427b58".into(),
"#d65d03".into(),
"#af3a03".into(),
]),
ram_color: Some("#8ec07c".into()),
#[cfg(not(target_os = "windows"))]
cache_color: Some("#b16286".into()),
swap_color: Some("#fabd2f".into()),
arc_color: Some("#689d6a".into()),
gpu_core_colors: Some(vec![
"#d79921".into(),
"#458588".into(),
"#b16286".into(),
"#fe8019".into(),
"#b8bb26".into(),
"#cc241d".into(),
"#98971a".into(),
]),
rx_color: Some("#8ec07c".into()),
tx_color: Some("#fabd2f".into()),
rx_total_color: Some("#689d6a".into()),
tx_total_color: Some("#d79921".into()),
border_color: Some("#ebdbb2".into()),
highlighted_border_color: Some("#fe8019".into()),
disabled_text_color: Some("#665c54".into()),
text_color: Some("#ebdbb2".into()),
selected_text_color: Some("#1d2021".into()),
selected_bg_color: Some("#ebdbb2".into()),
widget_title_color: Some("#ebdbb2".into()),
graph_color: Some("#ebdbb2".into()),
high_battery_color: Some("#98971a".into()),
medium_battery_color: Some("#fabd2f".into()),
low_battery_color: Some("#fb4934".into()),
}
}

pub fn gruvbox_light_colour_palette() -> ConfigColours {
ConfigColours {
table_header_color: Some("#076678".into()),
all_cpu_color: Some("#8ec07c".into()),
avg_cpu_color: Some("#fb4934".into()),
cpu_core_colors: Some(vec![
"#cc241d".into(),
"#98971a".into(),
"#d79921".into(),
"#458588".into(),
"#b16286".into(),
"#689d6a".into(),
"#fe8019".into(),
"#b8bb26".into(),
"#fabd2f".into(),
"#83a598".into(),
"#d3869b".into(),
"#d65d0e".into(),
"#9d0006".into(),
"#79740e".into(),
"#b57614".into(),
"#076678".into(),
"#8f3f71".into(),
"#427b58".into(),
"#d65d03".into(),
"#af3a03".into(),
]),
ram_color: Some("#427b58".into()),
#[cfg(not(target_os = "windows"))]
cache_color: Some("#d79921".into()),
swap_color: Some("#cc241d".into()),
arc_color: Some("#689d6a".into()),
gpu_core_colors: Some(vec![
"#9d0006".into(),
"#98971a".into(),
"#d79921".into(),
"#458588".into(),
"#b16286".into(),
"#fe8019".into(),
"#b8bb26".into(),
]),
rx_color: Some("#427b58".into()),
tx_color: Some("#cc241d".into()),
rx_total_color: Some("#689d6a".into()),
tx_total_color: Some("#9d0006".into()),
border_color: Some("#3c3836".into()),
highlighted_border_color: Some("#af3a03".into()),
disabled_text_color: Some("#d5c4a1".into()),
text_color: Some("#3c3836".into()),
selected_text_color: Some("#ebdbb2".into()),
selected_bg_color: Some("#3c3836".into()),
widget_title_color: Some("#3c3836".into()),
graph_color: Some("#3c3836".into()),
high_battery_color: Some("#98971a".into()),
medium_battery_color: Some("#d79921".into()),
low_battery_color: Some("#cc241d".into()),
}
}

pub fn nord_colour_palette() -> ConfigColours {
ConfigColours {
table_header_color: Some("#81a1c1".into()),
all_cpu_color: Some("#88c0d0".into()),
avg_cpu_color: Some("#8fbcbb".into()),
cpu_core_colors: Some(vec![
"#5e81ac".into(),
"#81a1c1".into(),
"#d8dee9".into(),
"#b48ead".into(),
"#a3be8c".into(),
"#ebcb8b".into(),
"#d08770".into(),
"#bf616a".into(),
]),
ram_color: Some("#88c0d0".into()),
#[cfg(not(target_os = "windows"))]
cache_color: Some("#d8dee9".into()),
swap_color: Some("#d08770".into()),
arc_color: Some("#5e81ac".into()),
gpu_core_colors: Some(vec![
"#8fbcbb".into(),
"#81a1c1".into(),
"#d8dee9".into(),
"#b48ead".into(),
"#a3be8c".into(),
"#ebcb8b".into(),
"#bf616a".into(),
]),
rx_color: Some("#88c0d0".into()),
tx_color: Some("#d08770".into()),
rx_total_color: Some("#5e81ac".into()),
tx_total_color: Some("#8fbcbb".into()),
border_color: Some("#88c0d0".into()),
highlighted_border_color: Some("#5e81ac".into()),
disabled_text_color: Some("#4c566a".into()),
text_color: Some("#e5e9f0".into()),
selected_text_color: Some("#2e3440".into()),
selected_bg_color: Some("#88c0d0".into()),
widget_title_color: Some("#e5e9f0".into()),
graph_color: Some("#e5e9f0".into()),
high_battery_color: Some("#a3be8c".into()),
medium_battery_color: Some("#ebcb8b".into()),
low_battery_color: Some("#bf616a".into()),
}
}

pub fn nord_light_colour_palette() -> ConfigColours {
ConfigColours {
table_header_color: Some("#5e81ac".into()),
all_cpu_color: Some("#81a1c1".into()),
avg_cpu_color: Some("#8fbcbb".into()),
cpu_core_colors: Some(vec![
"#5e81ac".into(),
"#88c0d0".into(),
"#4c566a".into(),
"#b48ead".into(),
"#a3be8c".into(),
"#ebcb8b".into(),
"#d08770".into(),
"#bf616a".into(),
]),
ram_color: Some("#81a1c1".into()),
#[cfg(not(target_os = "windows"))]
cache_color: Some("#4c566a".into()),
swap_color: Some("#d08770".into()),
arc_color: Some("#5e81ac".into()),
gpu_core_colors: Some(vec![
"#8fbcbb".into(),
"#88c0d0".into(),
"#4c566a".into(),
"#b48ead".into(),
"#a3be8c".into(),
"#ebcb8b".into(),
"#bf616a".into(),
]),
rx_color: Some("#81a1c1".into()),
tx_color: Some("#d08770".into()),
rx_total_color: Some("#5e81ac".into()),
tx_total_color: Some("#8fbcbb".into()),
border_color: Some("#2e3440".into()),
highlighted_border_color: Some("#5e81ac".into()),
disabled_text_color: Some("#d8dee9".into()),
text_color: Some("#2e3440".into()),
selected_text_color: Some("#f5f5f5".into()),
selected_bg_color: Some("#5e81ac".into()),
widget_title_color: Some("#2e3440".into()),
graph_color: Some("#2e3440".into()),
high_battery_color: Some("#a3be8c".into()),
medium_battery_color: Some("#ebcb8b".into()),
low_battery_color: Some("#bf616a".into()),
}
}

// Help text
pub const HELP_CONTENTS_TEXT: [&str; 10] = [
"Either scroll or press the number key to go to the corresponding help menu section:",
Expand Down
12 changes: 3 additions & 9 deletions src/options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// TODO: Break this apart or do something a bit smarter.

pub mod args;
pub mod colours;
pub mod config;

use std::{
Expand All @@ -14,7 +13,6 @@ use std::{

use anyhow::{Context, Result};
use clap::ArgMatches;
pub use colours::ConfigColours;
use hashbrown::{HashMap, HashSet};
use indexmap::IndexSet;
use regex::Regex;
Expand Down Expand Up @@ -112,14 +110,14 @@ pub fn init_app(
let network_use_binary_prefix = is_flag_enabled!(network_use_binary_prefix, matches, config);

let proc_columns: Option<IndexSet<ProcWidgetColumn>> = {
let columns = config.processes.as_ref().map(|cfg| cfg.columns.clone());
let columns = config.processes.columns.as_ref();

match columns {
Some(columns) => {
if columns.is_empty() {
None
} else {
Some(IndexSet::from_iter(columns))
Some(IndexSet::from_iter(columns.clone()))
}
}
None => None,
Expand Down Expand Up @@ -208,11 +206,7 @@ pub fn init_app(
widget.widget_id,
CpuWidgetState::new(
&app_config_fields,
config
.cpu
.as_ref()
.map(|cfg| cfg.default)
.unwrap_or_default(),
config.cpu.default,
default_time_value,
autohide_timer,
styling,
Expand Down
Loading

0 comments on commit 557cbed

Please sign in to comment.