diff options
| author | Daniel Jankowski <daniel.jankowski@rub.de> | 2023-09-01 13:13:32 +0200 |
|---|---|---|
| committer | Daniel Jankowski <daniel.jankowski@rub.de> | 2023-09-01 13:13:32 +0200 |
| commit | f90cabfb87768c8eea94809f0aeedecec0fb7b4e (patch) | |
| tree | e8bbc2ba008b861c01127a80ac6bb6dd5f33eeca /src | |
| parent | fix: make timezone configurable (diff) | |
| download | sl0pstatus-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.rs | 7 | ||||
| -rw-r--r-- | src/main.rs | 23 |
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 |
