aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel Jankowski <daniel.jankowski@rub.de>2023-09-01 13:13:32 +0200
committerDaniel Jankowski <daniel.jankowski@rub.de>2023-09-01 13:13:32 +0200
commitf90cabfb87768c8eea94809f0aeedecec0fb7b4e (patch)
treee8bbc2ba008b861c01127a80ac6bb6dd5f33eeca /src
parentfix: make timezone configurable (diff)
downloadsl0pstatus-f90cabfb87768c8eea94809f0aeedecec0fb7b4e.tar.gz
sl0pstatus-f90cabfb87768c8eea94809f0aeedecec0fb7b4e.tar.xz
sl0pstatus-f90cabfb87768c8eea94809f0aeedecec0fb7b4e.zip
feat: color blank space with config
Diffstat (limited to 'src')
-rw-r--r--src/config.rs7
-rw-r--r--src/main.rs23
2 files changed, 26 insertions, 4 deletions
diff --git a/src/config.rs b/src/config.rs
index 9352e0f..db4b443 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -6,6 +6,7 @@ use ansi_term::{Colour, Colour::Fixed, Colour::RGB};
pub struct ModuleConfig {
pub left_parts: Vec<FormattedPart>,
pub right_parts: Vec<FormattedPart>,
+ pub format_space: FormattedPart,
}
#[derive(Clone, Debug)]
@@ -86,9 +87,15 @@ impl Default for FormattedPart {
}
pub fn parse_format(config: BTreeMap<String, String>) -> ModuleConfig {
+ let mut format_space_config = "";
+ if let Some(space_config) = config.get("format_space") {
+ format_space_config = space_config;
+ }
+
ModuleConfig {
left_parts: parts_from_config(config.get("format_left")),
right_parts: parts_from_config(config.get("format_right")),
+ format_space: FormattedPart::from_format_string(format_space_config.to_string()),
}
}
diff --git a/src/main.rs b/src/main.rs
index cf0d4f8..12a18af 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,7 @@
-use widgets::{datetime::DateTimeWidget, mode::ModeWidget, tabs::TabsWidget, widget::Widget, session::SessionWidget};
+use widgets::{
+ datetime::DateTimeWidget, mode::ModeWidget, session::SessionWidget, tabs::TabsWidget,
+ widget::Widget,
+};
use zellij_tile::prelude::*;
use std::{collections::BTreeMap, sync::Arc, u8, usize};
@@ -35,7 +38,11 @@ impl ZellijPlugin for State {
PermissionType::ReadApplicationState,
PermissionType::RunCommands,
]);
- subscribe(&[EventType::ModeUpdate, EventType::TabUpdate, EventType::SessionUpdate]);
+ subscribe(&[
+ EventType::ModeUpdate,
+ EventType::TabUpdate,
+ EventType::SessionUpdate,
+ ]);
self.module_config = config::parse_format(configuration.clone());
self.widget_map = register_widgets(configuration);
@@ -96,7 +103,12 @@ impl ZellijPlugin for State {
space_count -= text_count;
}
- print!("{}{}{}", output_left, " ".repeat(space_count), output_right);
+ let spaces = render::formatting(
+ self.module_config.format_space.clone(),
+ " ".repeat(space_count),
+ );
+
+ print!("{}{}{}", output_left, spaces, output_right);
}
}
@@ -111,7 +123,10 @@ fn register_widgets(configuration: BTreeMap<String, String>) -> BTreeMap<String,
"mode".to_string(),
Arc::new(ModeWidget::new(configuration.clone())),
);
- widget_map.insert("session".to_string(), Arc::new(SessionWidget::new(configuration.clone())));
+ widget_map.insert(
+ "session".to_string(),
+ Arc::new(SessionWidget::new(configuration.clone())),
+ );
widget_map.insert("tabs".to_string(), Arc::new(TabsWidget::new(configuration)));
widget_map