aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config/terminal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/config/terminal.rs')
-rw-r--r--alacritty/src/config/terminal.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/alacritty/src/config/terminal.rs b/alacritty/src/config/terminal.rs
new file mode 100644
index 00000000..b41af5db
--- /dev/null
+++ b/alacritty/src/config/terminal.rs
@@ -0,0 +1,26 @@
+use serde::{de, Deserialize, Deserializer};
+use toml::Value;
+
+use alacritty_config_derive::{ConfigDeserialize, SerdeReplace};
+use alacritty_terminal::term::Osc52;
+
+use crate::config::ui_config::StringVisitor;
+
+#[derive(ConfigDeserialize, Default, Copy, Clone, Debug, PartialEq)]
+pub struct Terminal {
+ /// OSC52 support mode.
+ pub osc52: SerdeOsc52,
+}
+
+#[derive(SerdeReplace, Default, Copy, Clone, Debug, PartialEq)]
+pub struct SerdeOsc52(pub Osc52);
+
+impl<'de> Deserialize<'de> for SerdeOsc52 {
+ fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+ where
+ D: Deserializer<'de>,
+ {
+ let value = deserializer.deserialize_str(StringVisitor)?;
+ Osc52::deserialize(Value::String(value)).map(SerdeOsc52).map_err(de::Error::custom)
+ }
+}