aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/desktop/WindowRule.hpp
blob: 6faf8b5a019219d4818b115eb58f00361aff38b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma once

#include <string>
#include <cstdint>

class CWindowRule {
  public:
    CWindowRule(const std::string& rule, const std::string& value, bool isV2 = false, bool isExecRule = false);

    enum eRuleType : uint8_t {
        RULE_INVALID = 0,
        RULE_FLOAT,
        RULE_FULLSCREEN,
        RULE_MAXIMIZE,
        RULE_NOINITIALFOCUS,
        RULE_PIN,
        RULE_STAYFOCUSED,
        RULE_TILE,
        RULE_RENDERUNFOCUSED,
        RULE_ANIMATION,
        RULE_BORDERCOLOR,
        RULE_CENTER,
        RULE_FULLSCREENSTATE,
        RULE_GROUP,
        RULE_IDLEINHIBIT,
        RULE_MAXSIZE,
        RULE_MINSIZE,
        RULE_MONITOR,
        RULE_MOVE,
        RULE_OPACITY,
        RULE_PLUGIN,
        RULE_PSEUDO,
        RULE_SIZE,
        RULE_SUPPRESSEVENT,
        RULE_TAG,
        RULE_WORKSPACE,
        RULE_PROP,
    };

    eRuleType         ruleType = RULE_INVALID;

    const std::string szValue;
    const std::string szRule;
    const bool        v2       = false;
    const bool        execRule = false;

    std::string       szTitle;
    std::string       szClass;
    std::string       szInitialTitle;
    std::string       szInitialClass;
    std::string       szTag;
    int               bX11              = -1; // -1 means "ANY"
    int               bFloating         = -1;
    int               bFullscreen       = -1;
    int               bPinned           = -1;
    int               bFocus            = -1;
    std::string       szFullscreenState = ""; // empty means any
    std::string       szOnWorkspace     = ""; // empty means any
    std::string       szWorkspace       = ""; // empty means any
};