wip: trying to make it less messy so people don't hate me
This commit is contained in:
parent
de72d3d2fb
commit
2e94ef51aa
4 changed files with 100 additions and 207 deletions
|
|
@ -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),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ pub mod colors {
|
|||
pub const GRAY: (u8, u8, u8) = (68, 68, 68);
|
||||
pub const BRIGHT_GRAY: (u8, u8, u8) = (138, 138, 138);
|
||||
pub const RED: (u8, u8, u8) = (135, 0, 0);
|
||||
pub const ORANGE: (u8, u8, u8) = (215,95,0);
|
||||
pub const BLACK: (u8, u8, u8) = (0, 0, 0);
|
||||
}
|
||||
|
||||
|
|
@ -85,6 +86,7 @@ pub fn load_palette() -> Palette {
|
|||
magenta: colors[5],
|
||||
cyan: colors[6],
|
||||
white: colors[7],
|
||||
orange: colors[9]
|
||||
}
|
||||
}
|
||||
None => Palette {
|
||||
|
|
@ -100,6 +102,7 @@ pub fn load_palette() -> Palette {
|
|||
magenta: colors::GRAY,
|
||||
cyan: colors::GRAY,
|
||||
white: colors::WHITE,
|
||||
orange: colors::ORANGE
|
||||
},
|
||||
};
|
||||
palette
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ pub mod colors {
|
|||
pub const GRAY: (u8, u8, u8) = (68, 68, 68);
|
||||
pub const BRIGHT_GRAY: (u8, u8, u8) = (138, 138, 138);
|
||||
pub const RED: (u8, u8, u8) = (135, 0, 0);
|
||||
pub const ORANGE: (u8, u8, u8) = (215,95,0);
|
||||
pub const BLACK: (u8, u8, u8) = (0, 0, 0);
|
||||
}
|
||||
|
||||
|
|
@ -99,6 +100,7 @@ pub struct Palette {
|
|||
pub magenta: (u8, u8, u8),
|
||||
pub cyan: (u8, u8, u8),
|
||||
pub white: (u8, u8, u8),
|
||||
pub orange: (u8, u8, u8)
|
||||
}
|
||||
|
||||
impl Default for Palette {
|
||||
|
|
@ -116,6 +118,7 @@ impl Default for Palette {
|
|||
magenta: colors::GRAY,
|
||||
cyan: colors::GRAY,
|
||||
white: colors::WHITE,
|
||||
orange: colors::ORANGE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue