diff options
| author | BossCode45 <human.cyborg42@gmail.com> | 2024-12-19 15:00:45 +1300 |
|---|---|---|
| committer | BossCode45 <human.cyborg42@gmail.com> | 2024-12-24 15:56:39 +1300 |
| commit | d1d4a63d4473cd4910b678cf5b385f622186fbd3 (patch) | |
| tree | e6a4a478ad63e29ab12479d88a700238b970ec26 /YATmsg | |
| parent | c3791254bfb127d64b329098bc792acaa9c30832 (diff) | |
| download | YATwm-d1d4a63d4473cd4910b678cf5b385f622186fbd3.tar.gz YATwm-d1d4a63d4473cd4910b678cf5b385f622186fbd3.zip | |
feat: Added IPC client side to main binary
Updated command line arguments to use `getopt_long'
Made it so both -v and --version work
Made it so that if you give it non recognised arguments they are sent
through the socket to the running window manager if possible.
Diffstat (limited to 'YATmsg')
| -rw-r--r-- | YATmsg/YATmsg | bin | 16680 -> 0 bytes | |||
| -rw-r--r-- | YATmsg/YATmsg.cpp | 75 | ||||
| -rw-r--r-- | YATmsg/makefile | 32 |
3 files changed, 0 insertions, 107 deletions
diff --git a/YATmsg/YATmsg b/YATmsg/YATmsg Binary files differdeleted file mode 100644 index ee34c4f..0000000 --- a/YATmsg/YATmsg +++ /dev/null diff --git a/YATmsg/YATmsg.cpp b/YATmsg/YATmsg.cpp deleted file mode 100644 index 7013861..0000000 --- a/YATmsg/YATmsg.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include <X11/X.h> -#include <X11/Xlib.h> - -#include <cstring> -#include <iostream> -#include <sys/socket.h> -#include <sys/un.h> -#include <unistd.h> - -using std::cout, std::endl; - -int main(int argc, const char** argv) -{ - if(argc < 2) - { - cout << "Not enough args" << endl; - return 1; - } - Display* dpy = XOpenDisplay(nullptr); - Window root = Window(DefaultRootWindow(dpy)); - Atom propName = XInternAtom(dpy, "YATWM_SOCKET_PATH", false); - Atom propType = XInternAtom(dpy, "STRING", false); - int format; - unsigned long length; - unsigned long after; - Atom type; - unsigned char* sockPath; - - if(XGetWindowProperty(dpy, root, propName, 0L, 32L, False, propType, &type, &format, &length, &after, &sockPath) != Success) - { - cout << "Failed to get path" << endl; - XFree(sockPath); - return 1; - } - - int sockfd = socket(AF_UNIX, SOCK_STREAM, 0); - if(sockfd == -1) - { - cout << "Failed to create socket" << endl; - XFree(sockPath); - return 1; - } - sockaddr_un address; - address.sun_family = AF_UNIX; - strcpy(address.sun_path, (const char*)sockPath); - if(connect(sockfd, (sockaddr*) &address, sizeof(address)) == -1) - { - cout << "Failed connect" << endl; - XFree(sockPath); - return 1; - } - - std::string message; - for(int i = 1; i < argc; i++) - { - message += argv[i]; - if(i != argc - 1) - message += " "; - } - cout << "Sending: " << message << endl; - if(write(sockfd, message.c_str(), message.length()) == -1) - { - cout << "Failed write" << endl; - XFree(sockPath); - return 1; - } - - char recv[128]; - read(sockfd, recv, 128); - cout << recv << endl; - - close(sockfd); - XFree(sockPath); - return 0; -} diff --git a/YATmsg/makefile b/YATmsg/makefile deleted file mode 100644 index 6aeee67..0000000 --- a/YATmsg/makefile +++ /dev/null @@ -1,32 +0,0 @@ -.PHONY: clean -CXX := g++ -CXXFLAGS := -std=c++17 # -g -fsanitize=address -fno-omit-frame-pointer -LINKFLAGS := -lX11 -OBJS_DIR := ../build -OUT_DIR := ../out/ -SOURCE_DIR := ./ -EXEC := YATmsg -SOURCE_FILES := $(wildcard $(SOURCE_DIR)/*.cpp) -SOURCE_HEADERS := $(wildcard $(SOURCE_DIR)/*.h) -OBJS := $(subst $(SOURCE_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(SOURCE_FILES))) -INSTALL_DIR = / - -$(EXEC): $(OBJS) - $(CXX) $(OBJS) $(CXXFLAGS) $(LINKFLAGS) -o $(EXEC) - -$(OBJS_DIR)/%.o : $(SOURCE_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -i: $(EXEC) - sudo install -D -m 755 $(EXEC) $(INSTALL_DIR)usr/bin/$(EXEC) -install: i -r: - sudo rm $(INSTALL_DIR)usr/bin/$(EXEC) -remove: r - -#Files to be compiled -$(OBJS_DIR)/YATmsg.o: $(SOURCE_FILES) $(SOURCE_HEADERS) - -clean: - rm $(OBJS_DIR)/*.o - rm $(EXEC) |
