diff options
| author | BossCode45 <human.cyborg42@gmail.com> | 2023-05-27 16:33:46 +1200 |
|---|---|---|
| committer | BossCode45 <human.cyborg42@gmail.com> | 2023-05-27 16:33:46 +1200 |
| commit | ea827624d203c73af896669e161972fc8be022ed (patch) | |
| tree | f4a4ecb151ac9eaebee724be2ee4ee24bfb98eab /config.h.old | |
| parent | 27137ec9d29c36df8117869773203b243849896c (diff) | |
| download | YATwm-ea827624d203c73af896669e161972fc8be022ed.tar.gz YATwm-ea827624d203c73af896669e161972fc8be022ed.zip | |
feat: Made it compile woo
Note: doesn't work yet though, as commands haven't all been registered yet
Diffstat (limited to 'config.h.old')
| -rw-r--r-- | config.h.old | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/config.h.old b/config.h.old new file mode 100644 index 0000000..31005e7 --- /dev/null +++ b/config.h.old @@ -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; +}; |
