diff --git a/main b/main deleted file mode 100755 index 09b6974..0000000 Binary files a/main and /dev/null differ diff --git a/main.c b/main.c deleted file mode 100644 index d08c778..0000000 --- a/main.c +++ /dev/null @@ -1,137 +0,0 @@ -// https://stackoverflow.com/questions/20943322/accessing-keys-from-linux-input-device - -#include -#include -#include -#include -#include -#include -#include - -static const char *const evval[3] = { - "RELEASED", - "PRESSED ", - "REPEATED" -}; - -/** - * +--+--+--+--+ - * |30|48|46|32| - * +--+--+--+--+ - * |18|33|34|35| - * +--+--+--+--+ - * |23|36|37|38| - * +--+--+--+--+ - * |50|49|24|25| - * +--+--+--+--+ - * |16|19|31|20| - * +--+--+--+--+ -* */ - -enum p_key { - p11 = 30, - p12 = 48, - p13 = 46, - p14 = 32, - p21 = 18, - p22 = 33, - p23 = 34, - p24 = 35, - p31 = 23, - p32 = 36, - p33 = 37, - p34 = 38, - p41 = 50, - p42 = 49, - p43 = 24, - p44 = 25, - p51 = 16, - p52 = 19, - p53 = 31, - p54 = 20 -}; - -int main(void) -{ - const char* dev = "/dev/input/by-id/usb-MAX_Falcon_20_RGB-if02-event-kbd"; //at.event26 - struct input_event ev; - ssize_t n; - int fd; - - fd = open(dev, O_RDONLY); - if (fd == -1) { - fprintf(stderr, "Cannot open %s: %s.\n", dev, strerror(errno)); - return EXIT_FAILURE; - } - - // This grabs the device, so the we do not just listen to events but we actually consume them! This way the keypresses are not handled by any other handler! - // https://stackoverflow.com/questions/29942421/read-barcodes-from-input-event-linux-c/29956584#29956584 - if (ioctl(fd, EVIOCGRAB, 1)) { - const int saved_errno = errno; - close(fd); - return errno = (saved_errno) ? errno : EACCES; - } - - // Main-Loop - while (1) { - n = read(fd, &ev, sizeof ev); - //n = ioctl(fd, EVIOCGRAB, 1); - if (n == (ssize_t)-1) { - if (errno == EINTR) - continue; - else - break; - } else - if (n != sizeof ev) { - errno = EIO; - break; - } - if (ev.type == EV_KEY && ev.value >= 0 && ev.value <= 2) { - //printf("%s 0x%04x (%d)\n", evval[ev.value], (int)ev.code, (int)ev.code); - if (evval[ev.value] == "RELEASED") { - switch((int)ev.code) { - case p11: - system("notify-send 'Screenlayout: default'; /home/tbehrendt/.screenlayout/default.sh"); - break; - case p12: - system("notify-send 'Screenlayout: main low res'; /home/tbehrendt/.screenlayout/main_low_res.sh"); - break; - case p13: - system("notify-send 'Screenlayout: tv mirror'; /home/tbehrendt/.screenlayout/tv_mirror.sh"); - break; - case p14: - system("notify-send 'Screenlayout: tv standalone'; /home/tbehrendt/.screenlayout/tv_standalone.sh"); - break; - case p21: printf("p21\n"); break; - case p22: printf("p22\n"); break; - case p23: printf("p23\n"); break; - case p24: printf("p24\n"); break; - case p31: printf("p31\n"); break; - case p32: printf("p32\n"); break; - case p33: printf("p33\n"); break; - case p34: printf("p34\n"); break; - case p41: printf("p41\n"); break; - case p42: printf("p42\n"); break; - case p43: printf("p43\n"); break; - case p44: printf("p44\n"); break; - case p51: - system("notify-send mute toggled;pactl set-sink-mute @DEFAULT_SINK@ toggle"); - break; - case p52: - system("notify-send 'VOL +5%'; pactl set-sink-volume @DEFAULT_SINK@ +5%"); - break; - case p53: - system("notify-send 'VOL -5%'; pactl set-sink-volume @DEFAULT_SINK@ -5%"); - break; - case p54: - system("/home/tbehrendt/.scripts/makroboard/p51.sh &"); - break; - } - } - } - - } - fflush(stdout); - fprintf(stderr, "%s.\n", strerror(errno)); - return EXIT_FAILURE; -}