summaryrefslogtreecommitdiffstats
path: root/src/i3bar.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/i3bar.rs')
-rw-r--r--src/i3bar.rs24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/i3bar.rs b/src/i3bar.rs
index bdc92fa..28306e0 100644
--- a/src/i3bar.rs
+++ b/src/i3bar.rs
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use crate::Error;
/// Represent block as described in <https://i3wm.org/docs/i3bar-protocol.html>
-#[derive(Debug, Clone, Default, Serialize)]
+#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Block {
pub full_text: String,
#[serde(skip_serializing_if = "Option::is_none")]
@@ -49,7 +49,7 @@ impl Block {
}
}
-#[derive(Debug, Copy, Clone, Default, Serialize)]
+#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Align {
Center,
@@ -64,7 +64,7 @@ impl Align {
}
}
-#[derive(Serialize, Debug, Clone)]
+#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum MinWidth {
Pixels(usize),
@@ -72,24 +72,20 @@ pub enum MinWidth {
}
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
-#[serde(default)]
pub struct Click {
+ #[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub instance: Option<String>,
- pub full_text: String,
- pub short_text: Option<String>,
- pub color: Option<String>,
- pub background: Option<String>,
- pub button: u8,
- pub event: usize,
- pub modifiers: Option<Vec<String>>,
pub x: usize,
pub y: usize,
+ pub button: u8,
+ pub event: usize,
pub relative_x: usize,
pub relative_y: usize,
- pub output_x: Option<usize>,
- pub output_y: Option<usize>,
pub width: usize,
pub height: usize,
- pub scale: usize,
+ /// The modifiers property is not currently added by swaybar
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub modifiers: Option<Vec<String>>,
}