summaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/config.rs b/src/config.rs
index 7d8600f4..00c3a933 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -373,6 +373,10 @@ pub struct Config {
#[serde(default, deserialize_with = "failure_default")]
cursor_style: CursorStyle,
+ /// Use hollow block cursor when unfocused
+ #[serde(default="true_bool", deserialize_with = "default_true_bool")]
+ unfocused_hollow_cursor: bool,
+
/// Live config reload
#[serde(default="true_bool", deserialize_with = "default_true_bool")]
live_config_reload: bool,
@@ -593,7 +597,8 @@ impl<'a> de::Deserialize<'a> for ActionWrapper {
fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("Paste, Copy, PasteSelection, IncreaseFontSize, DecreaseFontSize, \
- ResetFontSize, ScrollPageUp, ScrollPageDown, ScrollToTop, ScrollToBottom or Quit")
+ ResetFontSize, ScrollPageUp, ScrollPageDown, ScrollToTop, \
+ ScrollToBottom, Hide, or Quit")
}
fn visit_str<E>(self, value: &str) -> ::std::result::Result<ActionWrapper, E>
@@ -610,6 +615,7 @@ impl<'a> de::Deserialize<'a> for ActionWrapper {
"ScrollPageDown" => Action::ScrollPageDown,
"ScrollToTop" => Action::ScrollToTop,
"ScrollToBottom" => Action::ScrollToBottom,
+ "Hide" => Action::Hide,
"Quit" => Action::Quit,
_ => return Err(E::invalid_value(Unexpected::Str(value), &self)),
}))
@@ -1070,6 +1076,26 @@ pub struct PrimaryColors {
pub background: Rgb,
#[serde(deserialize_with = "rgb_from_hex")]
pub foreground: Rgb,
+ #[serde(default, deserialize_with = "deserialize_optional_color")]
+ pub bright_foreground: Option<Rgb>,
+ #[serde(default, deserialize_with = "deserialize_optional_color")]
+ pub dim_foreground: Option<Rgb>,
+}
+
+fn deserialize_optional_color<'a, D>(deserializer: D) -> ::std::result::Result<Option<Rgb>, D::Error>
+ where D: de::Deserializer<'a>
+{
+ match Option::deserialize(deserializer) {
+ Ok(Some(color)) => {
+ let color: serde_yaml::Value = color;
+ Ok(Some(rgb_from_hex(color).unwrap()))
+ },
+ Ok(None) => Ok(None),
+ Err(err) => {
+ eprintln!("problem with config: {}; Using standard foreground color", err);
+ Ok(None)
+ },
+ }
}
impl Default for PrimaryColors {
@@ -1077,6 +1103,8 @@ impl Default for PrimaryColors {
PrimaryColors {
background: Rgb { r: 0, g: 0, b: 0 },
foreground: Rgb { r: 0xea, g: 0xea, b: 0xea },
+ bright_foreground: None,
+ dim_foreground: None,
}
}
}
@@ -1415,6 +1443,12 @@ impl Config {
self.cursor_style
}
+ /// Use hollow block cursor when unfocused
+ #[inline]
+ pub fn unfocused_hollow_cursor(&self) -> bool {
+ self.unfocused_hollow_cursor
+ }
+
/// Live config reload
#[inline]
pub fn live_config_reload(&self) -> bool {