2020-10-02 21:50:50 +03:00
|
|
|
use crate::*;
|
2022-05-14 18:00:03 +03:00
|
|
|
use luahelper::impl_lua_conversion_dynamic;
|
|
|
|
use std::convert::TryFrom;
|
2022-02-06 01:13:19 +03:00
|
|
|
use std::str::FromStr;
|
2019-11-24 18:55:13 +03:00
|
|
|
use termwiz::cell::CellAttributes;
|
2022-02-06 01:13:19 +03:00
|
|
|
pub use termwiz::color::{ColorSpec, RgbColor, SrgbaTuple};
|
2022-05-18 19:31:10 +03:00
|
|
|
use wezterm_dynamic::{FromDynamic, ToDynamic};
|
2019-11-24 18:44:17 +03:00
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Copy, Clone, FromDynamic, ToDynamic)]
|
wezterm: revise opacity configuration
This commit revises the opacity configuration to make it more
consistently applied.
* `window_background_opacity` controls the overall window capacity,
whether a background image is present or not.
* When a background image is present, or if the window is transparent,
then text whose background color is the default background is
changed to have a fully transparent background.
* `text_background_opacity` controls the alpha channel value for
text whose background color is NOT the default background.
It defaults to 1.0 (fully opaque), but can be set to be
transparent by setting it to a number between 0.0 and 1.0.
* The inactive pane hue, saturation, brightness multipliers
have been factored out into their own struct which changes
that set of options to:
```lua
return {
inactive_pane_hsb = {
hue = 1.0,
saturation = 1.0,
brightness = 1.0,
},
}
```
* `window_background_image_hsb` is a new option that can apply
a hue, saturation, brightness transformation to a background
image. This is primarily useful to make a background image
darker:
```lua
return {
window_background_image = "/some/pic.png",
window_background_image_hsb = {
brightness = 0.3,
},
}
```
refs: #302
refs: #297
2020-10-24 09:16:00 +03:00
|
|
|
pub struct HsbTransform {
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_one_point_oh")]
|
wezterm: revise opacity configuration
This commit revises the opacity configuration to make it more
consistently applied.
* `window_background_opacity` controls the overall window capacity,
whether a background image is present or not.
* When a background image is present, or if the window is transparent,
then text whose background color is the default background is
changed to have a fully transparent background.
* `text_background_opacity` controls the alpha channel value for
text whose background color is NOT the default background.
It defaults to 1.0 (fully opaque), but can be set to be
transparent by setting it to a number between 0.0 and 1.0.
* The inactive pane hue, saturation, brightness multipliers
have been factored out into their own struct which changes
that set of options to:
```lua
return {
inactive_pane_hsb = {
hue = 1.0,
saturation = 1.0,
brightness = 1.0,
},
}
```
* `window_background_image_hsb` is a new option that can apply
a hue, saturation, brightness transformation to a background
image. This is primarily useful to make a background image
darker:
```lua
return {
window_background_image = "/some/pic.png",
window_background_image_hsb = {
brightness = 0.3,
},
}
```
refs: #302
refs: #297
2020-10-24 09:16:00 +03:00
|
|
|
pub hue: f32,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_one_point_oh")]
|
wezterm: revise opacity configuration
This commit revises the opacity configuration to make it more
consistently applied.
* `window_background_opacity` controls the overall window capacity,
whether a background image is present or not.
* When a background image is present, or if the window is transparent,
then text whose background color is the default background is
changed to have a fully transparent background.
* `text_background_opacity` controls the alpha channel value for
text whose background color is NOT the default background.
It defaults to 1.0 (fully opaque), but can be set to be
transparent by setting it to a number between 0.0 and 1.0.
* The inactive pane hue, saturation, brightness multipliers
have been factored out into their own struct which changes
that set of options to:
```lua
return {
inactive_pane_hsb = {
hue = 1.0,
saturation = 1.0,
brightness = 1.0,
},
}
```
* `window_background_image_hsb` is a new option that can apply
a hue, saturation, brightness transformation to a background
image. This is primarily useful to make a background image
darker:
```lua
return {
window_background_image = "/some/pic.png",
window_background_image_hsb = {
brightness = 0.3,
},
}
```
refs: #302
refs: #297
2020-10-24 09:16:00 +03:00
|
|
|
pub saturation: f32,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_one_point_oh")]
|
wezterm: revise opacity configuration
This commit revises the opacity configuration to make it more
consistently applied.
* `window_background_opacity` controls the overall window capacity,
whether a background image is present or not.
* When a background image is present, or if the window is transparent,
then text whose background color is the default background is
changed to have a fully transparent background.
* `text_background_opacity` controls the alpha channel value for
text whose background color is NOT the default background.
It defaults to 1.0 (fully opaque), but can be set to be
transparent by setting it to a number between 0.0 and 1.0.
* The inactive pane hue, saturation, brightness multipliers
have been factored out into their own struct which changes
that set of options to:
```lua
return {
inactive_pane_hsb = {
hue = 1.0,
saturation = 1.0,
brightness = 1.0,
},
}
```
* `window_background_image_hsb` is a new option that can apply
a hue, saturation, brightness transformation to a background
image. This is primarily useful to make a background image
darker:
```lua
return {
window_background_image = "/some/pic.png",
window_background_image_hsb = {
brightness = 0.3,
},
}
```
refs: #302
refs: #297
2020-10-24 09:16:00 +03:00
|
|
|
pub brightness: f32,
|
|
|
|
}
|
|
|
|
|
2021-02-19 19:28:19 +03:00
|
|
|
impl Default for HsbTransform {
|
|
|
|
fn default() -> Self {
|
|
|
|
Self {
|
|
|
|
hue: 1.,
|
|
|
|
saturation: 1.,
|
|
|
|
brightness: 1.,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, FromDynamic, ToDynamic)]
|
|
|
|
#[dynamic(try_from = "String", into = "String")]
|
2022-02-06 01:13:19 +03:00
|
|
|
pub struct RgbaColor {
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(flatten)]
|
2022-02-06 01:13:19 +03:00
|
|
|
color: SrgbaTuple,
|
|
|
|
}
|
|
|
|
|
2022-04-08 17:08:33 +03:00
|
|
|
impl From<RgbColor> for RgbaColor {
|
|
|
|
fn from(color: RgbColor) -> Self {
|
|
|
|
Self {
|
|
|
|
color: color.into(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-26 09:25:09 +03:00
|
|
|
impl From<SrgbaTuple> for RgbaColor {
|
|
|
|
fn from(color: SrgbaTuple) -> Self {
|
|
|
|
Self { color }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-04-08 17:08:33 +03:00
|
|
|
impl std::ops::Deref for RgbaColor {
|
|
|
|
type Target = SrgbaTuple;
|
|
|
|
fn deref(&self) -> &SrgbaTuple {
|
|
|
|
&self.color
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
impl Into<String> for &RgbaColor {
|
|
|
|
fn into(self) -> String {
|
|
|
|
self.color.to_rgb_string()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-06 01:13:19 +03:00
|
|
|
impl Into<String> for RgbaColor {
|
|
|
|
fn into(self) -> String {
|
|
|
|
self.color.to_rgb_string()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Into<SrgbaTuple> for RgbaColor {
|
|
|
|
fn into(self) -> SrgbaTuple {
|
|
|
|
self.color
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-18 19:31:10 +03:00
|
|
|
impl TryFrom<String> for RgbaColor {
|
2022-02-06 01:13:19 +03:00
|
|
|
type Error = anyhow::Error;
|
|
|
|
fn try_from(s: String) -> anyhow::Result<RgbaColor> {
|
|
|
|
Ok(RgbaColor {
|
|
|
|
color: SrgbaTuple::from_str(&s)
|
|
|
|
.map_err(|_| anyhow::anyhow!("failed to parse {} as RgbaColor", &s))?,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Default, Debug, Clone, FromDynamic, ToDynamic)]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub struct Palette {
|
|
|
|
/// The text color to use when the attributes are reset to default
|
2022-04-08 17:08:33 +03:00
|
|
|
pub foreground: Option<RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// The background color to use when the attributes are reset to default
|
2022-04-08 17:08:33 +03:00
|
|
|
pub background: Option<RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// The color of the cursor
|
2022-04-08 17:08:33 +03:00
|
|
|
pub cursor_fg: Option<RgbaColor>,
|
|
|
|
pub cursor_bg: Option<RgbaColor>,
|
|
|
|
pub cursor_border: Option<RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// The color of selected text
|
2022-02-06 01:13:19 +03:00
|
|
|
pub selection_fg: Option<RgbaColor>,
|
|
|
|
pub selection_bg: Option<RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// A list of 8 colors corresponding to the basic ANSI palette
|
2022-04-08 17:08:33 +03:00
|
|
|
pub ansi: Option<[RgbaColor; 8]>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// A list of 8 colors corresponding to bright versions of the
|
|
|
|
/// ANSI palette
|
2022-04-08 17:08:33 +03:00
|
|
|
pub brights: Option<[RgbaColor; 8]>,
|
2021-08-21 14:46:52 +03:00
|
|
|
/// A map for setting arbitrary colors ranging from 16 to 256 in the color
|
|
|
|
/// palette
|
2022-05-18 19:31:10 +03:00
|
|
|
#[dynamic(default)]
|
2022-04-08 17:08:33 +03:00
|
|
|
pub indexed: HashMap<u8, RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// Configure the colors and styling of the tab bar
|
|
|
|
pub tab_bar: Option<TabBarColors>,
|
2019-12-23 05:57:54 +03:00
|
|
|
/// The color of the "thumb" of the scrollbar; the segment that
|
|
|
|
/// represents the current viewable area
|
2022-04-08 17:08:33 +03:00
|
|
|
pub scrollbar_thumb: Option<RgbaColor>,
|
2020-10-20 08:03:21 +03:00
|
|
|
/// The color of the split line between panes
|
2022-04-08 17:08:33 +03:00
|
|
|
pub split: Option<RgbaColor>,
|
2021-09-25 22:40:22 +03:00
|
|
|
/// The color of the visual bell. If unspecified, the foreground
|
|
|
|
/// color is used instead.
|
2022-04-08 17:08:33 +03:00
|
|
|
pub visual_bell: Option<RgbaColor>,
|
2022-01-03 03:49:32 +03:00
|
|
|
/// The color to use for the cursor when a dead key or leader state is active
|
2022-04-08 17:08:33 +03:00
|
|
|
pub compose_cursor: Option<RgbaColor>,
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
2022-05-14 18:00:03 +03:00
|
|
|
impl_lua_conversion_dynamic!(Palette);
|
2019-11-24 18:44:17 +03:00
|
|
|
|
2020-06-13 19:04:13 +03:00
|
|
|
impl From<Palette> for wezterm_term::color::ColorPalette {
|
|
|
|
fn from(cfg: Palette) -> wezterm_term::color::ColorPalette {
|
|
|
|
let mut p = wezterm_term::color::ColorPalette::default();
|
2019-11-24 18:44:17 +03:00
|
|
|
macro_rules! apply_color {
|
|
|
|
($name:ident) => {
|
|
|
|
if let Some($name) = cfg.$name {
|
2022-02-06 01:13:19 +03:00
|
|
|
p.$name = $name.into();
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
apply_color!(foreground);
|
|
|
|
apply_color!(background);
|
|
|
|
apply_color!(cursor_fg);
|
|
|
|
apply_color!(cursor_bg);
|
2019-12-22 23:58:07 +03:00
|
|
|
apply_color!(cursor_border);
|
2019-11-24 18:44:17 +03:00
|
|
|
apply_color!(selection_fg);
|
|
|
|
apply_color!(selection_bg);
|
2019-12-23 05:57:54 +03:00
|
|
|
apply_color!(scrollbar_thumb);
|
2020-10-20 08:03:21 +03:00
|
|
|
apply_color!(split);
|
2019-11-24 18:44:17 +03:00
|
|
|
|
|
|
|
if let Some(ansi) = cfg.ansi {
|
|
|
|
for (idx, col) in ansi.iter().enumerate() {
|
2022-04-08 17:08:33 +03:00
|
|
|
p.colors.0[idx] = (*col).into();
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
if let Some(brights) = cfg.brights {
|
|
|
|
for (idx, col) in brights.iter().enumerate() {
|
2022-04-08 17:08:33 +03:00
|
|
|
p.colors.0[idx + 8] = (*col).into();
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
|
|
|
}
|
2021-08-22 11:10:38 +03:00
|
|
|
for (&idx, &col) in &cfg.indexed {
|
2022-05-18 19:31:10 +03:00
|
|
|
if idx < 16 {
|
|
|
|
log::warn!(
|
|
|
|
"Ignoring invalid colors.indexed index {}; \
|
|
|
|
use `ansi` or `brights` to specify lower indices",
|
|
|
|
idx
|
|
|
|
);
|
|
|
|
continue;
|
|
|
|
}
|
2022-04-08 17:08:33 +03:00
|
|
|
p.colors.0[idx as usize] = col.into();
|
2021-08-21 14:46:52 +03:00
|
|
|
}
|
2019-11-24 18:44:17 +03:00
|
|
|
p
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Specify the text styling for a tab in the tab bar
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Clone, Default, FromDynamic, ToDynamic)]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub struct TabBarColor {
|
|
|
|
/// Specifies the intensity attribute for the tab title text
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2020-06-13 19:04:13 +03:00
|
|
|
pub intensity: wezterm_term::Intensity,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// Specifies the underline attribute for the tab title text
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2020-06-13 19:04:13 +03:00
|
|
|
pub underline: wezterm_term::Underline,
|
2019-11-24 18:44:17 +03:00
|
|
|
/// Specifies the italic attribute for the tab title text
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub italic: bool,
|
|
|
|
/// Specifies the strikethrough attribute for the tab title text
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub strikethrough: bool,
|
|
|
|
/// The background color for the tab
|
|
|
|
pub bg_color: RgbColor,
|
|
|
|
/// The forgeground/text color for the tab
|
|
|
|
pub fg_color: RgbColor,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl TabBarColor {
|
|
|
|
pub fn as_cell_attributes(&self) -> CellAttributes {
|
|
|
|
let mut attr = CellAttributes::default();
|
|
|
|
attr.set_intensity(self.intensity)
|
|
|
|
.set_underline(self.underline)
|
|
|
|
.set_italic(self.italic)
|
|
|
|
.set_strikethrough(self.strikethrough)
|
|
|
|
.set_background(ColorSpec::TrueColor(self.bg_color))
|
|
|
|
.set_foreground(ColorSpec::TrueColor(self.fg_color));
|
|
|
|
attr
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Specifies the colors to use for the tab bar portion of the UI.
|
|
|
|
/// These are not part of the terminal model and cannot be updated
|
|
|
|
/// in the same way that the dynamic color schemes are.
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Clone, FromDynamic, ToDynamic)]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub struct TabBarColors {
|
|
|
|
/// The background color for the tab bar
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_background")]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub background: RgbColor,
|
|
|
|
|
|
|
|
/// Styling for the active tab
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_active_tab")]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub active_tab: TabBarColor,
|
2020-02-09 20:34:59 +03:00
|
|
|
|
2019-11-24 18:44:17 +03:00
|
|
|
/// Styling for other inactive tabs
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab")]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub inactive_tab: TabBarColor,
|
2020-02-09 20:34:59 +03:00
|
|
|
|
2019-11-24 18:44:17 +03:00
|
|
|
/// Styling for an inactive tab with a mouse hovering
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab_hover")]
|
2019-11-24 18:44:17 +03:00
|
|
|
pub inactive_tab_hover: TabBarColor,
|
2021-07-17 18:31:11 +03:00
|
|
|
|
|
|
|
/// Styling for the new tab button
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab")]
|
2021-07-17 18:31:11 +03:00
|
|
|
pub new_tab: TabBarColor,
|
|
|
|
|
|
|
|
/// Styling for the new tab button with a mouse hovering
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab_hover")]
|
2021-07-17 18:31:11 +03:00
|
|
|
pub new_tab_hover: TabBarColor,
|
2021-12-25 02:23:01 +03:00
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab_edge")]
|
2022-04-08 17:08:33 +03:00
|
|
|
pub inactive_tab_edge: RgbaColor,
|
2021-12-25 02:23:01 +03:00
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_tab_edge_hover")]
|
2022-04-08 17:08:33 +03:00
|
|
|
pub inactive_tab_edge_hover: RgbaColor,
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
|
|
|
|
2020-02-09 20:34:59 +03:00
|
|
|
fn default_background() -> RgbColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
RgbColor::new_8bpc(0x33, 0x33, 0x33)
|
|
|
|
}
|
|
|
|
|
2022-04-08 17:08:33 +03:00
|
|
|
fn default_inactive_tab_edge() -> RgbaColor {
|
|
|
|
RgbColor::new_8bpc(0x57, 0x57, 0x57).into()
|
2021-12-25 02:23:01 +03:00
|
|
|
}
|
|
|
|
|
2022-04-08 17:08:33 +03:00
|
|
|
fn default_inactive_tab_edge_hover() -> RgbaColor {
|
|
|
|
RgbColor::new_8bpc(0x36, 0x36, 0x36).into()
|
2020-02-09 20:34:59 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_inactive_tab() -> TabBarColor {
|
|
|
|
TabBarColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
bg_color: RgbColor::new_8bpc(0x33, 0x33, 0x33),
|
2021-07-11 00:16:57 +03:00
|
|
|
fg_color: RgbColor::new_8bpc(0x80, 0x80, 0x80),
|
2020-02-09 20:34:59 +03:00
|
|
|
..TabBarColor::default()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fn default_inactive_tab_hover() -> TabBarColor {
|
|
|
|
TabBarColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
bg_color: RgbColor::new_8bpc(0x1f, 0x1f, 0x1f),
|
2021-07-11 00:16:57 +03:00
|
|
|
fg_color: RgbColor::new_8bpc(0x90, 0x90, 0x90),
|
2020-02-09 20:34:59 +03:00
|
|
|
italic: true,
|
|
|
|
..TabBarColor::default()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fn default_active_tab() -> TabBarColor {
|
|
|
|
TabBarColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
bg_color: RgbColor::new_8bpc(0x00, 0x00, 0x00),
|
2021-07-11 00:16:57 +03:00
|
|
|
fg_color: RgbColor::new_8bpc(0xc0, 0xc0, 0xc0),
|
2020-02-09 20:34:59 +03:00
|
|
|
..TabBarColor::default()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-11-24 18:44:17 +03:00
|
|
|
impl Default for TabBarColors {
|
|
|
|
fn default() -> Self {
|
|
|
|
Self {
|
2020-02-09 20:34:59 +03:00
|
|
|
background: default_background(),
|
|
|
|
inactive_tab: default_inactive_tab(),
|
|
|
|
inactive_tab_hover: default_inactive_tab_hover(),
|
|
|
|
active_tab: default_active_tab(),
|
2021-07-17 18:31:11 +03:00
|
|
|
new_tab: default_inactive_tab(),
|
|
|
|
new_tab_hover: default_inactive_tab_hover(),
|
2021-12-25 02:23:01 +03:00
|
|
|
inactive_tab_edge: default_inactive_tab_edge(),
|
|
|
|
inactive_tab_edge_hover: default_inactive_tab_edge_hover(),
|
2019-11-24 18:44:17 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-01-13 08:40:30 +03:00
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Clone, FromDynamic, ToDynamic)]
|
add config for customizing the tabs and new tab button
```lua
local wezterm = require 'wezterm';
-- The filled in variant of the < symbol
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- The filled in variant of the > symbol
local SOLID_RIGHT_ARROW = utf8.char(0xe0b0)
return {
tab_bar_style = {
active_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_LEFT_ARROW},
}),
active_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_RIGHT_ARROW},
}),
inactive_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_LEFT_ARROW},
}),
inactive_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_RIGHT_ARROW},
}),
}
}
```
2021-03-12 08:21:31 +03:00
|
|
|
pub struct TabBarStyle {
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_new_tab")]
|
2021-07-17 18:31:11 +03:00
|
|
|
pub new_tab: String,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_new_tab")]
|
2021-07-17 18:31:11 +03:00
|
|
|
pub new_tab_hover: String,
|
add config for customizing the tabs and new tab button
```lua
local wezterm = require 'wezterm';
-- The filled in variant of the < symbol
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- The filled in variant of the > symbol
local SOLID_RIGHT_ARROW = utf8.char(0xe0b0)
return {
tab_bar_style = {
active_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_LEFT_ARROW},
}),
active_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_RIGHT_ARROW},
}),
inactive_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_LEFT_ARROW},
}),
inactive_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_RIGHT_ARROW},
}),
}
}
```
2021-03-12 08:21:31 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for TabBarStyle {
|
|
|
|
fn default() -> Self {
|
|
|
|
Self {
|
2021-07-17 18:31:11 +03:00
|
|
|
new_tab: default_new_tab(),
|
|
|
|
new_tab_hover: default_new_tab(),
|
add config for customizing the tabs and new tab button
```lua
local wezterm = require 'wezterm';
-- The filled in variant of the < symbol
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- The filled in variant of the > symbol
local SOLID_RIGHT_ARROW = utf8.char(0xe0b0)
return {
tab_bar_style = {
active_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_LEFT_ARROW},
}),
active_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_RIGHT_ARROW},
}),
inactive_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_LEFT_ARROW},
}),
inactive_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_RIGHT_ARROW},
}),
}
}
```
2021-03-12 08:21:31 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-17 18:31:11 +03:00
|
|
|
fn default_new_tab() -> String {
|
2022-05-19 08:49:53 +03:00
|
|
|
" + ".to_string()
|
add config for customizing the tabs and new tab button
```lua
local wezterm = require 'wezterm';
-- The filled in variant of the < symbol
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- The filled in variant of the > symbol
local SOLID_RIGHT_ARROW = utf8.char(0xe0b0)
return {
tab_bar_style = {
active_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_LEFT_ARROW},
}),
active_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#2b2042"}},
{Text=SOLID_RIGHT_ARROW},
}),
inactive_tab_left = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_LEFT_ARROW},
}),
inactive_tab_right = wezterm.format({
{Background={Color="#0b0022"}},
{Foreground={Color="#1b1032"}},
{Text=SOLID_RIGHT_ARROW},
}),
}
}
```
2021-03-12 08:21:31 +03:00
|
|
|
}
|
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Clone, FromDynamic, ToDynamic)]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub struct WindowFrameConfig {
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_titlebar_bg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub inactive_titlebar_bg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_active_titlebar_bg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub active_titlebar_bg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_titlebar_fg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub inactive_titlebar_fg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_active_titlebar_fg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub active_titlebar_fg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_inactive_titlebar_border_bottom")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub inactive_titlebar_border_bottom: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_active_titlebar_border_bottom")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub active_titlebar_border_bottom: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_button_fg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub button_fg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_button_bg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub button_bg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_button_hover_fg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub button_hover_fg: RgbColor,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default = "default_button_hover_bg")]
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
pub button_hover_bg: RgbColor,
|
2021-06-27 23:04:20 +03:00
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2021-12-25 17:49:46 +03:00
|
|
|
pub font: Option<TextStyle>,
|
2022-05-14 18:00:03 +03:00
|
|
|
#[dynamic(default)]
|
2021-12-25 17:49:46 +03:00
|
|
|
pub font_size: Option<f64>,
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for WindowFrameConfig {
|
|
|
|
fn default() -> Self {
|
|
|
|
Self {
|
|
|
|
inactive_titlebar_bg: default_inactive_titlebar_bg(),
|
|
|
|
active_titlebar_bg: default_active_titlebar_bg(),
|
|
|
|
inactive_titlebar_fg: default_inactive_titlebar_fg(),
|
|
|
|
active_titlebar_fg: default_active_titlebar_fg(),
|
|
|
|
inactive_titlebar_border_bottom: default_inactive_titlebar_border_bottom(),
|
|
|
|
active_titlebar_border_bottom: default_active_titlebar_border_bottom(),
|
|
|
|
button_fg: default_button_fg(),
|
|
|
|
button_bg: default_button_bg(),
|
|
|
|
button_hover_fg: default_button_hover_fg(),
|
|
|
|
button_hover_bg: default_button_hover_bg(),
|
2021-12-25 17:49:46 +03:00
|
|
|
font: None,
|
|
|
|
font_size: None,
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn default_inactive_titlebar_bg() -> RgbColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
RgbColor::new_8bpc(0x33, 0x33, 0x33)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_active_titlebar_bg() -> RgbColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
RgbColor::new_8bpc(0x33, 0x33, 0x33)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_inactive_titlebar_fg() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0xcc, 0xcc, 0xcc)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_active_titlebar_fg() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0xff, 0xff, 0xff)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_inactive_titlebar_border_bottom() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0x2b, 0x20, 0x42)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_active_titlebar_border_bottom() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0x2b, 0x20, 0x42)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_button_hover_fg() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0xff, 0xff, 0xff)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_button_fg() -> RgbColor {
|
2021-07-11 00:16:57 +03:00
|
|
|
RgbColor::new_8bpc(0xcc, 0xcc, 0xcc)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_button_hover_bg() -> RgbColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
RgbColor::new_8bpc(0x1f, 0x1f, 0x1f)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn default_button_bg() -> RgbColor {
|
2021-12-25 02:23:01 +03:00
|
|
|
RgbColor::new_8bpc(0x33, 0x33, 0x33)
|
wayland: move frame color config to the config file
This simplifies it a bit and exposes the config via the config file;
the following options are possible, each one specifies a color
```lua
return {
window_frame = {
inactive_titlebar_bg = "",
active_titlebar_bg = "",
inactive_titlebar_fg = "",
active_titlebar_fg = "",
inactive_titlebar_border_bottom = "",
active_titlebar_border_bottom = "",
button_fg = "",
button_bg = "",
button_hover_fg = "",
button_hover_bg = "",
}
}
```
refs: https://github.com/wez/wezterm/issues/761
2021-06-27 22:19:42 +03:00
|
|
|
}
|
|
|
|
|
2022-05-14 18:00:03 +03:00
|
|
|
#[derive(Debug, Clone, FromDynamic, ToDynamic)]
|
2020-01-13 08:40:30 +03:00
|
|
|
pub struct ColorSchemeFile {
|
|
|
|
/// The color palette
|
|
|
|
pub colors: Palette,
|
|
|
|
}
|
2022-05-14 18:00:03 +03:00
|
|
|
|
|
|
|
impl ColorSchemeFile {
|
|
|
|
pub fn from_toml_value(value: &toml::Value) -> anyhow::Result<Self> {
|
|
|
|
Self::from_dynamic(&crate::toml_to_dynamic(value), Default::default())
|
|
|
|
.map_err(|e| anyhow::anyhow!("{}", e))
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn from_toml_str(s: &str) -> anyhow::Result<Self> {
|
|
|
|
let scheme: toml::Value = toml::from_str(s)?;
|
|
|
|
ColorSchemeFile::from_toml_value(&scheme)
|
|
|
|
}
|
|
|
|
}
|