summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-25 01:26:21 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-25 01:26:21 +0100
commitb1b86d7e54e037a83850eb45df801b29b0ea1fbf (patch)
treef55e7939ec64a77705209b67ed65842e1fb6988b /main.c
parent288f12d36843b6e404adb35857fcd87943e63944 (diff)
downloadglitch-b1b86d7e54e037a83850eb45df801b29b0ea1fbf.tar.gz
Add SIGUSR1 to restart the window manager
Diffstat (limited to 'main.c')
-rw-r--r--main.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/main.c b/main.c
index 9453557..fff831b 100644
--- a/main.c
+++ b/main.c
@@ -1,10 +1,18 @@
#include <pthread.h>
+#include <signal.h>
#include <unistd.h>
#include "glitch.h"
WindowManager wm = {0};
+void handle_signal(int signal) {
+ wm.running = 0;
+ wm.restart = 1;
+ printf("running: %d\n", wm.running);
+ log_message(stderr, LOG_DEBUG, "Signal received: %d", signal);
+}
+
static void* expose_timer_thread(void* arg) {
(void)arg;
@@ -49,6 +57,10 @@ int main(int argc, char *argv[]) {
pthread_detach(timer_tid);
}
+ // SIGUSR1 is used for restarting the window manager.
+ // kill -s SIGUSR1 $(pidof glitch)
+ signal(SIGUSR1, handle_signal);
+
wm.running = 1;
while(wm.running) {
XNextEvent(wm.dpy, &wm.ev);