fix: don't have new on ColoredElements anymore, removed default for palette in zellij-tile
This commit is contained in:
parent
452940fb65
commit
d48cc81536
4 changed files with 62 additions and 138 deletions
|
|
@ -34,7 +34,7 @@ impl Display for LinePart {
|
|||
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct ColoredElements {
|
||||
// slected mode
|
||||
// selected mode
|
||||
pub selected_prefix_separator: Style,
|
||||
pub selected_char_left_separator: Style,
|
||||
pub selected_char_shortcut: Style,
|
||||
|
|
@ -65,117 +65,62 @@ pub struct ColoredElements {
|
|||
pub superkey_suffix_separator: Style,
|
||||
}
|
||||
|
||||
impl ColoredElements {
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn new(
|
||||
selected_prefix_separator: Style,
|
||||
selected_char_left_separator: Style,
|
||||
selected_char_shortcut: Style,
|
||||
selected_char_right_separator: Style,
|
||||
selected_styled_text: Style,
|
||||
selected_suffix_separator: Style,
|
||||
unselected_prefix_separator: Style,
|
||||
unselected_char_left_separator: Style,
|
||||
unselected_char_shortcut: Style,
|
||||
unselected_char_right_separator: Style,
|
||||
unselected_styled_text: Style,
|
||||
unselected_suffix_separator: Style,
|
||||
disabled_prefix_separator: Style,
|
||||
disabled_styled_text: Style,
|
||||
disabled_suffix_separator: Style,
|
||||
selected_single_letter_prefix_separator: Style,
|
||||
selected_single_letter_char_shortcut: Style,
|
||||
selected_single_letter_suffix_separator: Style,
|
||||
unselected_single_letter_prefix_separator: Style,
|
||||
unselected_single_letter_char_shortcut: Style,
|
||||
unselected_single_letter_suffix_separator: Style,
|
||||
superkey_prefix: Style,
|
||||
superkey_suffix_separator: Style,
|
||||
) -> Self {
|
||||
Self {
|
||||
selected_prefix_separator,
|
||||
selected_char_left_separator,
|
||||
selected_char_shortcut,
|
||||
selected_char_right_separator,
|
||||
selected_styled_text,
|
||||
selected_suffix_separator,
|
||||
unselected_prefix_separator,
|
||||
unselected_char_left_separator,
|
||||
unselected_char_shortcut,
|
||||
unselected_char_right_separator,
|
||||
unselected_styled_text,
|
||||
unselected_suffix_separator,
|
||||
disabled_prefix_separator,
|
||||
disabled_styled_text,
|
||||
disabled_suffix_separator,
|
||||
selected_single_letter_prefix_separator,
|
||||
selected_single_letter_char_shortcut,
|
||||
selected_single_letter_suffix_separator,
|
||||
unselected_single_letter_prefix_separator,
|
||||
unselected_single_letter_char_shortcut,
|
||||
unselected_single_letter_suffix_separator,
|
||||
superkey_prefix,
|
||||
superkey_suffix_separator,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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!(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.bg, palette.fg),
|
||||
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!(palette.bg, palette.bg),
|
||||
),
|
||||
PaletteSource::Xresources => ColoredElements::new(
|
||||
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.bg, palette.fg),
|
||||
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),
|
||||
),
|
||||
PaletteSource::Default => ColoredElements {
|
||||
selected_prefix_separator: style!(palette.bg, palette.green),
|
||||
selected_char_left_separator: style!(palette.black, 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.bg).bold(),
|
||||
unselected_prefix_separator: style!(palette.bg, palette.fg),
|
||||
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
|
||||
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
|
||||
unselected_styled_text: style!(palette.black, palette.fg).bold(),
|
||||
unselected_suffix_separator: style!(palette.fg, palette.bg),
|
||||
disabled_prefix_separator: style!(palette.bg, palette.fg),
|
||||
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
|
||||
disabled_suffix_separator: style!(palette.fg, palette.bg),
|
||||
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.bg),
|
||||
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
|
||||
superkey_prefix: style!(palette.white, palette.bg).bold(),
|
||||
superkey_suffix_separator: style!(palette.bg, palette.bg),
|
||||
},
|
||||
PaletteSource::Xresources => ColoredElements {
|
||||
selected_prefix_separator: style!(palette.bg, 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.bg, palette.green).bold(),
|
||||
selected_suffix_separator: style!(palette.green, palette.bg).bold(),
|
||||
unselected_prefix_separator: style!(palette.bg, palette.fg),
|
||||
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
|
||||
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
|
||||
unselected_styled_text: style!(palette.bg, palette.fg).bold(),
|
||||
unselected_suffix_separator: style!(palette.fg, palette.bg),
|
||||
disabled_prefix_separator: style!(palette.bg, palette.fg),
|
||||
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
|
||||
disabled_suffix_separator: style!(palette.fg, palette.bg),
|
||||
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.bg),
|
||||
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
|
||||
superkey_prefix: style!(palette.bg, palette.fg).bold(),
|
||||
superkey_suffix_separator: style!(palette.fg, palette.bg),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::{LinePart, ARROW_SEPARATOR};
|
||||
use ansi_term::{ANSIStrings, Color::RGB, Style};
|
||||
use ansi_term::ANSIStrings;
|
||||
use zellij_tile::prelude::*;
|
||||
|
||||
pub fn active_tab(text: String, palette: Palette) -> LinePart {
|
||||
|
|
|
|||
|
|
@ -259,7 +259,6 @@ pub fn start(mut os_input: Box<dyn OsApi>, opts: CliArgs, config: Config) {
|
|||
let send_app_instructions = send_app_instructions.clone();
|
||||
let max_panes = opts.max_panes;
|
||||
let colors = os_input.load_palette();
|
||||
// debug_log_to_file(format!("{:?}", colors));
|
||||
move || {
|
||||
let mut screen = Screen::new(
|
||||
receive_screen_instructions,
|
||||
|
|
|
|||
|
|
@ -72,23 +72,23 @@ pub enum Theme {
|
|||
Light,
|
||||
Dark,
|
||||
}
|
||||
impl Default for Theme {
|
||||
fn default() -> Theme {
|
||||
Theme::Dark
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
||||
pub enum PaletteSource {
|
||||
Default,
|
||||
Xresources,
|
||||
}
|
||||
pub mod colors {
|
||||
pub const WHITE: (u8, u8, u8) = (238, 238, 238);
|
||||
pub const GREEN: (u8, u8, u8) = (175, 255, 0);
|
||||
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);
|
||||
impl Default for PaletteSource {
|
||||
fn default() -> PaletteSource {
|
||||
PaletteSource::Default
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Default)]
|
||||
pub struct Palette {
|
||||
pub source: PaletteSource,
|
||||
pub theme: Theme,
|
||||
|
|
@ -105,26 +105,6 @@ pub struct Palette {
|
|||
pub orange: (u8, u8, u8),
|
||||
}
|
||||
|
||||
impl Default for Palette {
|
||||
fn default() -> Palette {
|
||||
Palette {
|
||||
source: PaletteSource::Default,
|
||||
theme: Theme::Dark,
|
||||
fg: colors::BRIGHT_GRAY,
|
||||
bg: colors::BLACK,
|
||||
black: colors::BLACK,
|
||||
red: colors::RED,
|
||||
green: colors::GREEN,
|
||||
yellow: colors::GRAY,
|
||||
blue: colors::GRAY,
|
||||
magenta: colors::GRAY,
|
||||
cyan: colors::GRAY,
|
||||
white: colors::WHITE,
|
||||
orange: colors::ORANGE,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Represents the contents of the help message that is printed in the status bar,
|
||||
/// which indicates the current [`InputMode`] and what the keybinds for that mode
|
||||
/// are. Related to the default `status-bar` plugin.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue