bspc_rs/
properties.rs

1use serde::{Deserialize, Serialize};
2use strum_macros::EnumString;
3
4#[derive(Debug, Serialize, Deserialize)]
5pub struct Rectangle {
6    pub x: i32,
7    pub y: i32,
8    pub width: i32,
9    pub height: i32,
10}
11
12#[derive(Debug, EnumString, Serialize, Deserialize)]
13#[serde(rename_all = "camelCase")]
14#[strum(serialize_all = "snake_case")]
15pub enum Layout {
16    Tiled,
17    Monocle,
18}
19
20#[derive(Debug, EnumString, Serialize, Deserialize)]
21#[serde(rename_all = "camelCase")]
22#[strum(serialize_all = "snake_case")]
23pub enum Dir {
24    South,
25    North,
26    West,
27    East,
28}
29
30#[derive(Debug, EnumString, Serialize, Deserialize)]
31#[serde(rename_all = "camelCase")]
32#[strum(serialize_all = "snake_case")]
33pub enum CycleDir {
34    Next,
35    Prev,
36}
37
38#[derive(Debug, Serialize, Deserialize)]
39#[serde(rename_all = "camelCase")]
40pub enum SplitType {
41    Vertical,
42    Horizontal,
43}
44
45#[derive(Debug)]
46pub enum Presel {
47    Dir(Dir),
48    Ratio(f32),
49    Cancel,
50}
51
52#[derive(Debug, EnumString)]
53#[strum(serialize_all = "snake_case")]
54pub enum Stack {
55    Below,
56    Above,
57}
58
59#[derive(Debug, Serialize, Deserialize, EnumString)]
60#[serde(rename_all = "camelCase")]
61#[strum(serialize_all = "snake_case")]
62pub enum State {
63    Tiled,
64    PseudoTiled,
65    Floating,
66    Fullscreen,
67}
68
69#[derive(Debug, EnumString)]
70#[strum(serialize_all = "snake_case")]
71pub enum Switch {
72    On,
73    Off,
74}
75
76#[derive(Debug, Serialize, Deserialize, EnumString)]
77#[serde(rename_all = "camelCase")]
78#[strum(serialize_all = "snake_case")]
79pub enum Flag {
80    Hidden,
81    Sticky,
82    Private,
83    Locked,
84    Marked,
85    Urgent,
86}
87
88#[derive(Debug, Serialize, Deserialize, EnumString)]
89#[serde(rename_all = "camelCase")]
90#[strum(serialize_all = "snake_case")]
91pub enum Layer {
92    Below,
93    Normal,
94    Above,
95}
96
97#[derive(Debug, EnumString)]
98#[strum(serialize_all = "snake_case")]
99pub enum Action {
100    Move,
101    ResizeCorner,
102    ResizeSide,
103}
104
105#[derive(Debug, EnumString)]
106#[strum(serialize_all = "snake_case")]
107pub enum ActionState {
108    Begin,
109    End,
110}