refactors

This commit is contained in:
LordMZTE 2022-03-22 22:45:15 +01:00
parent 895976367f
commit aa995f1d7d
Signed by: LordMZTE
GPG key ID: B64802DC33A64FF6
3 changed files with 75 additions and 62 deletions

View file

@ -6,8 +6,8 @@ use crate::{powerline::Powerline, util::to_owo};
mod powerline;
mod util;
// There's really no good palette color to use for this in zellij. I'll add this is a custom plugin
// option once that's possible.
// There's really no good palette color to use for this in zellij. I'll add this
// as a custom plugin option once that's possible.
const ALT_BG: PaletteColor = PaletteColor::Rgb((68, 71, 90));
register_plugin!(State);
@ -35,72 +35,79 @@ impl ZellijPlugin for State {
match self.mode.mode {
InputMode::Locked => {
powerline.segment(Segment::palette_colors("<C-g>  ", pal.red, pal.black))
powerline.segment(Segment::from_palette("<C-g>  ", pal.red, pal.black))
},
InputMode::Normal => powerline
.segment(Segment::palette_colors("Normal", pal.black, pal.yellow))
.segment(Segment::palette_colors("<C-g> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-p> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-t> | ﴵ ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-n> | ﭕ ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-h> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-s> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-o> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<C-q> |  ", pal.blue, ALT_BG))
.segment(Segment::palette_colors("<M- >", pal.green, ALT_BG))
.segment(Segment::palette_colors("<M-n> |  ", pal.green, ALT_BG))
.segment(Segment::palette_colors("<M-+/-> | ﭔ ", pal.green, ALT_BG)),
InputMode::Normal => powerline.segments([
Segment::from_palette("Normal", pal.black, pal.yellow),
Segment::from_palette("<C-g> |  ", pal.blue, ALT_BG),
Segment::from_palette("<C-p> |  ", pal.blue, ALT_BG),
Segment::from_palette("<C-t> | ﴵ ", pal.blue, ALT_BG),
Segment::from_palette("<C-n> | ﭕ ", pal.blue, ALT_BG),
Segment::from_palette("<C-h> |  ", pal.blue, ALT_BG),
Segment::from_palette("<C-s> |  ", pal.blue, ALT_BG),
Segment::from_palette("<C-o> |  ", pal.blue, ALT_BG),
Segment::from_palette("<C-q> |  ", pal.blue, ALT_BG),
Segment::from_palette("<M- >", pal.green, ALT_BG),
Segment::from_palette("<M-n> |  ", pal.green, ALT_BG),
Segment::from_palette("<M-+/-> | ﭔ ", pal.green, ALT_BG),
]),
InputMode::Pane => powerline
.segment(Segment::palette_colors("Pane", pal.black, pal.blue))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("p | 怜", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("n |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("d |   ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("r |   ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("x |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("f |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("z |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("c | 凜 ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("w |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("e |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Pane => powerline.segments([
Segment::from_palette("Pane", pal.black, pal.blue),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("p | 怜", pal.magenta, ALT_BG),
Segment::from_palette("n |  ", pal.magenta, ALT_BG),
Segment::from_palette("d |   ", pal.magenta, ALT_BG),
Segment::from_palette("r |   ", pal.magenta, ALT_BG),
Segment::from_palette("x |  ", pal.magenta, ALT_BG),
Segment::from_palette("f |  ", pal.magenta, ALT_BG),
Segment::from_palette("z |  ", pal.magenta, ALT_BG),
Segment::from_palette("c | 凜 ", pal.magenta, ALT_BG),
Segment::from_palette("w |  ", pal.magenta, ALT_BG),
Segment::from_palette("e |  ", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
InputMode::Tab => powerline
.segment(Segment::palette_colors("Tab", pal.black, pal.cyan))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("n |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("x |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("r | 凜 ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("s | מּ ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Tab => powerline.segments([
Segment::from_palette("Tab", pal.black, pal.cyan),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("n |  ", pal.magenta, ALT_BG),
Segment::from_palette("x |  ", pal.magenta, ALT_BG),
Segment::from_palette("r | 凜 ", pal.magenta, ALT_BG),
Segment::from_palette("s | מּ ", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
InputMode::Resize => powerline
.segment(Segment::palette_colors("Resize", pal.black, pal.red))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("+-", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Resize => powerline.segments([
Segment::from_palette("Resize", pal.black, pal.red),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("+-", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
InputMode::Move => powerline
.segment(Segment::palette_colors("Move", pal.black, pal.gray))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("⇋/n | ⇋", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Move => powerline.segments([
Segment::from_palette("Move", pal.black, pal.gray),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette("⇋/n | ⇋", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
InputMode::Scroll => powerline
.segment(Segment::palette_colors("Scroll", pal.black, pal.green))
.segment(Segment::palette_colors("", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors("u/d | ﯕ ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Scroll => powerline.segments([
Segment::from_palette("Scroll", pal.black, pal.green),
Segment::from_palette("", pal.magenta, ALT_BG),
Segment::from_palette(" ", pal.magenta, ALT_BG),
Segment::from_palette("u/d | ﯕ ", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
InputMode::Session => powerline
.segment(Segment::palette_colors("Session", pal.black, pal.red))
.segment(Segment::palette_colors("d |  ", pal.magenta, ALT_BG))
.segment(Segment::palette_colors(" |  ", pal.magenta, ALT_BG)),
InputMode::Session => powerline.segments([
Segment::from_palette("Session", pal.black, pal.red),
Segment::from_palette("d |  ", pal.magenta, ALT_BG),
Segment::from_palette(" |  ", pal.magenta, ALT_BG),
]),
_ => &mut powerline,
};

View file

@ -28,6 +28,13 @@ impl Powerline {
self
}
pub fn segments(&mut self, segs: impl IntoIterator<Item = Segment>) -> &mut Self {
for seg in segs {
self.segment(seg);
}
self
}
pub fn render(&self, max_width: usize) -> String {
let mut buf = String::new();
let mut max_segs = 0;
@ -90,7 +97,7 @@ pub struct Segment {
}
impl Segment {
pub fn palette_colors(txt: impl ToString, fg: PaletteColor, bg: PaletteColor) -> Self {
pub fn from_palette(txt: impl ToString, fg: PaletteColor, bg: PaletteColor) -> Self {
Self {
txt: txt.to_string(),
fg: to_owo(fg),

View file

@ -7,4 +7,3 @@ pub fn to_owo(color: PaletteColor) -> DynColors {
PaletteColor::EightBit(n) => DynColors::Xterm(n.into()),
}
}