diff options
Diffstat (limited to 'default-plugins/status-bar/src/main.rs')
-rw-r--r-- | default-plugins/status-bar/src/main.rs | 87 |
1 files changed, 50 insertions, 37 deletions
diff --git a/default-plugins/status-bar/src/main.rs b/default-plugins/status-bar/src/main.rs index 471c45c76..27e549d1c 100644 --- a/default-plugins/status-bar/src/main.rs +++ b/default-plugins/status-bar/src/main.rs @@ -81,56 +81,64 @@ pub struct ColoredElements { // plus here we can add new sources in the future, like Theme // that can be defined in the config perhaps fn color_elements(palette: Palette) -> ColoredElements { + let background = match palette.theme_hue { + ThemeHue::Dark => palette.black, + ThemeHue::Light => palette.white, + }; + let foreground = match palette.theme_hue { + ThemeHue::Dark => palette.white, + ThemeHue::Light => palette.black, + }; match palette.source { PaletteSource::Default => ColoredElements { - selected_prefix_separator: style!(palette.gray, palette.green), - selected_char_left_separator: style!(palette.black, palette.green).bold(), + selected_prefix_separator: style!(background, palette.green), + selected_char_left_separator: style!(background, palette.green).bold(), selected_char_shortcut: style!(palette.red, palette.green).bold(), - selected_char_right_separator: style!(palette.black, palette.green).bold(), - selected_styled_text: style!(palette.black, palette.green).bold(), - selected_suffix_separator: style!(palette.green, palette.gray).bold(), - unselected_prefix_separator: style!(palette.gray, palette.fg), - unselected_char_left_separator: style!(palette.black, palette.fg).bold(), + selected_char_right_separator: style!(background, palette.green).bold(), + selected_styled_text: style!(background, palette.green).bold(), + selected_suffix_separator: style!(palette.green, background).bold(), + unselected_prefix_separator: style!(background, palette.fg), + unselected_char_left_separator: style!(background, palette.fg).bold(), unselected_char_shortcut: style!(palette.red, palette.fg).bold(), - unselected_char_right_separator: style!(palette.black, palette.fg).bold(), - unselected_styled_text: style!(palette.black, palette.fg).bold(), - unselected_suffix_separator: style!(palette.fg, palette.gray), - disabled_prefix_separator: style!(palette.gray, palette.fg), - disabled_styled_text: style!(palette.gray, palette.fg).dimmed(), - disabled_suffix_separator: style!(palette.fg, palette.gray), - selected_single_letter_prefix_separator: style!(palette.gray, palette.green), + unselected_char_right_separator: style!(background, palette.fg).bold(), + unselected_styled_text: style!(background, palette.fg).bold(), + unselected_suffix_separator: style!(palette.fg, background), + disabled_prefix_separator: style!(background, palette.fg), + disabled_styled_text: style!(background, palette.fg).dimmed(), + disabled_suffix_separator: style!(palette.fg, background), + selected_single_letter_prefix_separator: style!(background, palette.green), selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(), - selected_single_letter_suffix_separator: style!(palette.green, palette.gray), - unselected_single_letter_prefix_separator: style!(palette.gray, palette.fg), - unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(), - unselected_single_letter_suffix_separator: style!(palette.fg, palette.gray), - superkey_prefix: style!(palette.white, palette.gray).bold(), - superkey_suffix_separator: style!(palette.gray, palette.gray), + selected_single_letter_suffix_separator: style!(palette.green, background), + unselected_single_letter_prefix_separator: style!(background, palette.fg), + unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold().dimmed(), + unselected_single_letter_suffix_separator: style!(palette.fg, background), + superkey_prefix: style!(foreground, background).bold(), + superkey_suffix_separator: style!(background, background), }, PaletteSource::Xresources => ColoredElements { - selected_prefix_separator: style!(palette.gray, palette.green), + selected_prefix_separator: style!(background, palette.green), selected_char_left_separator: style!(palette.fg, palette.green).bold(), selected_char_shortcut: style!(palette.red, palette.green).bold(), selected_char_right_separator: style!(palette.fg, palette.green).bold(), - selected_styled_text: style!(palette.gray, palette.green).bold(), - selected_suffix_separator: style!(palette.green, palette.gray).bold(), - unselected_prefix_separator: style!(palette.gray, palette.fg), - unselected_char_left_separator: style!(palette.gray, palette.fg).bold(), + selected_styled_text: style!(background, palette.green).bold(), + selected_suffix_separator: style!(palette.green, background).bold(), + unselected_prefix_separator: style!(background, palette.fg), + unselected_char_left_separator: style!(background, palette.fg).bold(), unselected_char_shortcut: style!(palette.red, palette.fg).bold(), - unselected_char_right_separator: style!(palette.gray, palette.fg).bold(), - unselected_styled_text: style!(palette.gray, palette.fg).bold(), - unselected_suffix_separator: style!(palette.fg, palette.gray), - disabled_prefix_separator: style!(palette.gray, palette.fg), - disabled_styled_text: style!(palette.gray, palette.fg).dimmed(), - disabled_suffix_separator: style!(palette.fg, palette.gray), + unselected_char_right_separator: style!(background, palette.fg).bold(), + unselected_styled_text: style!(background, palette.fg).bold(), + unselected_suffix_separator: style!(palette.fg, background), + disabled_prefix_separator: style!(background, palette.fg), + disabled_styled_text: style!(background, palette.fg).dimmed(), + disabled_suffix_separator: style!(palette.fg, background), selected_single_letter_prefix_separator: style!(palette.fg, palette.green), selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(), selected_single_letter_suffix_separator: style!(palette.green, palette.fg), - unselected_single_letter_prefix_separator: style!(palette.fg, palette.gray), + unselected_single_letter_prefix_separator: style!(palette.fg, background), unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(), - unselected_single_letter_suffix_separator: style!(palette.fg, palette.gray), - superkey_prefix: style!(palette.gray, palette.fg).bold(), - superkey_suffix_separator: style!(palette.fg, palette.gray), + unselected_single_letter_suffix_separator: style!(palette.fg, background), + superkey_prefix: style!(background, palette.fg).bold(), + superkey_suffix_separator: style!(palette.fg, background), }, } } @@ -189,9 +197,14 @@ impl ZellijPlugin for State { let first_line = format!("{}{}", superkey, ctrl_keys); let second_line = self.second_line(cols); - // [48;5;238m is gray background, [0K is so that it fills the rest of the line + let background = match self.mode_info.style.colors.theme_hue { + ThemeHue::Dark => self.mode_info.style.colors.black, + ThemeHue::Light => self.mode_info.style.colors.white, + }; + + // [48;5;238m is white background, [0K is so that it fills the rest of the line // [m is background reset, [0K is so that it clears the rest of the line - match self.mode_info.style.colors.gray { + match background { PaletteColor::Rgb((r, g, b)) => { println!("{}\u{1b}[48;2;{};{};{}m\u{1b}[0K", first_line, r, g, b); } |