diff options
| author | BossCode45 <human.cyborg42@gmail.com> | 2022-08-30 00:05:35 +1200 |
|---|---|---|
| committer | BossCode45 <human.cyborg42@gmail.com> | 2022-08-30 00:05:35 +1200 |
| commit | 3cac5d316811ecf081b54a437607bca2d4b2a68b (patch) | |
| tree | d42259b15b08a8cd6ce3a03455530cf78aa4b402 | |
| parent | 69771678b03966c4919c01ef786a9bb677ad0f0d (diff) | |
| download | YATwm-3cac5d316811ecf081b54a437607bca2d4b2a68b.tar.gz YATwm-3cac5d316811ecf081b54a437607bca2d4b2a68b.zip | |
More EWMH stuff
| -rw-r--r-- | config.h | 2 | ||||
| -rw-r--r-- | main.cpp | 21 | ||||
| -rw-r--r-- | makefile | 1 | ||||
| -rw-r--r-- | structs.h | 2 |
4 files changed, 22 insertions, 4 deletions
@@ -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; @@ -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; @@ -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 @@ -1,3 +1,5 @@ +#pragma once + #include <X11/Xlib.h> #include <vector> |
