summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBossCode45 <human.cyborg42@gmail.com>2022-08-29 10:51:07 +1200
committerBossCode45 <human.cyborg42@gmail.com>2022-08-29 10:51:07 +1200
commit5715a9adcde69b5a7a87756b44ee69ee40f9c508 (patch)
treea3dfb00ca284f1feee35439fff549ad7268c1fc6
parent1159d5a29101522503ee198215b9d624449f4e49 (diff)
downloadYATwm-5715a9adcde69b5a7a87756b44ee69ee40f9c508.tar.gz
YATwm-5715a9adcde69b5a7a87756b44ee69ee40f9c508.zip
Cleaning up random files
-rw-r--r--#config.h#77
-rw-r--r--\325
-rw-r--r--util.h~36
3 files changed, 0 insertions, 438 deletions
diff --git a/#config.h# b/#config.h#
deleted file mode 100644
index 2876dfc..0000000
--- a/#config.h#
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <X11/keysym.h>
-#include <X11/Xlib.h>
-
-#include <vector>
-#include <string>
-
-//Startup
-std::string startup[] = {"picom -fD 3", "feh --bg-scale /usr/share/backgrounds/vapor_trails_blue.png"};
-
-//Main config
-int gaps = 10;
-int outerGaps = 30;
-
-int numWS = 5;
-
-//Keys
-//The types and perhaps functions likely to be moved to seperate header file later
-enum MoveDir
-{
- Up,
- Right,
- Down,
- Left
-};
-
-typedef union
-{
- const char** str;
- const int num;
- const MoveDir dir;
-} KeyArg;
-
-struct Key
-{
- KeySym keysym;
- unsigned int modifiers;
- void (*function)(const KeyArg arg);
- const KeyArg arg;
-};
-
-//Keybind commands
-void exit(const KeyArg arg);
-void spawn(const KeyArg arg);
-void toggle(const KeyArg arg);
-void kill(const KeyArg arg);
-void changeWS(const KeyArg arg);
-void wToWS(const KeyArg arg);
-void focChange(const KeyArg arg);
-
-const char* alacritty[] = ;
-const char* rofi[] = {"rofi", "-i", "-show", "drun", NULL};
-
-#define MOD Mod1Mask
-#define SHIFT ShiftMask
-
-#define WSKEY(K, X) \
- {K, MOD, changeWS, {.num = X}}, \
- {K, MOD|SHIFT, wToWS, {.num = X}},
-
-
-static struct Key keyBinds[] = {
- //Key //Modifiers //Func //Args
- {XK_e, MOD, exit, {NULL}},
- {XK_Return, MOD, spawn, {.str = {"alacritty", NULL}}},
- {XK_d, MOD, spawn, {.str = rofi}},
- {XK_t, MOD, toggle, {NULL}},
- {XK_q, MOD, kill, {NULL}},
- {XK_h, MOD, focChange, {.dir = Left}},
- {XK_j, MOD, focChange, {.dir = Down}},
- {XK_k, MOD, focChange, {.dir = Up}},
- {XK_l, MOD, focChange, {.dir = Right}},
- WSKEY(XK_1, 1)
- WSKEY(XK_2, 2)
- WSKEY(XK_3, 3)
- WSKEY(XK_4, 4)
- WSKEY(XK_5, 5)
-};
diff --git a/\ b/\
deleted file mode 100644
index 1a8944a..0000000
--- a/\
+++ /dev/null
@@ -1,325 +0,0 @@
-#include <X11/Xlib.h>
-
-#include <cstdlib>
-#include <iostream>
-#include <map>
-#include <vector>
-#include <unistd.h>
-#include <cstring>
-#include <algorithm>
-
-#include "structs.h"
-#include "config.h"
-
-using std::cout;
-using std::map;
-using std::pair;
-using std::vector;
-
-Display* dpy;
-Window root;
-int sW, sH;
-TileDir nextDir = horizontal;
-
-
-bool keepGoing = true;
-
-map<int, Client> clients;
-int currClientID = 0;
-map<int, Frame> frames;
-int currFrameID = 0;
-map<Window, int> frameIDS;
-
-void keyPress(XKeyEvent e);
-void configureRequest(XConfigureRequestEvent e);
-void mapRequest(XMapRequestEvent e);
-void destroyNotify(XDestroyWindowEvent e);
-
-static int OnXError(Display* display, XErrorEvent* e);
-
-void tile(int frameID, int x, int y, int w, int h);
-
-//Keybind commands
-void exit(const KeyArg arg)
-{
- keepGoing = false;
-}
-void spawn(const KeyArg arg)
-{
- if(fork() == 0)
- {
- execvp((char*)arg.str[0], (char**)arg.str);
- exit(0);
- }
-}
-void toggle(const KeyArg arg)
-{
- nextDir = nextDir = (nextDir==horizontal)? vertical : horizontal;
-}
-void kill(const KeyArg arg)
-{
- Window w;
- int revertToReturn;
- XGetInputFocus(dpy, &w, &revertToReturn);
- Atom* supported_protocols;
- int num_supported_protocols;
- if (XGetWMProtocols(dpy,
- w,
- &supported_protocols,
- &num_supported_protocols) &&
- (std::find(supported_protocols,
- supported_protocols + num_supported_protocols,
- XInternAtom(dpy, "WM_DELETE_WINDOW", false)) !=
- supported_protocols + num_supported_protocols)) {
- // 1. Construct message.
- XEvent msg;
- memset(&msg, 0, sizeof(msg));
- msg.xclient.type = ClientMessage;
- msg.xclient.message_type = XInternAtom(dpy, "WM_PROTOCOLS", false);
- msg.xclient.window = w;
- msg.xclient.format = 32;
- msg.xclient.data.l[0] = XInternAtom(dpy, "WM_DELETE_WINDOW", false);
- // 2. Send message to window to be closed.
- cout << "Nice kill\n";
- XSendEvent(dpy, w, false, 0, &msg);
- } else {
- cout << "Mean kill\n";
- XKillClient(dpy, w);
- }
-}
-
-void keyPress(XKeyEvent e)
-{
- if(e.same_screen!=1) return;
- //TODO: Make this into a for loop
- KeySym keysym = XLookupKeysym(&e, 1);
- for(int i = 0; i < sizeof(keyBinds)/sizeof(keyBinds[0]); i++)
- {
- if(keyBinds[i].keysym == keysym && keyBinds[i].modifiers == e.state)
- {
- keyBinds[i].function(keyBinds[i].arg);
- }
- }
-}
-
-void configureRequest(XConfigureRequestEvent e)
-{
- XWindowChanges changes;
- changes.x = e.x;
- changes.y = e.y;
- changes.width = e.width;
- changes.height = e.height;
- changes.border_width = e.border_width;
- changes.sibling = e.above;
- changes.stack_mode = e.detail;
- XConfigureWindow(dpy, e.window, e.value_mask, &changes);
-}
-
-void mapRequest(XMapRequestEvent e)
-{
- XMapWindow(dpy, e.window);
- Window focusedWindow;
- int revertToReturn;
- XGetInputFocus(dpy, &focusedWindow, &revertToReturn);
- XSetInputFocus(dpy, e.window, RevertToNone, CurrentTime);
- XSelectInput(dpy, e.window, EnterWindowMask);
-
- //Make client
- Client c = {currClientID, e.window};
- currClientID++;
-
- //Add to clients map
- clients.insert(pair<int, Client>(c.ID, c));
-
- //Make frame
- int pID = (frameIDS.count(focusedWindow)>0)? frames.find(frameIDS.find(focusedWindow)->second)->second.pID : 0;
- vector<int> v;
- Frame f = {currFrameID, pID, true, c.ID, noDir, v};
- currFrameID++;
-
-
- //Add ID to frameIDS map
- frameIDS.insert(pair<Window, int>(e.window, f.ID));
-
- //Check how to add
- if(nextDir == frames.find(pID)->second.dir)
- {
- //Add to focused parent
- frames.find(pID)->second.subFrameIDs.push_back(f.ID);
- }
- else
- {
- //Get parent sub frames for later use
- vector<int>& pS = frames.find(pID)->second.subFrameIDs;
-
- //Get index of focused frame in parent sub frames
- int index;
- for(index = 0; index < pS.size(); index++)
- {
- if(pS[index] == frames.find(frameIDS.find(focusedWindow)->second)->second.ID)
- break;
- }
-
- //Make new frame
- vector<int> v;
- v.push_back(frames.find(frameIDS.find(focusedWindow)->second)->second.ID);
- v.push_back(f.ID);
- Frame pF = {currFrameID, pID, false, noID, nextDir, v};
-
- //Update the IDS
- f.pID = currFrameID;
- frames.find(frames.find(frameIDS.find(focusedWindow)->second)->second.ID)->second.pID = currFrameID;
- pS[index] = currFrameID;
-
- currFrameID++;
-
- //Insert the new frame into the frames map
- frames.insert(pair<int, Frame>(pF.ID, pF));
- }
-
- //Add to frames map
- frames.insert(pair<int, Frame>(f.ID, f));
-
- tile(0, 0, 0, sW, sH);
-}
-
-void destroyNotify(XDestroyWindowEvent e)
-{
- if(frameIDS.count(e.window)<1)
- return;
- cout << "Destroy notif\n";
- int fID = frameIDS.find(e.window)->second;
- int pID = frames.find(fID)->second.pID;
- vector<int>& pS = frames.find(pID)->second.subFrameIDs;
- for(int i = 0; i < pS.size(); i++)
- {
- if(frames.find(pS[i])->second.ID == fID)
- {
- pS.erase(pS.begin() + i);
- clients.erase(frames.find(fID)->second.cID);
- frames.erase(fID);
- frameIDS.erase(e.window);
-
- if(pS.size() < 2 && pID != 0)
- {
- //Erase parent frame
- int lastChildID = frames.find(frames.find(pID)->second.subFrameIDs[0])->second.ID;
- int parentParentID = frames.find(pID)->second.pID;
- vector<int>& parentParentSubFrameIDs = frames.find(parentParentID)->second.subFrameIDs;
- for(int j = 0; j < parentParentSubFrameIDs.size(); j++)
- {
- if(parentParentSubFrameIDs[j] == pID)
- {
- parentParentSubFrameIDs[j] = lastChildID;
- frames.find(lastChildID)->second.pID = parentParentID;
- frames.erase(pID);
- break;
- }
- }
- }
- break;
- }
- }
- tile(0, 0, 0, sW, sH);
-}
-
-static int OnXError(Display* display, XErrorEvent* e)
-{
- cout << "XError\n";
- return 0;
-}
-
-void tile(int frameID, int x, int y, int w, int h)
-{
- if(frameID == 0)
- {
- printf("\nTILING ROOT:\n");
- }
- printf("Tiling frame - ID: %i\n\tx: %i, y: %i, w: %i, h: %i\n", frameID, x, y, w, h);
- int i = 0;
- vector<int>& subFrameIDs = frames.find(frameID)->second.subFrameIDs;
- TileDir dir = frames.find(frameID)->second.dir;
- for(int fID : subFrameIDs)
- {
- Frame f = frames.find(fID)->second;
- int wX = (dir==horizontal) ? x + i * (w/subFrameIDs.size()) : x;
- int wY = (dir==vertical) ? y + i * (h/subFrameIDs.size()) : y;
- int wW = (dir==horizontal) ? w/subFrameIDs.size() : w;
- int wH = (dir==vertical) ? h/subFrameIDs.size() : h;
- i++;
- if(!f.isClient)
- {
- tile(fID, wX, wY, wW, wH);
- continue;
- }
- Client c = clients.find(f.cID)->second;
- printf("Arranging client with frame ID %i, client ID %i:\n\tx: %i, y: %i, w: %i, h: %i\n", fID, c.ID, wX, wY, wW, wH);
- XMoveWindow(dpy, c.w,
- wX, wY);
- XResizeWindow(dpy, c.w,
- wW, wH);
- }
- if(frameID == 0)
- {
- printf("DONE TILING ROOT\n\n");
- }
-}
-
-int main(int argc, char** argv)
-{
- dpy = XOpenDisplay(nullptr);
- root = Window(DefaultRootWindow(dpy));
-
- int screenNum = DefaultScreen(dpy);
- sW = DisplayWidth(dpy, screenNum);
- sH = DisplayHeight(dpy, screenNum);
-
- XSetErrorHandler(OnXError);
- XSelectInput(dpy, root, SubstructureRedirectMask | SubstructureNotifyMask);
-
- for(int i = 0; i < sizeof(keyBinds)/sizeof(keyBinds[0]); i++)
- {
- XGrabKey(dpy, XKeysymToKeycode(dpy, keyBinds[i].keysym), keyBinds[i].modifiers, root, false, GrabModeAsync, GrabModeAsync);
- }
-
-
- vector<int> v;
- Frame rootFrame = {0, noID, false, noID, horizontal, v};
- currFrameID++;
- frames.insert(pair<int, Frame>(0, rootFrame));
-
- cout << "Begin mainloop\n";
-
- while(keepGoing)
- {
- XEvent e;
- XNextEvent(dpy, &e);
-
- switch(e.type)
- {
- case KeyPress:
- cout << "Keypress\n";
- keyPress(e.xkey);
- break;
- case ConfigureRequest:
- configureRequest(e.xconfigurerequest);
- break;
- case MapRequest:
- mapRequest(e.xmaprequest);
- break;
- case DestroyNotify:
- destroyNotify(e.xdestroywindow);
- case EnterNotify:
- //cout << e.xcrossing.window << "\n";
- if(e.xcrossing.window == root)
- break;
- XSetInputFocus(dpy, e.xcrossing.window, RevertToNone, CurrentTime);
- break;
- default:
- //cout << "Unhandled event, code: " << e.type << "!\n";
- break;
- }
- }
-
- XCloseDisplay(dpy);
-}
diff --git a/util.h~ b/util.h~
deleted file mode 100644
index 1e5cadb..0000000
--- a/util.h~
+++ /dev/null
@@ -1,36 +0,0 @@
-const char* evNames[37] = {0};
-evNames[2]="KeyPress";
-evNames[3]="KeyRelease";
-evNames[4]="ButtonPress";
-evNames[5]="ButtonRelease";
-evNames[6]="MotionNotify";
-evNames[7]="EnterNotify";
-evNames[8]="LeaveNotify";
-evNames[9]="FocusIn";
-evNames[10]="FocusOut";
-evNames[11]="KeymapNotify";
-evNames[12]="Expose";
-evNames[13]="GraphicsExpose";
-evNames[14]="NoExpose";
-evNames[15]="VisibilityNotify";
-evNames[16]="CreateNotify";
-evNames[17]="DestroyNotify";
-evNames[18]="UnmapNotify";
-evNames[19]="MapNotify";
-evNames[20]="MapRequest";
-evNames[21]="ReparentNotify";
-evNames[22]="ConfigureNotify";
-evNames[23]="ConfigureRequest";
-evNames[24]="GravityNotify";
-evNames[25]="ResizeRequest";
-evNames[26]="CirculateNotify";
-evNames[27]="CirculateRequest";
-evNames[28]="PropertyNotify";
-evNames[29]="SelectionClear";
-evNames[30]="SelectionRequest";
-evNames[31]="SelectionNotify";
-evNames[32]="ColormapNotify";
-evNames[33]="ClientMessage";
-evNames[34]="MappingNotify";
-evNames[35]="GenericEvent";
-evNames[36]="LASTEvent";