diff options
Diffstat (limited to 'alacritty/src/config/window.rs')
-rw-r--r-- | alacritty/src/config/window.rs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs index 3ae4e29e..ed84622e 100644 --- a/alacritty/src/config/window.rs +++ b/alacritty/src/config/window.rs @@ -3,10 +3,10 @@ use std::fmt::{self, Formatter}; use log::{error, warn}; use serde::de::{self, MapAccess, Visitor}; use serde::{Deserialize, Deserializer, Serialize}; -use winit::window::{Fullscreen, Theme}; #[cfg(target_os = "macos")] use winit::platform::macos::OptionAsAlt as WinitOptionAsAlt; +use winit::window::{Fullscreen, Theme as WinitTheme}; use alacritty_config_derive::{ConfigDeserialize, SerdeReplace}; @@ -31,9 +31,6 @@ pub struct WindowConfig { #[config(skip)] pub embed: Option<u32>, - /// System decorations theme variant. - pub decorations_theme_variant: Option<Theme>, - /// Spread out additional padding evenly. pub dynamic_padding: bool, @@ -62,6 +59,9 @@ pub struct WindowConfig { /// Initial dimensions. dimensions: Dimensions, + + /// System decorations theme variant. + decorations_theme_variant: Option<Theme>, } impl Default for WindowConfig { @@ -149,6 +149,10 @@ impl WindowConfig { OptionAsAlt::None => WinitOptionAsAlt::None, } } + + pub fn theme(&self) -> Option<WinitTheme> { + self.decorations_theme_variant.map(WinitTheme::from) + } } #[derive(ConfigDeserialize, Debug, Clone, PartialEq, Eq)] @@ -292,3 +296,19 @@ pub enum OptionAsAlt { #[default] None, } + +/// System decorations theme variant. +#[derive(ConfigDeserialize, Debug, Clone, Copy, PartialEq, Eq)] +pub enum Theme { + Light, + Dark, +} + +impl From<Theme> for WinitTheme { + fn from(theme: Theme) -> Self { + match theme { + Theme::Light => WinitTheme::Light, + Theme::Dark => WinitTheme::Dark, + } + } +} |