diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-24 18:22:01 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-24 18:22:01 +0100 |
| commit | ccbc0e4a2e4b1bcd9966b59edfbb0aaf6c27a52d (patch) | |
| tree | b4e80c8112416a408576d47ad7a7da2cfc4f66c9 /src/config/ConfigManager.hpp | |
| parent | 8cec07c39d17472a93c383683ca5c49f0119be77 (diff) | |
Added window rules
Diffstat (limited to 'src/config/ConfigManager.hpp')
| -rw-r--r-- | src/config/ConfigManager.hpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index c34aadb1..8c38efa5 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -6,6 +6,9 @@ #include "../defines.hpp" #include <vector> #include <deque> +#include <algorithm> +#include <regex> +#include "../Window.hpp" struct SConfigValue { int64_t intValue = -1; @@ -23,6 +26,11 @@ struct SMonitorRule { int defaultWorkspaceID = -1; }; +struct SWindowRule { + std::string szRule; + std::string szValue; +}; + class CConfigManager { public: CConfigManager(); @@ -36,6 +44,8 @@ public: SMonitorRule getMonitorRuleFor(std::string); + std::vector<SWindowRule> getMatchingRules(CWindow*); + private: std::unordered_map<std::string, SConfigValue> configValues; time_t lastModifyTime = 0; // for reloading the config if changed @@ -47,6 +57,7 @@ private: bool isFirstLaunch = true; // For exec-once std::deque<SMonitorRule> m_dMonitorRules; + std::deque<SWindowRule> m_dWindowRules; // internal methods void loadConfigLoadVars(); @@ -56,6 +67,7 @@ private: void handleRawExec(const std::string&, const std::string&); void handleMonitor(const std::string&, const std::string&); void handleBind(const std::string&, const std::string&); + void handleWindowRule(const std::string&, const std::string&); void handleDefaultWorkspace(const std::string&, const std::string&); }; |
