aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/config/window.rs')
-rw-r--r--alacritty/src/config/window.rs28
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,
+ }
+ }
+}