diff options
author | denis <denismaximov98@gmail.com> | 2021-04-24 18:28:28 +0300 |
---|---|---|
committer | denis <denismaximov98@gmail.com> | 2021-04-24 18:28:28 +0300 |
commit | 2e94ef51aa7ef3577a47015f27c89470c1e4b73b (patch) | |
tree | 49c076a198cdc9567abec415fc90849964199726 /default-plugins/status-bar | |
parent | de72d3d2fb785117e599d17525b5043345ffa03c (diff) |
wip: trying to make it less messy so people don't hate me
Diffstat (limited to 'default-plugins/status-bar')
-rw-r--r-- | default-plugins/status-bar/src/main.rs | 250 | ||||
-rw-r--r-- | default-plugins/status-bar/src/second_line.rs | 51 |
2 files changed, 94 insertions, 207 deletions
diff --git a/default-plugins/status-bar/src/main.rs b/default-plugins/status-bar/src/main.rs index 2410a9b1a..ddc0a821e 100644 --- a/default-plugins/status-bar/src/main.rs +++ b/default-plugins/status-bar/src/main.rs @@ -9,17 +9,6 @@ use zellij_tile::prelude::*; use first_line::{ctrl_keys, superkey}; use second_line::keybinds; -pub mod colors { - use ansi_term::Colour::{self, Fixed}; - pub const WHITE: Colour = Fixed(255); - pub const BLACK: Colour = Fixed(16); - pub const GREEN: Colour = Fixed(154); - pub const ORANGE: Colour = Fixed(166); - pub const GRAY: Colour = Fixed(238); - pub const BRIGHT_GRAY: Colour = Fixed(245); - pub const RED: Colour = Fixed(88); -} - // for more of these, copy paste from: https://en.wikipedia.org/wiki/Box-drawing_character static ARROW_SEPARATOR: &str = ""; static MORE_MSG: &str = " ... "; @@ -130,187 +119,74 @@ impl ColoredElements { } } +macro_rules! rgb { + ($a:expr) => { + RGB($a.0, $a.1, $a.2) + }; +} +macro_rules! style { + ($a:expr, $b:expr) => { + Style::new() + .fg(RGB($a.0, $a.1, $a.2)) + .on(RGB($b.0, $b.1, $b.2)) + }; +} + +// I really hate this, but I can't come up with a good solution for this, +// we need different colors from palette for the default theme +// 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 { match palette.source { PaletteSource::Default => ColoredElements::new( - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)), - Style::new() - .fg(RGB(palette.black.0, palette.black.1, palette.black.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.black.0, palette.black.1, palette.black.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.black.0, palette.black.1, palette.black.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .bold(), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .bold() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.black.0, palette.black.1, palette.black.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .dimmed(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.white.0, palette.white.1, palette.white.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .bold(), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), + style!(palette.bg, palette.green), + style!(palette.black, palette.green).bold(), + style!(palette.red, palette.green).bold(), + style!(palette.black, palette.green).bold(), + style!(palette.black, palette.green).bold(), + style!(palette.green, palette.bg).bold(), + style!(palette.bg, palette.fg), + style!(palette.bg, palette.fg).bold(), + style!(palette.red, palette.fg).bold(), + style!(palette.bg, palette.fg).bold(), + style!(palette.black, palette.fg).bold(), + style!(palette.fg, palette.bg), + style!(palette.fg, palette.bg), + style!(palette.bg, palette.fg).dimmed(), + style!(palette.fg, palette.bg), + style!(palette.fg, palette.green), + style!(palette.red, palette.green).bold(), + style!(palette.green, palette.fg), + style!(palette.fg, palette.bg), + style!(palette.red, palette.fg).bold(), + style!(palette.fg, palette.bg), + style!(palette.white, palette.bg).bold(), + Style::new().fg(rgb!(palette.bg)).on(rgb!(palette.bg)), ), PaletteSource::Xresources => ColoredElements::new( - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .bold(), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .bold() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .bold() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .dimmed(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.green.0, palette.green.1, palette.green.2)) - .bold(), - Style::new() - .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)), - Style::new() - .bold() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), - Style::new() - .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2)) - .on(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .bold(), - Style::new() - .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) - .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2)), + style!(palette.bg, palette.green), + style!(palette.fg, palette.green).bold(), + style!(palette.red, palette.green).bold(), + style!(palette.fg, palette.green).bold(), + style!(palette.bg, palette.green).bold(), + style!(palette.green, palette.bg).bold(), + style!(palette.bg, palette.fg), + style!(palette.bg, palette.fg).bold(), + style!(palette.red, palette.fg).bold(), + style!(palette.bg, palette.fg).bold(), + style!(palette.bg, palette.fg).bold(), + style!(palette.fg, palette.bg), + style!(palette.fg, palette.bg), + style!(palette.bg, palette.fg).dimmed(), + style!(palette.fg, palette.bg), + style!(palette.fg, palette.green), + style!(palette.red, palette.green).bold(), + style!(palette.green, palette.fg), + style!(palette.fg, palette.bg), + style!(palette.red, palette.fg).bold(), + style!(palette.fg, palette.bg), + style!(palette.bg, palette.fg).bold(), + style!(palette.fg, palette.bg), ), } } diff --git a/default-plugins/status-bar/src/second_line.rs b/default-plugins/status-bar/src/second_line.rs index 8cea48a2d..73c4d7650 100644 --- a/default-plugins/status-bar/src/second_line.rs +++ b/default-plugins/status-bar/src/second_line.rs @@ -2,10 +2,6 @@ use ansi_term::{ANSIStrings, Color::RGB, Style}; use zellij_tile::prelude::*; -use crate::{ - colors::{GREEN, ORANGE, WHITE}, - ColoredElements, -}; use crate::{LinePart, MORE_MSG}; fn full_length_shortcut( @@ -120,7 +116,7 @@ fn quicknav_full(palette: Palette) -> LinePart { "{}{}{}{}{}{}{}{}{}{}{}", text_first_part, Style::new() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) + .fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)) .bold() .paint(alt), text_second_part, @@ -130,7 +126,7 @@ fn quicknav_full(palette: Palette) -> LinePart { .paint(new_pane_shortcut), text_third_part, Style::new() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) + .fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)) .bold() .paint(second_alt), text_fourth_part, @@ -149,7 +145,7 @@ fn quicknav_full(palette: Palette) -> LinePart { } } -fn quicknav_medium() -> LinePart { +fn quicknav_medium(palette: Palette) -> LinePart { let text_first_part = " Tip: "; let alt = "Alt"; let text_second_part = " + "; @@ -176,22 +172,37 @@ fn quicknav_medium() -> LinePart { part: format!( "{}{}{}{}{}{}{}{}{}{}{}", text_first_part, - Style::new().fg(ORANGE).bold().paint(alt), + Style::new() + .fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)) + .bold() + .paint(alt), text_second_part, - Style::new().fg(GREEN).bold().paint(new_pane_shortcut), + Style::new() + .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) + .bold() + .paint(new_pane_shortcut), text_third_part, - Style::new().fg(ORANGE).bold().paint(second_alt), + Style::new() + .fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)) + .bold() + .paint(second_alt), text_fourth_part, - Style::new().fg(GREEN).bold().paint(brackets_navigation), + Style::new() + .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) + .bold() + .paint(brackets_navigation), text_fifth_part, - Style::new().fg(GREEN).bold().paint(hjkl_navigation), + Style::new() + .fg(RGB(palette.green.0, palette.green.1, palette.green.2)) + .bold() + .paint(hjkl_navigation), text_sixths_part, ), len, } } -fn quicknav_short() -> LinePart { +fn quicknav_short(palette: Palette) -> LinePart { let text_first_part = " QuickNav: "; let alt = "Alt"; let text_second_part = " + "; @@ -212,13 +223,13 @@ fn quicknav_short() -> LinePart { part: format!( "{}{}{}{}{}{}{}{}", text_first_part, - Style::new().fg(ORANGE).bold().paint(alt), + Style::new().fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)).bold().paint(alt), text_second_part, - Style::new().fg(GREEN).bold().paint(new_pane_shortcut), + Style::new().fg(RGB(palette.green.0, palette.green.1, palette.green.2)).bold().paint(new_pane_shortcut), text_third_part, - Style::new().fg(GREEN).bold().paint(brackets_navigation), + Style::new().fg(RGB(palette.green.0, palette.green.1, palette.green.2)).bold().paint(brackets_navigation), text_fifth_part, - Style::new().fg(GREEN).bold().paint(hjkl_navigation), + Style::new().fg(RGB(palette.green.0, palette.green.1, palette.green.2)).bold().paint(hjkl_navigation), ), len, } @@ -249,7 +260,7 @@ fn select_pane_shortcut(is_first_shortcut: bool, palette: Palette) -> LinePart { .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2)) .paint("<"); let shortcut = Style::new() - .fg(RGB(palette.red.0, palette.red.1, palette.red.2)) + .fg(RGB(palette.orange.0, palette.orange.1, palette.orange.2)) .bold() .paint(shortcut); let shortcut_right_separator = Style::new() @@ -297,7 +308,7 @@ fn full_shortcut_list(help: &ModeInfo) -> LinePart { fn shortened_shortcut_list(help: &ModeInfo) -> LinePart { match help.mode { - InputMode::Normal => quicknav_medium(), + InputMode::Normal => quicknav_medium(help.palette), InputMode::Locked => locked_interface_indication(help.palette), _ => { let mut line_part = LinePart::default(); @@ -317,7 +328,7 @@ fn shortened_shortcut_list(help: &ModeInfo) -> LinePart { fn best_effort_shortcut_list(help: &ModeInfo, max_len: usize) -> LinePart { match help.mode { InputMode::Normal => { - let line_part = quicknav_short(); + let line_part = quicknav_short(help.palette); if line_part.len <= max_len { line_part } else { |