Add make file and Create macro to enable local path of autorandr

Signed-off-by: Matheus Horstmann <horstmannmat@hotmail.com>
This commit is contained in:
Matheus Horstmann 2023-05-29 22:33:12 -03:00 committed by Phillip Berndt
parent 2452110831
commit 34d3aad795
2 changed files with 73 additions and 9 deletions

View File

@ -10,6 +10,13 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <time.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 // indent -kr -i8
static int VERBOSE = 0; static int VERBOSE = 0;
@ -21,7 +28,7 @@ static void sigterm_handler(int signum)
kill(getpid(), 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; va_list args;
@ -33,13 +40,17 @@ static void ar_log(const char *format, ...)
fflush(stdout); fflush(stdout);
} }
static int ar_launch() static int ar_launch(void)
{ {
pid_t pid = fork(); pid_t pid = fork();
if (pid == 0) { if (pid == 0) {
static char *argv[] = static char *argv[] = { AUTORANDR_PATH, "--change", "--default", "default", NULL};
{ "/usr/bin/autorandr", "--change", "--default", "default", NULL }; if (execve(argv[0], argv, environ) == -1) {
execve(argv[0], argv, environ); int errsv = errno;
fprintf(stderr, "Error executing file: %s\n", strerror(errsv));
exit(errsv);
}
exit(127); exit(127);
} else { } else {
waitpid(pid, 0, 0); waitpid(pid, 0, 0);
@ -147,10 +158,10 @@ int main(int argc, char **argv)
break; break;
} }
// ar_log("Event type: %" PRIu8 "\n", evt->response_type); ar_log("Event type: %" PRIu8 "\n", evt->response_type);
// ar_log("screen change masked: %" PRIu8 "\n", ar_log("screen change masked: %" PRIu8 "\n",
// evt->response_type & evt->response_type &
// XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE); XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE);
if (evt->response_type & if (evt->response_type &
XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE) { XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE) {

View File

@ -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