mirror of
https://github.com/hykilpikonna/hyfetch.git
synced 2026-08-11 19:45:39 -05:00
[+] Separate lightness values for light and dark themes (#533)
[+] Lightness per theme config options
This commit is contained in:
@@ -224,7 +224,8 @@ fn main() -> Result<()> {
|
||||
} else {
|
||||
color_profile.with_lightness_adaptive(
|
||||
config
|
||||
.lightness
|
||||
.lightness_per_theme.map(|val| val.get(theme))
|
||||
.or(config.lightness)
|
||||
.unwrap_or_else(|| Config::default_lightness(theme)),
|
||||
theme,
|
||||
)
|
||||
@@ -1495,6 +1496,7 @@ fn create_config(
|
||||
light_dark: Some(theme),
|
||||
auto_detect_light_dark: Some(det_bg.is_some()),
|
||||
lightness: Some(lightness),
|
||||
lightness_per_theme: None,
|
||||
color_align,
|
||||
backend,
|
||||
args: None,
|
||||
|
||||
@@ -72,6 +72,13 @@ static RGB_COLORS_AC: OnceLock<AhoCorasick> = OnceLock::new();
|
||||
#[derive(Copy, Clone, PartialEq, PartialOrd, Debug, Deserialize, Serialize)]
|
||||
pub struct Lightness(f32);
|
||||
|
||||
/// Represents a dictionary of one lightness option per {light, dark} theme.
|
||||
#[derive(Copy, Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct LightnessPerTheme {
|
||||
dark: Lightness,
|
||||
light: Lightness,
|
||||
}
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
pub enum LightnessError {
|
||||
#[error(
|
||||
@@ -148,6 +155,15 @@ impl Lightness {
|
||||
}
|
||||
}
|
||||
|
||||
impl LightnessPerTheme {
|
||||
pub fn get(&self, theme: TerminalTheme) -> Lightness {
|
||||
match theme {
|
||||
TerminalTheme::Light => self.light,
|
||||
TerminalTheme::Dark => self.dark
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<f32> for Lightness {
|
||||
type Error = LightnessError;
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use strum::{AsRefStr, Display, EnumString};
|
||||
|
||||
use crate::color_profile::ColorProfile;
|
||||
use crate::color_util::Lightness;
|
||||
use crate::color_util::LightnessPerTheme;
|
||||
use crate::neofetch_util::ColorAlignment;
|
||||
use crate::types::{AnsiMode, Backend, TerminalTheme};
|
||||
|
||||
@@ -16,6 +17,7 @@ pub struct Config {
|
||||
pub auto_detect_light_dark: Option<bool>,
|
||||
pub light_dark: Option<TerminalTheme>,
|
||||
pub lightness: Option<Lightness>,
|
||||
pub lightness_per_theme: Option<LightnessPerTheme>,
|
||||
pub color_align: ColorAlignment,
|
||||
pub backend: Backend,
|
||||
#[serde(default)]
|
||||
|
||||
Reference in New Issue
Block a user