#pragma once #include "commands.h" #include #include #include #include struct Workspace { std::string name; int* screenPreferences; int screenPreferencesc; }; #define COMMAND(X) \ const void X (const CommandArg* argv) class Config { public: Config(CommandsModule& commandsModule); ~Config(); void free(); std::vector loadFromFile(std::string path); std::vector reloadFile(); // Startup std::string* startupBash; int startupBashc; // Main int gaps; int outerGaps; std::string logFile; // Workspaces std::vector workspaces; int numWS; // Config Commands COMMAND(gapsCmd); COMMAND(outerGapsCmd); COMMAND(logFileCmd); COMMAND(addWorkspaceCmd); // Keybind Commands COMMAND(exit); COMMAND(spawn); COMMAND(spawn_once); COMMAND(changeWS); COMMAND(wToWS); COMMAND(focChange); COMMAND(reload); private: CommandsModule& commandsModule; bool loaded = false; std::string file; };