diff options
Diffstat (limited to 'alacritty/src/config/terminal.rs')
-rw-r--r-- | alacritty/src/config/terminal.rs | 26 |
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) + } +} |