diff options
Diffstat (limited to 'src/i3bar.rs')
-rw-r--r-- | src/i3bar.rs | 24 |
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>>, } |