diff options
| author | BossCode45 <human.cyborg42@gmail.com> | 2022-10-18 17:57:38 +1300 |
|---|---|---|
| committer | BossCode45 <human.cyborg42@gmail.com> | 2022-10-18 17:57:38 +1300 |
| commit | 599664b8c9d7754d5a073fe2e4e129535f5fbd73 (patch) | |
| tree | 31a2fd658048eb2c79a58f4af096a79d1f6f1f70 | |
| parent | bcf9e480629d3bca64fc356e82560848aacfdd13 (diff) | |
| download | YATwm-599664b8c9d7754d5a073fe2e4e129535f5fbd73.tar.gz YATwm-599664b8c9d7754d5a073fe2e4e129535f5fbd73.zip | |
Progress... I hope
| -rw-r--r-- | config.h | 4 | ||||
| -rw-r--r-- | main.cpp | 43 |
2 files changed, 36 insertions, 11 deletions
@@ -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}}, @@ -51,7 +51,7 @@ map<Window, int> 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"<<nscreens << " monitors"); + log("\t" << nscreens << " monitors"); screens = new ScreenInfo[nscreens]; focusedWorkspaces = new int[nscreens]; for(int i = 0; i < nscreens; i++) { + focusedWorkspaces[i] = i * 5 + 1; char* name = XGetAtomName(dpy, monitors[i].name); screens[i] = {name, monitors[i].x, monitors[i].y, monitors[i].width, monitors[i].height}; log("\tMonitor " << i + 1 << " - " << screens[i].name); @@ -106,6 +107,13 @@ void detectScreens() log("\t\tw: " << screens[i].w << ", h: " << screens[i].h); XFree(name); } + for(int i = 0; i < numWS; i++) + { + if(screenPreferences[i][0] < nscreens && focusedWorkspaces[screenPreferences[i][0]] == 0) + { + //focusedWorkspaces[screenPreferences[i][0]] = i+1; + } + } XFree(monitors); } void updateMousePos() @@ -172,23 +180,40 @@ void kill(const KeyArg arg) void changeWS(const KeyArg arg) { int prevWS = currWS; + untileRoots(); currWS = arg.num; if(prevWS == currWS) return; + //log("Changing WS with keybind"); + for(int i = 0; i < maxMonitors; i++) { - if(nscreens > 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); |
