summaryrefslogtreecommitdiffstats
path: root/default-plugins/status-bar
diff options
context:
space:
mode:
authordenis <denismaximov98@gmail.com>2021-04-24 18:28:28 +0300
committerdenis <denismaximov98@gmail.com>2021-04-24 18:28:28 +0300
commit2e94ef51aa7ef3577a47015f27c89470c1e4b73b (patch)
tree49c076a198cdc9567abec415fc90849964199726 /default-plugins/status-bar
parentde72d3d2fb785117e599d17525b5043345ffa03c (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.rs250
-rw-r--r--default-plugins/status-bar/src/second_line.rs51
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 {