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 | |
| 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
| -rw-r--r-- | config.cpp | 15 | ||||
| -rw-r--r-- | config.cpp.old (renamed from old.config.cpp) | 0 | ||||
| -rw-r--r-- | config.h | 82 | ||||
| -rw-r--r-- | config.h.old (renamed from old.config.h) | 0 | ||||
| -rw-r--r-- | ewmh.cpp | 6 | ||||
| -rw-r--r-- | ewmh.h | 4 | ||||
| -rw-r--r-- | main.cpp | 38 |
7 files changed, 74 insertions, 71 deletions
@@ -92,6 +92,7 @@ const void Config::addWorkspaceCmd(const CommandArg* argv) int* prefs = new int[argv[1].numArr.size]; memcpy(prefs, argv[1].numArr.arr, argv[1].numArr.size * sizeof(int)); workspaces.push_back({argv[0].str, prefs, argv[1].numArr.size}); + numWS++; } Config::Config(CommandsModule& commandsModule) @@ -118,20 +119,23 @@ Config::Config(CommandsModule& commandsModule) commandsModule.addCommand("addworkspace", &Config::addWorkspaceCmd, 2, addWorkspaceArgs, this); } -Err Config::reloadFile() +std::vector<Err> Config::reloadFile() { if(!loaded) - return {CFG_ERR_NON_FATAL, "Not loaded config yet"}; + return {{CFG_ERR_NON_FATAL, "Not loaded config yet"}}; return loadFromFile(file); } -Err Config::loadFromFile(string path) +std::vector<Err> Config::loadFromFile(std::string path) { + std::vector<Err> ers; + file = path; //Set defaults gaps = 3; outerGaps = 3; logFile = "/tmp/yatlog.txt"; + numWS = 0; //Probably need something for workspaces and binds too... @@ -148,13 +152,12 @@ Err Config::loadFromFile(string path) } catch (Err e) { - cout << "Error in config (line " << line << "): " << e.code << endl; - cout << "\tMessage: " << e.message << endl; + ers.push_back({e.code, "Error in config (line " + std::to_string(line) + "): " + std::to_string(e.code) + "\n\tMessage: " + e.message}); + } line++; } loaded = true; - return {NOERR, ""}; } Config::~Config() diff --git a/old.config.cpp b/config.cpp.old index 74ba0b0..74ba0b0 100644 --- a/old.config.cpp +++ b/config.cpp.old @@ -5,6 +5,7 @@ #include <X11/keysym.h> #include <string> +#include <vector> struct Workspace { @@ -13,52 +14,47 @@ struct Workspace int screenPreferencesc; }; -#define COMMAND(X) \ +#define COMMAND(X) \ const void X (const CommandArg* argv) class Config { - public: - Config(CommandsModule& commandsModule); - ~Config(); - void free(); +public: + Config(CommandsModule& commandsModule); + ~Config(); + void free(); - Err loadFromFile(std::string path); - Err reloadFile(); - // Startup - std::string* startupBash; - int startupBashc; - - // Main - int gaps; - int outerGaps; - std::string logFile; - - // Workspaces - std::vector<Workspace> workspaces; - int numWS; - std::string* workspaceNames; - int workspaceNamesc; - int maxMonitors; - int** screenPreferences; - int screenPreferencesc; - - // 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; + std::vector<Err> loadFromFile(std::string path); + std::vector<Err> reloadFile(); + // Startup + std::string* startupBash; + int startupBashc; + + // Main + int gaps; + int outerGaps; + std::string logFile; + + // Workspaces + std::vector<Workspace> 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; }; diff --git a/old.config.h b/config.h.old index 31005e7..31005e7 100644 --- a/old.config.h +++ b/config.h.old @@ -5,7 +5,7 @@ Display** dpy_; Window* root_; -void initEWMH(Display** dpy, Window* root, int numWS, const std::string workspaceNames[]) +void initEWMH(Display** dpy, Window* root, int numWS, std::vector<Workspace> workspaces) { dpy_ = dpy; root_ = root; @@ -14,13 +14,13 @@ void initEWMH(Display** dpy, Window* root, int numWS, const std::string workspac int wsNamesLen = numWS; //For null bytes for(int i = 0; i < numWS; i++) { - wsNamesLen += workspaceNames[i].length(); + wsNamesLen += workspaces[i].name.length(); } char wsNames[wsNamesLen]; int pos = 0; for(int i = 0; i < numWS; i++) { - for(char toAdd : workspaceNames[i]) + for(char toAdd : workspaces[i].name) { wsNames[pos++] = toAdd; } @@ -5,10 +5,12 @@ #include <map> #include <string> +#include <vector> #include "structs.h" +#include "config.h" -void initEWMH(Display** dpy, Window* root, int numWS, const std::string workspaceNames[]); +void initEWMH(Display** dpy, Window* root, int numWS, std::vector<Workspace> workspaces); void updateClientList(std::map<int, Client> clients); @@ -82,7 +82,7 @@ int FFCF(int sID); void detectScreens(); void updateMousePos(); void focusRoot(int root); -void handleConfigErrs(Err cfgErr); +void handleConfigErrs(vector<Err> cfgErrs); void configureRequest(XConfigureRequestEvent e); void mapRequest(XMapRequestEvent e); @@ -123,9 +123,9 @@ void detectScreens() log("\t\tw: " << screens[i].w << ", h: " << screens[i].h); XFree(name); } - for(int i = 0; i < cfg.numWS; i++) + for(int i = 0; i < cfg.workspaces.size(); i++) { - if(cfg.screenPreferences[i][0] < nscreens && focusedWorkspaces[cfg.screenPreferences[i][0]] == 0) + if(cfg.workspaces[i].screenPreferences[0] < nscreens && focusedWorkspaces[cfg.workspaces[i].screenPreferences[0]] == 0) { //focusedWorkspaces[screenPreferences[i][0]] = i+1; } @@ -162,9 +162,9 @@ void focusRoot(int root) //log("\tFocusing window: " << w); XSetInputFocus(dpy, w, RevertToPointerRoot, CurrentTime); } -void handleConfigErrs(Err cfgErr) +void handleConfigErrs(vector<Err> cfgErrs) { - if(cfgErr.code!=NOERR) + for(Err cfgErr : cfgErrs) { if(cfgErr.code == CFG_ERR_FATAL) { @@ -268,19 +268,19 @@ void cWS(int newWS) //log("Changing WS with keybind"); - for(int i = 0; i < cfg.maxMonitors; i++) + for(int i = 0; i < nscreens; i++) { - if(nscreens > cfg.screenPreferences[newWS - 1][i]) + if(nscreens > cfg.workspaces[newWS - 1].screenPreferences[i]) { - int screen = cfg.screenPreferences[newWS - 1][i]; + int screen = cfg.workspaces[newWS - 1].screenPreferences[i]; //log("Found screen (screen " << screenPreferences[arg.num - 1][i] << ")"); - prevWS = focusedWorkspaces[cfg.screenPreferences[newWS - 1][i]]; + prevWS = focusedWorkspaces[screen]; //log("Changed prevWS"); - focusedWorkspaces[cfg.screenPreferences[newWS - 1][i]] = newWS; + focusedWorkspaces[screen] = newWS; //log("Changed focusedWorkspaces"); - if(focusedScreen != cfg.screenPreferences[newWS - 1][i]) + if(focusedScreen != screen) { - focusedScreen = cfg.screenPreferences[newWS - 1][i]; + focusedScreen = screen; XWarpPointer(dpy, root, root, 0, 0, 0, 0, screens[screen].x + screens[screen].w/2, screens[screen].y + screens[screen].h/2); } //log("Changed focusedScreen"); @@ -291,7 +291,8 @@ void cWS(int newWS) //log("Finished changes"); //log(prevWS); - if(prevWS < 1 || prevWS > cfg.numWS) + // LOOK: what is this for????? + if(prevWS < 1 || prevWS > cfg.workspaces.size()) { //untile(prevWS); } @@ -520,7 +521,7 @@ const void reload(const CommandArg* argv) detectScreens(); //Load config again - Err cfgErr = cfg.reloadFile(); + vector<Err> cfgErr = cfg.reloadFile(); //Error check handleConfigErrs(cfgErr); @@ -929,8 +930,9 @@ int main(int argc, char** argv) std::string home = getenv("HOME"); std::string pathAfterHome = "/.config/YATwm/config.toml"; std::string file = home + pathAfterHome; - Err cfgErr = cfg.loadFromFile(file); - + // Err cfgErr = cfg.loadFromFile(file); + std::vector<Err> cfgErr = cfg.loadFromFile("config"); + //Log yatlog.open(cfg.logFile, std::ios_base::app); @@ -959,7 +961,7 @@ int main(int argc, char** argv) XDefineCursor(dpy, root, XCreateFontCursor(dpy, XC_top_left_arrow)); //EWMH - initEWMH(&dpy, &root, cfg.numWS,cfg. workspaceNames); + initEWMH(&dpy, &root, cfg.workspaces.size(), cfg.workspaces); setCurrentDesktop(1); for(int i = 1; i < cfg.numWS + 1; i++) @@ -990,7 +992,7 @@ int main(int argc, char** argv) switch(e.type) { case KeyPress: - keybindsModule.keyPress(e.xkey); + keybindsModule.handleKeypress(e.xkey); break; case ConfigureRequest: configureRequest(e.xconfigurerequest); |
