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)]
|
#[derive(Clone, Copy)]
|
||||||
pub struct ColoredElements {
|
pub struct ColoredElements {
|
||||||
// slected mode
|
// selected mode
|
||||||
pub selected_prefix_separator: Style,
|
pub selected_prefix_separator: Style,
|
||||||
pub selected_char_left_separator: Style,
|
pub selected_char_left_separator: Style,
|
||||||
pub selected_char_shortcut: Style,
|
pub selected_char_shortcut: Style,
|
||||||
|
|
@ -65,117 +65,62 @@ pub struct ColoredElements {
|
||||||
pub superkey_suffix_separator: Style,
|
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,
|
// 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
|
// we need different colors from palette for the default theme
|
||||||
// plus here we can add new sources in the future, like Theme
|
// plus here we can add new sources in the future, like Theme
|
||||||
// that can be defined in the config perhaps
|
// that can be defined in the config perhaps
|
||||||
fn color_elements(palette: Palette) -> ColoredElements {
|
fn color_elements(palette: Palette) -> ColoredElements {
|
||||||
match palette.source {
|
match palette.source {
|
||||||
PaletteSource::Default => ColoredElements::new(
|
PaletteSource::Default => ColoredElements {
|
||||||
style!(palette.bg, palette.green),
|
selected_prefix_separator: style!(palette.bg, palette.green),
|
||||||
style!(palette.black, palette.green).bold(),
|
selected_char_left_separator: style!(palette.black, palette.green).bold(),
|
||||||
style!(palette.red, palette.green).bold(),
|
selected_char_shortcut: style!(palette.red, palette.green).bold(),
|
||||||
style!(palette.black, palette.green).bold(),
|
selected_char_right_separator: style!(palette.black, palette.green).bold(),
|
||||||
style!(palette.black, palette.green).bold(),
|
selected_styled_text: style!(palette.black, palette.green).bold(),
|
||||||
style!(palette.green, palette.bg).bold(),
|
selected_suffix_separator: style!(palette.green, palette.bg).bold(),
|
||||||
style!(palette.bg, palette.fg),
|
unselected_prefix_separator: style!(palette.bg, palette.fg),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.red, palette.fg).bold(),
|
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.black, palette.fg).bold(),
|
unselected_styled_text: style!(palette.black, palette.fg).bold(),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.bg, palette.fg),
|
disabled_prefix_separator: style!(palette.bg, palette.fg),
|
||||||
style!(palette.bg, palette.fg).dimmed(),
|
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
|
||||||
style!(palette.fg, palette.bg),
|
disabled_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.fg, palette.green),
|
selected_single_letter_prefix_separator: style!(palette.fg, palette.green),
|
||||||
style!(palette.red, palette.green).bold(),
|
selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(),
|
||||||
style!(palette.green, palette.fg),
|
selected_single_letter_suffix_separator: style!(palette.green, palette.fg),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_single_letter_prefix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.red, palette.fg).bold(),
|
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.white, palette.bg).bold(),
|
superkey_prefix: style!(palette.white, palette.bg).bold(),
|
||||||
style!(palette.bg, palette.bg),
|
superkey_suffix_separator: style!(palette.bg, palette.bg),
|
||||||
),
|
},
|
||||||
PaletteSource::Xresources => ColoredElements::new(
|
PaletteSource::Xresources => ColoredElements {
|
||||||
style!(palette.bg, palette.green),
|
selected_prefix_separator: style!(palette.bg, palette.green),
|
||||||
style!(palette.fg, palette.green).bold(),
|
selected_char_left_separator: style!(palette.fg, palette.green).bold(),
|
||||||
style!(palette.red, palette.green).bold(),
|
selected_char_shortcut: style!(palette.red, palette.green).bold(),
|
||||||
style!(palette.fg, palette.green).bold(),
|
selected_char_right_separator: style!(palette.fg, palette.green).bold(),
|
||||||
style!(palette.bg, palette.green).bold(),
|
selected_styled_text: style!(palette.bg, palette.green).bold(),
|
||||||
style!(palette.green, palette.bg).bold(),
|
selected_suffix_separator: style!(palette.green, palette.bg).bold(),
|
||||||
style!(palette.bg, palette.fg),
|
unselected_prefix_separator: style!(palette.bg, palette.fg),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.red, palette.fg).bold(),
|
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
unselected_styled_text: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.bg, palette.fg),
|
disabled_prefix_separator: style!(palette.bg, palette.fg),
|
||||||
style!(palette.bg, palette.fg).dimmed(),
|
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
|
||||||
style!(palette.fg, palette.bg),
|
disabled_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.fg, palette.green),
|
selected_single_letter_prefix_separator: style!(palette.fg, palette.green),
|
||||||
style!(palette.red, palette.green).bold(),
|
selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(),
|
||||||
style!(palette.green, palette.fg),
|
selected_single_letter_suffix_separator: style!(palette.green, palette.fg),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_single_letter_prefix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.red, palette.fg).bold(),
|
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
|
||||||
style!(palette.fg, palette.bg),
|
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
style!(palette.bg, palette.fg).bold(),
|
superkey_prefix: style!(palette.bg, palette.fg).bold(),
|
||||||
style!(palette.fg, palette.bg),
|
superkey_suffix_separator: style!(palette.fg, palette.bg),
|
||||||
),
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::{LinePart, ARROW_SEPARATOR};
|
use crate::{LinePart, ARROW_SEPARATOR};
|
||||||
use ansi_term::{ANSIStrings, Color::RGB, Style};
|
use ansi_term::ANSIStrings;
|
||||||
use zellij_tile::prelude::*;
|
use zellij_tile::prelude::*;
|
||||||
|
|
||||||
pub fn active_tab(text: String, palette: Palette) -> LinePart {
|
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 send_app_instructions = send_app_instructions.clone();
|
||||||
let max_panes = opts.max_panes;
|
let max_panes = opts.max_panes;
|
||||||
let colors = os_input.load_palette();
|
let colors = os_input.load_palette();
|
||||||
// debug_log_to_file(format!("{:?}", colors));
|
|
||||||
move || {
|
move || {
|
||||||
let mut screen = Screen::new(
|
let mut screen = Screen::new(
|
||||||
receive_screen_instructions,
|
receive_screen_instructions,
|
||||||
|
|
|
||||||
|
|
@ -72,23 +72,23 @@ pub enum Theme {
|
||||||
Light,
|
Light,
|
||||||
Dark,
|
Dark,
|
||||||
}
|
}
|
||||||
|
impl Default for Theme {
|
||||||
|
fn default() -> Theme {
|
||||||
|
Theme::Dark
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
||||||
pub enum PaletteSource {
|
pub enum PaletteSource {
|
||||||
Default,
|
Default,
|
||||||
Xresources,
|
Xresources,
|
||||||
}
|
}
|
||||||
pub mod colors {
|
impl Default for PaletteSource {
|
||||||
pub const WHITE: (u8, u8, u8) = (238, 238, 238);
|
fn default() -> PaletteSource {
|
||||||
pub const GREEN: (u8, u8, u8) = (175, 255, 0);
|
PaletteSource::Default
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Default)]
|
||||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
|
||||||
pub struct Palette {
|
pub struct Palette {
|
||||||
pub source: PaletteSource,
|
pub source: PaletteSource,
|
||||||
pub theme: Theme,
|
pub theme: Theme,
|
||||||
|
|
@ -105,26 +105,6 @@ pub struct Palette {
|
||||||
pub orange: (u8, u8, u8),
|
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,
|
/// 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
|
/// which indicates the current [`InputMode`] and what the keybinds for that mode
|
||||||
/// are. Related to the default `status-bar` plugin.
|
/// are. Related to the default `status-bar` plugin.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue