From 7883981fe9976b3933959c04fa8cc62158c70855 Mon Sep 17 00:00:00 2001 From: uint23 Date: Mon, 14 Apr 2025 22:18:55 +0100 Subject: inital window manager setup. check for other window managers too --- src/utils.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/utils.c (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..c99e74c --- /dev/null +++ b/src/utils.c @@ -0,0 +1,31 @@ +#include +#include +#include "util.h" + +void +otherwm(void) +{ + XSetErrorHandler(otherwmerr); + XChangeWindowAttributes(dpy, root, CWEventMask, + &(XSetWindowAttributes){.event_mask = SubstructureRedirectMask}); + XSync(dpy, False); + XSetErrorHandler(xerr); + XSync(dpy, False); +} + +int +otherwmerr(Display *dpy, XErrorEvent *ee) +{ + errx(0, "sxwm: another window manager is already running, please close it"); + return 0; + if (dpy && ee) return 0; +} + +int +xerr(Display *dpy, XErrorEvent *ee) +{ + fprintf(stderr, "sxwm: fatal error\nrequest code:%d\nerror code:%d", + ee->request_code, ee->error_code); + return 0; + if (dpy && ee) return 0; +} -- cgit v1.2.3