]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
Add make file and Create macro to enable local path of autorandr
authorMatheus Horstmann <horstmannmat@hotmail.com>
Tue, 30 May 2023 01:33:12 +0000 (22:33 -0300)
committerPhillip Berndt <phillip.berndt@googlemail.com>
Thu, 22 Jun 2023 14:31:50 +0000 (16:31 +0200)
Signed-off-by: Matheus Horstmann <horstmannmat@hotmail.com>
contrib/autorandr_launcher/autorandr_launcher.c
contrib/autorandr_launcher/makefile [new file with mode: 0644]

index 385d16f9370a5acffa5499e55b6c01af145a8860..631c167f3669684a3323f107a1e229a235305fe4 100644 (file)
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <time.h>
+#include <inttypes.h>
+#include <errno.h>
+#include <string.h>
+
+#ifndef AUTORANDR_PATH
+#define AUTORANDR_PATH "/usr/bin/autorandr"
+#endif
 
 // indent -kr -i8
 static int VERBOSE = 0;
@@ -21,7 +28,7 @@ static void sigterm_handler(int signum)
        kill(getpid(), signum);
 }
 
-static void ar_log(const char *format, ...)
+__attribute__((format(printf, 1, 2))) static void ar_log(const char *format, ...)
 {
        va_list args;
 
@@ -33,13 +40,17 @@ static void ar_log(const char *format, ...)
        fflush(stdout);
 }
 
-static int ar_launch()
+static int ar_launch(void)
 {
        pid_t pid = fork();
        if (pid == 0) {
-               static char *argv[] =
-                   { "/usr/bin/autorandr", "--change", "--default", "default", NULL };
-               execve(argv[0], argv, environ);
+               static char *argv[] = { AUTORANDR_PATH, "--change", "--default", "default", NULL};
+               if (execve(argv[0], argv, environ) == -1) {
+               int errsv = errno;
+                       fprintf(stderr, "Error executing file: %s\n", strerror(errsv));
+                       exit(errsv);
+        }
+
                exit(127);
        } else {
                waitpid(pid, 0, 0);
@@ -147,10 +158,10 @@ int main(int argc, char **argv)
                        break;
                }
 
-               // ar_log("Event type: %" PRIu8 "\n", evt->response_type);
-               // ar_log("screen change masked: %" PRIu8 "\n",
-               //       evt->response_type &
-               //       XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE);
+               ar_log("Event type: %" PRIu8 "\n", evt->response_type);
+               ar_log("screen change masked: %" PRIu8 "\n",
+                     evt->response_type &
+                      XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE);
 
                if (evt->response_type &
                    XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE) {
diff --git a/contrib/autorandr_launcher/makefile b/contrib/autorandr_launcher/makefile
new file mode 100644 (file)
index 0000000..898f55f
--- /dev/null
@@ -0,0 +1,53 @@
+CFLAGS  = -pipe \
+       -o2 \
+       -Wstrict-overflow=5 -fstack-protector-all \
+       -W -Wall -Wextra \
+       -Wbad-function-cast \
+       -Wcast-align \
+       -Wcast-qual \
+       -Wconversion \
+       -Wfloat-equal \
+       -Wformat-y2k \
+       -Winit-self \
+       -Winline \
+       -Winvalid-pch \
+       -Wmissing-declarations \
+       -Wmissing-field-initializers \
+       -Wmissing-format-attribute \
+       -Wmissing-include-dirs \
+       -Wmissing-noreturn \
+       -Wmissing-prototypes \
+       -Wnested-externs \
+       -Wnormalized=nfc \
+       -Wold-style-definition \
+       -Woverlength-strings \
+       -Wpacked \
+       -Wpadded \
+       -Wpointer-arith \
+       -Wredundant-decls \
+       -Wshadow \
+       -Wsign-compare \
+       -Wstack-protector \
+       -Wstrict-aliasing=2 \
+       -Wstrict-prototypes \
+       -Wundef \
+       -Wunsafe-loop-optimizations \
+       -Wvolatile-register-var \
+       -Wwrite-strings
+
+
+LAUNCHER_LDLIBS=$(shell pkg-config --libs pkg-config xcb xcb-randr 2>/dev/null)
+LAUNCHER_CFLAGS=$(shell pkg-config --cflags pkg-config xcb xcb-randr 2>/dev/null)
+USER_DEFS="-DAUTORANDR_PATH=\"$(shell which autorandr 2>/dev/null)\""
+#------------------------------------------------------------------------------
+.PHONY : all clean
+
+#------------------------------------------------------------------------------
+all : autorandr-launcher
+
+autorandr-launcher: autorandr_launcher.c
+       $(CC) $(CFLAGS) $(LAUNCHER_CFLAGS) $(USER_DEFS) -o $@ $+ $(LAUNCHER_LDLIBS)
+
+#------------------------------------------------------------------------------
+clean :
+       $(RM) autorandr-launcher *.o