summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBossCode45 <human.cyborg42@gmail.com>2022-08-30 00:05:35 +1200
committerBossCode45 <human.cyborg42@gmail.com>2022-08-30 00:05:35 +1200
commit3cac5d316811ecf081b54a437607bca2d4b2a68b (patch)
treed42259b15b08a8cd6ce3a03455530cf78aa4b402
parent69771678b03966c4919c01ef786a9bb677ad0f0d (diff)
downloadYATwm-3cac5d316811ecf081b54a437607bca2d4b2a68b.tar.gz
YATwm-3cac5d316811ecf081b54a437607bca2d4b2a68b.zip
More EWMH stuff
-rw-r--r--config.h2
-rw-r--r--main.cpp21
-rw-r--r--makefile1
-rw-r--r--structs.h2
4 files changed, 22 insertions, 4 deletions
diff --git a/config.h b/config.h
index 694d96a..9fe62ce 100644
--- a/config.h
+++ b/config.h
@@ -5,7 +5,7 @@
#include <string>
//Startup
-std::string startup[] = {"picom -fD 3", "feh --bg-scale /usr/share/backgrounds/vapor_trails_blue.png"};//, "~/.config/polybar/launch.sh"};
+std::string startup[] = {"picom -fD 3", "feh --bg-scale /usr/share/backgrounds/vapor_trails_blue.png", "~/.config/polybar/launch.sh"};
//Main config
int gaps = 10;
diff --git a/main.cpp b/main.cpp
index cdd3aaa..aec16b7 100644
--- a/main.cpp
+++ b/main.cpp
@@ -14,6 +14,7 @@
#include "structs.h"
#include "util.h"
+#include "ewmh.h"
#include "config.h"
@@ -107,6 +108,9 @@ void changeWS(const KeyArg arg)
untile(prevWS);
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2 - bH);
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+
+ //EWMH
+ setCurrentDesktop(currWS);
}
void wToWS(const KeyArg arg)
{
@@ -148,6 +152,10 @@ void wToWS(const KeyArg arg)
}
frames.find(fID)->second.pID = arg.num;
frames.find(arg.num)->second.subFrameIDs.push_back(fID);
+
+ //EWMH
+ setWindowDesktop(focusedWindow, arg.num);
+
XUnmapWindow(dpy, focusedWindow);
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2 - bH);
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
@@ -344,7 +352,6 @@ void mapRequest(XMapRequestEvent e)
return;
}
-
Window focusedWindow;
int revertToReturn;
XGetInputFocus(dpy, &focusedWindow, &revertToReturn);
@@ -407,6 +414,9 @@ void mapRequest(XMapRequestEvent e)
//Add to frames map
frames.insert(pair<int, Frame>(f.ID, f));
+ setWindowDesktop(e.window, currWS);
+ updateClientList(clients);
+
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2 - bH);
}
@@ -449,6 +459,8 @@ void destroyNotify(XDestroyWindowEvent e)
}
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2 - bH);
+
+ updateClientList(clients);
}
static int OnXError(Display* display, XErrorEvent* e)
@@ -544,7 +556,7 @@ int main(int argc, char** argv)
//EWMH stuff
- Atom supported[] = {XInternAtom(dpy, "_NET_NUMBER_OF_DESKTOPS", false), XInternAtom(dpy, "_NET_DESKTOP_NAMES", false)};
+ Atom supported[] = {XInternAtom(dpy, "_NET_NUMBER_OF_DESKTOPS", false), XInternAtom(dpy, "_NET_DESKTOP_NAMES", false), XInternAtom(dpy, "_NET_CLIENT_LIST", false)};
int wsNamesLen = numWS; //For null bytes
for(int i = 0; i < numWS; i++)
{
@@ -565,10 +577,13 @@ int main(int argc, char** argv)
Atom netNumDesktopsAtom = XInternAtom(dpy, "_NET_NUMBER_OF_DESKTOPS", false);
Atom netDesktopNamesAtom = XInternAtom(dpy, "_NET_DESKTOP_NAMES", false);
Atom XA_UTF8STRING = XInternAtom(dpy, "UTF8_STRING", false);
- XChangeProperty(dpy, root, netSupportedAtom, XA_ATOM, 32, PropModeReplace, (unsigned char*)supported, 2);
+ XChangeProperty(dpy, root, netSupportedAtom, XA_ATOM, 32, PropModeReplace, (unsigned char*)supported, 3);
XChangeProperty(dpy, root, netDesktopNamesAtom, XA_UTF8STRING, 8, PropModeReplace, (unsigned char*)&wsNames, wsNamesLen);
XChangeProperty(dpy, root, netNumDesktopsAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&numDesktops, 1);
+ //EWMH
+ setCurrentDesktop(1);
+
/*
Atom type;
int format;
diff --git a/makefile b/makefile
index 9dbddd3..621ee68 100644
--- a/makefile
+++ b/makefile
@@ -18,6 +18,7 @@ $(OBJS_DIR)/%.o : $(SOURCE_DIR)/%.cpp
#Files to be compiled
$(OBJS_DIR)/main.o: $(SOURCE_FILES) $(SOURCE_HEADERS)
+$(OBJS_DIR)/ewmh.o: $(SOURCE_DIR)/ewmh.cpp $(SOURCE_DIR)/ewmh.h
clean:
rm $(OBJS_DIR)/*.o
diff --git a/structs.h b/structs.h
index b7ccf3a..e1de3ed 100644
--- a/structs.h
+++ b/structs.h
@@ -1,3 +1,5 @@
+#pragma once
+
#include <X11/Xlib.h>
#include <vector>