diff options
| author | BossCode45 <human.cyborg42@gmail.com> | 2023-05-24 10:28:49 +1200 |
|---|---|---|
| committer | BossCode45 <human.cyborg42@gmail.com> | 2023-05-24 10:28:49 +1200 |
| commit | da3b5b2131d2b4ff5cb127e92090fca568376835 (patch) | |
| tree | 3c3ca1dbb19683a22eefde705f2d8ac4d62ffdc3 /old.config.h | |
| parent | 6655d5dfb24ca3fd36b02550c526bca1f5d924e9 (diff) | |
| download | YATwm-da3b5b2131d2b4ff5cb127e92090fca568376835.tar.gz YATwm-da3b5b2131d2b4ff5cb127e92090fca568376835.zip | |
in-progress: Config refactor started, changed all existing keybind command args and added in the new files, still many errors
Diffstat (limited to 'old.config.h')
| -rw-r--r-- | old.config.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/old.config.h b/old.config.h new file mode 100644 index 0000000..31005e7 --- /dev/null +++ b/old.config.h @@ -0,0 +1,93 @@ +#pragma once + +#include "error.h" + +#include <toml++/toml.hpp> + +#include <X11/X.h> +#include <X11/keysym.h> + +#include <string> + +enum MoveDir +{ + Up, + Right, + Down, + Left +}; + +typedef union +{ + char* str; + int num; + MoveDir dir; +} KeyArg; + +struct KeyBind +{ + unsigned int modifiers; + KeySym keysym; + void(* func) (const KeyArg arg); + KeyArg args; +}; + +//Keybind commands +#define KEYCOM(X) \ + void X (const KeyArg arg) +KEYCOM(exit); +KEYCOM(spawn); +KEYCOM(toggle); +KEYCOM(kill); +KEYCOM(changeWS); +KEYCOM(wToWS); +KEYCOM(focChange); +KEYCOM(wMove); +KEYCOM(bashSpawn); +KEYCOM(reload); +KEYCOM(wsDump); +KEYCOM(nextMonitor); + +class Config +{ + public: + Config(); + ~Config(); + void free(); + + Err loadFromFile(std::string path); + Err reload(); + + // Startup + std::string* startupBash; + int startupBashc; + + // Main + int gaps; + int outerGaps; + std::string logFile; + + // Workspaces + int numWS; + std::string* workspaceNames; + int workspaceNamesc; + int maxMonitors; + int** screenPreferences; + int screenPreferencesc; + + // Keybinds + KeyBind* binds; + int bindsc; + private: + template <typename T> + T getValue(std::string path, Err* err); + + void loadWorkspaceArrays(toml::table tbl, toml::table defaults, Err* err); + void loadStartupBash(toml::table tbl, toml::table defaults, Err* err); + + toml::table tbl; + toml::table defaults; + + bool loaded = false; + std::string path; +}; |
