From 599664b8c9d7754d5a073fe2e4e129535f5fbd73 Mon Sep 17 00:00:00 2001 From: BossCode45 Date: Tue, 18 Oct 2022 17:57:38 +1300 Subject: Progress... I hope --- config.h | 4 ++-- main.cpp | 43 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/config.h b/config.h index 4b140ac..c848778 100644 --- a/config.h +++ b/config.h @@ -63,7 +63,7 @@ KEYCOM(wToWS); KEYCOM(focChange); KEYCOM(wMove); KEYCOM(bashSpawn); -KEYCOM(screenTest); +KEYCOM(reload); // Super key mod #define MOD Mod4Mask @@ -100,7 +100,7 @@ const Key keyBinds[] = { {MOD|SHIFT, XK_x, spawn, {.str = i3lock}}, {MOD|SHIFT, XK_x, spawn, {.str = suspend}}, {MOD, XK_m, bashSpawn, {.str = monConfig}}, - {MOD|SHIFT, XK_t, screenTest, {NULL}}, + {MOD|SHIFT, XK_r, reload, {NULL}}, // Focus {MOD, XK_h, focChange, {.dir = Left}}, {MOD, XK_j, focChange, {.dir = Down}}, diff --git a/main.cpp b/main.cpp index bfbd22e..46cf540 100644 --- a/main.cpp +++ b/main.cpp @@ -51,7 +51,7 @@ map frameIDS; ScreenInfo* screens; int* focusedWorkspaces; -int focusedScreen; +int focusedScreen = 0; int nscreens; int mX, mY; @@ -94,11 +94,12 @@ void detectScreens() delete[] focusedWorkspaces; log("Detecting screens: "); XRRMonitorInfo* monitors = XRRGetMonitors(dpy, root, true, &nscreens); - log("\t"< screenPreferences[arg.num][i]) + if(nscreens > screenPreferences[arg.num - 1][i]) { - focusedWorkspaces[screenPreferences[arg.num][i]] = arg.num; - focusedScreen = screenPreferences[arg.num][i]; + //log("Found screen (screen " << screenPreferences[arg.num - 1][i] << ")"); + prevWS = focusedWorkspaces[screenPreferences[arg.num - 1][i]]; + //log("Changed prevWS"); + focusedWorkspaces[screenPreferences[arg.num - 1][i]] = arg.num; + //log("Changed focusedWorkspaces"); + focusedScreen = screenPreferences[arg.num - 1][i]; + //log("Changed focusedScreen"); + break; } } - untile(prevWS); + //log("Finished changes"); + + //log(prevWS); + if(prevWS < 1 || prevWS > numWS) + { + //untile(prevWS); + } + //log("Untiled"); //tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2 - bH); tileRoots(); + //log("Roots tiled"); XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); //EWMH @@ -388,7 +413,7 @@ void bashSpawn(const KeyArg arg) { if(fork() == 0) { - int null = open("log.txt", O_WRONLY); + int null = open("/dev/null", O_WRONLY); dup2(null, 1); dup2(null, 2); system(arg.str[0]); @@ -396,7 +421,7 @@ void bashSpawn(const KeyArg arg) } } -void screenTest(const KeyArg arg) +void reload(const KeyArg arg) { detectScreens(); } @@ -791,7 +816,7 @@ int main(int argc, char** argv) case DestroyNotify: destroyNotify(e.xdestroywindow); case EnterNotify: - log(e.xcrossing.x); + //log(e.xcrossing.x); if(e.xcrossing.window == root) break; XSetInputFocus(dpy, e.xcrossing.window, RevertToNone, CurrentTime); -- cgit v1.2.3