diff --git a/programs/sxmo_screenlock.c b/programs/sxmo_screenlock.c index f1b0b00..82325d1 100644 --- a/programs/sxmo_screenlock.c +++ b/programs/sxmo_screenlock.c @@ -17,149 +17,147 @@ static char * brightnessfile = "/sys/devices/platform/backlight/backlight/backli void updatepineled(int red, int brightness) { - sprintf( - pineledcommand, - "sh -c 'echo %d > /sys/class/leds/%s:indicator/brightness'", - brightness, - red ? "red" : "blue" - ); - system(pineledcommand); + sprintf( + pineledcommand, + "sh -c 'echo %d > /sys/class/leds/%s:indicator/brightness'", + brightness, + red ? "red" : "blue" + ); + system(pineledcommand); } void updatescreenon(int on) { - int b = on ? oldbrightness : 0; - sprintf(screentogglecommand, "sh -c 'echo %d > %s'", b, brightnessfile); - system(screentogglecommand); - updatepineled(0, b ? 1 : 0); - updatepineled(1, b ? 0 : 1); + int b = on ? oldbrightness : 0; + sprintf(screentogglecommand, "sh -c 'echo %d > %s'", b, brightnessfile); + system(screentogglecommand); + updatepineled(0, b ? 1 : 0); + updatepineled(1, b ? 0 : 1); } void cleanup() { - updatescreenon(1); - updatepineled(1, 0); - updatepineled(0, 0); + updatescreenon(1); + updatepineled(1, 0); + updatepineled(0, 0); } static void die(const char *err, ...) { - fprintf(stderr, "Error: %s", err); - cleanup(); - exit(1); + fprintf(stderr, "Error: %s", err); + cleanup(); + exit(1); } static void usage(void) { - die("usage: slock [-v] [cmd [arg ...]]\n"); + die("usage: slock [-v] [cmd [arg ...]]\n"); } // Loosely derived from suckless' slock's lockscreen binding logic but // alot more coarse, intentionally so can be triggered while grab_key // for dwm multikey path already holding.. void lockscreen(Display *dpy, int screen) { - int i, ptgrab, kbgrab; - //XSetWindowAttributes wa; - Window root; - //win, - root = RootWindow(dpy, screen); - //wa.override_redirect = 1; - //win = XCreateWindow(dpy, root, 0, 0, - // DisplayWidth(dpy, screen), - // DisplayHeight(dpy, screen), - // 0, DefaultDepth(dpy, screen), - // CopyFromParent, - // DefaultVisual(dpy, screen), - // CWOverrideRedirect | CWBackPixel, &wa); - for (i = 0, ptgrab = kbgrab = -1; i < 9999999; i++) { - if (ptgrab != GrabSuccess) { - ptgrab = XGrabPointer(dpy, root, False, - ButtonPressMask | ButtonReleaseMask | - PointerMotionMask, GrabModeAsync, - GrabModeAsync, None, None, CurrentTime); - } - if (kbgrab != GrabSuccess) { - kbgrab = XGrabKeyboard(dpy, root, True, - GrabModeAsync, GrabModeAsync, CurrentTime); - } - if (ptgrab == GrabSuccess && kbgrab == GrabSuccess) { - XSelectInput(dpy, root, SubstructureNotifyMask); - return; - } - usleep(100000); - } - return; + int i, ptgrab, kbgrab; + //XSetWindowAttributes wa; + Window root; + //win, + root = RootWindow(dpy, screen); + //wa.override_redirect = 1; + //win = XCreateWindow(dpy, root, 0, 0, + // DisplayWidth(dpy, screen), + // DisplayHeight(dpy, screen), + // 0, DefaultDepth(dpy, screen), + // CopyFromParent, + // DefaultVisual(dpy, screen), + // CWOverrideRedirect | CWBackPixel, &wa); + for (i = 0, ptgrab = kbgrab = -1; i < 9999999; i++) { + if (ptgrab != GrabSuccess) { + ptgrab = XGrabPointer(dpy, root, False, + ButtonPressMask | ButtonReleaseMask | + PointerMotionMask, GrabModeAsync, + GrabModeAsync, None, None, CurrentTime); + } + if (kbgrab != GrabSuccess) { + kbgrab = XGrabKeyboard(dpy, root, True, + GrabModeAsync, GrabModeAsync, CurrentTime); + } + if (ptgrab == GrabSuccess && kbgrab == GrabSuccess) { + XSelectInput(dpy, root, SubstructureNotifyMask); + return; + } + usleep(100000); + } } void readinputloop(Display *dpy, int screen) { - KeySym keysym; - XEvent ev; - char buf[32]; - - while (running && !XNextEvent(dpy, &ev)) { - if (ev.type == KeyPress) { - XLookupString(&ev.xkey, buf, sizeof(buf), &keysym, 0); - if (lastkeysym == keysym) { - lastkeyn++; - } else { - lastkeysym = keysym; - lastkeyn = 1; - } - - if (lastkeyn < 3) - continue; - - lastkeyn = 0; - lastkeysym = NULL; - - switch (keysym) { - case XF86XK_AudioRaiseVolume: - case XF86XK_AudioLowerVolume: - screenon = !screenon; - updatescreenon(screenon); - break; - case XF86XK_PowerOff: - cleanup(); - running = 0; - break; - } - } - } - + KeySym keysym; + XEvent ev; + char buf[32]; + + while (running && !XNextEvent(dpy, &ev)) { + if (ev.type == KeyPress) { + XLookupString(&ev.xkey, buf, sizeof(buf), &keysym, 0); + if (lastkeysym == keysym) { + lastkeyn++; + } else { + lastkeysym = keysym; + lastkeyn = 1; + } + + if (lastkeyn < 3) + continue; + + lastkeyn = 0; + lastkeysym = NULL; + + switch (keysym) { + case XF86XK_AudioRaiseVolume: + case XF86XK_AudioLowerVolume: + screenon = !screenon; + updatescreenon(screenon); + break; + case XF86XK_PowerOff: + cleanup(); + running = 0; + break; + } + } + } } int getoldbrightness() { - char * buffer = 0; - long length; - FILE * f = fopen(brightnessfile, "rb"); - if (f) { - fseek(f, 0, SEEK_END); - length = ftell(f); - fseek(f, 0, SEEK_SET); - buffer = malloc(length); - if (buffer) { - fread(buffer, 1, length, f); - } - fclose(f); - } - if (buffer) { - oldbrightness = atoi(buffer); - } + char * buffer = 0; + long length; + FILE * f = fopen(brightnessfile, "rb"); + if (f) { + fseek(f, 0, SEEK_END); + length = ftell(f); + fseek(f, 0, SEEK_SET); + buffer = malloc(length); + if (buffer) { + fread(buffer, 1, length, f); + } + fclose(f); + } + if (buffer) { + oldbrightness = atoi(buffer); + } } int main(int argc, char **argv) { - Display *dpy; - Screen *screen; - - if (setuid(0)) - die("setuid(0) failed\n"); - if (!(dpy = XOpenDisplay(NULL))) - die("Cannot open display\n"); - - screen = XDefaultScreen(dpy); - XSync(dpy, 0); - getoldbrightness(); - lockscreen(dpy, screen); - updatescreenon(1); - readinputloop(dpy, screen); - return 0; + Display *dpy; + Screen *screen; + + if (setuid(0)) + die("setuid(0) failed\n"); + if (!(dpy = XOpenDisplay(NULL))) + die("Cannot open display\n"); + + screen = XDefaultScreen(dpy); + XSync(dpy, 0); + getoldbrightness(); + lockscreen(dpy, screen); + updatescreenon(1); + readinputloop(dpy, screen); + return 0; } diff --git a/programs/sxmo_setpinebacklight.c b/programs/sxmo_setpinebacklight.c index 6f14c01..0352c82 100644 --- a/programs/sxmo_setpinebacklight.c +++ b/programs/sxmo_setpinebacklight.c @@ -7,39 +7,39 @@ char * pbpScreen = "/sys/class/backlight/edp-backlight/brightness"; char * ppScreen = "/sys/devices/platform/backlight/backlight/backlight/brightness"; void usage() { - fprintf(stderr, "Usage: sxmo_setpinebacklight [number]\n"); + fprintf(stderr, "Usage: sxmo_setpinebacklight [number]\n"); } void writeFile(char *filepath, int brightness) { - FILE *f; - f = fopen(filepath, "w+"); - fprintf(f, "%d\n", brightness); - fclose(f); + FILE *f; + f = fopen(filepath, "w+"); + fprintf(f, "%d\n", brightness); + fclose(f); } int main(int argc, char *argv[]) { - char * command; - int brightness; + char * command; + int brightness; - if (argc < 2) { - usage(); - return 1; - } - argc--; - brightness = atoi(argv[argc--]); + if (argc < 2) { + usage(); + return 1; + } + argc--; + brightness = atoi(argv[argc--]); - if (setuid(0)) { - fprintf(stderr, "setuid(0) failed\n"); - return 1; - } + if (setuid(0)) { + fprintf(stderr, "setuid(0) failed\n"); + return 1; + } - if (access(pbpScreen, F_OK) != -1) { - writeFile(pbpScreen, brightness); - fprintf(stderr, "Set PBP brightness to %d\n", brightness); - } else if (access(ppScreen, F_OK) != -1) { - writeFile(ppScreen, brightness); - fprintf(stderr, "Set PP brightness to %d\n", brightness); - } else { - fprintf(stderr, "Neither PP or PBP Screen found!\n"); - } + if (access(pbpScreen, F_OK) != -1) { + writeFile(pbpScreen, brightness); + fprintf(stderr, "Set PBP brightness to %d\n", brightness); + } else if (access(ppScreen, F_OK) != -1) { + writeFile(ppScreen, brightness); + fprintf(stderr, "Set PP brightness to %d\n", brightness); + } else { + fprintf(stderr, "Neither PP or PBP Screen found!\n"); + } } diff --git a/programs/sxmo_setpineled.c b/programs/sxmo_setpineled.c index d808e22..eada14d 100644 --- a/programs/sxmo_setpineled.c +++ b/programs/sxmo_setpineled.c @@ -4,53 +4,53 @@ #include void usage() { - fprintf(stderr, "Usage: setpineled [red|green|blue|white] [0-255]\n"); + fprintf(stderr, "Usage: setpineled [red|green|blue|white] [0-255]\n"); } int main(int argc, char *argv[]) { - int brightness; - char * color; - char * command; - char * type; + int brightness; + char * color; + char * command; + char * type; - if (argc < 2) { - usage(); - return 1; - } - argc--; - brightness = atoi(argv[argc--]); + if (argc < 2) { + usage(); + return 1; + } + argc--; + brightness = atoi(argv[argc--]); - if (brightness < 0 || brightness > 255) { - usage(); - return 1; - } + if (brightness < 0 || brightness > 255) { + usage(); + return 1; + } - color = argv[argc--]; - if ( - strcmp(color, "red") && - strcmp(color, "blue") && - strcmp(color, "green") && - strcmp(color, "white") - ) { - usage(); - return 1; - } + color = argv[argc--]; + if ( + strcmp(color, "red") && + strcmp(color, "blue") && + strcmp(color, "green") && + strcmp(color, "white") + ) { + usage(); + return 1; + } - if (!strcmp(color, "white")) { - type = "flash"; - } else { - type = "indicator"; - } + if (!strcmp(color, "white")) { + type = "flash"; + } else { + type = "indicator"; + } - command = malloc(80); - sprintf( - command, - "sh -c 'echo %d > /sys/class/leds/%s:%s/brightness'", - brightness, color, type - ); - if (setuid(0)) { - fprintf(stderr, "setuid(0) failed\n"); - } else { - return system(command); - } + command = malloc(80); + sprintf( + command, + "sh -c 'echo %d > /sys/class/leds/%s:%s/brightness'", + brightness, color, type + ); + if (setuid(0)) { + fprintf(stderr, "setuid(0) failed\n"); + } else { + return system(command); + } } diff --git a/programs/sxmo_vibratepine.c b/programs/sxmo_vibratepine.c index ddcba5b..df046ce 100644 --- a/programs/sxmo_vibratepine.c +++ b/programs/sxmo_vibratepine.c @@ -14,97 +14,97 @@ void syscall_error(int is_err, const char* fmt, ...) { - va_list ap; + va_list ap; - if (!is_err) - return; + if (!is_err) + return; - printf("ERROR: "); - va_start(ap, fmt); - vprintf(fmt, ap); - va_end(ap); - printf(": %s\n", strerror(errno)); + printf("ERROR: "); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); + printf(": %s\n", strerror(errno)); - exit(1); + exit(1); } int open_event_dev(const char* name_needle, int flags) { - char path[256]; - char name[256]; - int fd, ret; - - // find the right device and open it - for (int i = 0; i < 10; i++) { - snprintf(path, sizeof path, "/dev/input/event%d", i); - fd = open(path, flags); - if (fd < 0) - continue; - - ret = ioctl(fd, EVIOCGNAME(256), name); - if (ret < 0) - continue; - - if (strstr(name, name_needle)) - return fd; - - close(fd); - } - - errno = ENOENT; - return -1; + char path[256]; + char name[256]; + int fd, ret; + + // find the right device and open it + for (int i = 0; i < 10; i++) { + snprintf(path, sizeof path, "/dev/input/event%d", i); + fd = open(path, flags); + if (fd < 0) + continue; + + ret = ioctl(fd, EVIOCGNAME(256), name); + if (ret < 0) + continue; + + if (strstr(name, name_needle)) + return fd; + + close(fd); + } + + errno = ENOENT; + return -1; } void usage() { - fprintf(stderr, "Usage: sxmo_vibratepine duration_ms\n"); - fprintf(stderr, " sxmo_vibratepine duration_ms strength_number\n"); + fprintf(stderr, "Usage: sxmo_vibratepine duration_ms\n"); + fprintf(stderr, " sxmo_vibratepine duration_ms strength_number\n"); } int main(int argc, char* argv[]) { - int fd, ret; - struct pollfd pfds[1]; - int effects; + int fd, ret; + struct pollfd pfds[1]; + int effects; - int durationMs, strength; + int durationMs, strength; - if (argc < 2) { - usage(); - return 1; - } - argc--; + if (argc < 2) { + usage(); + return 1; + } + argc--; - if (argc > 1) { - strength = atoi(argv[argc--]); - } else { - strength = 4000; - } + if (argc > 1) { + strength = atoi(argv[argc--]); + } else { + strength = 4000; + } - durationMs = atoi(argv[argc--]); + durationMs = atoi(argv[argc--]); - fd = open_event_dev("vibrator", O_RDWR | O_CLOEXEC); - syscall_error(fd < 0, "Can't open vibrator event device"); - ret = ioctl(fd, EVIOCGEFFECTS, &effects); - syscall_error(ret < 0, "EVIOCGEFFECTS failed"); + fd = open_event_dev("vibrator", O_RDWR | O_CLOEXEC); + syscall_error(fd < 0, "Can't open vibrator event device"); + ret = ioctl(fd, EVIOCGEFFECTS, &effects); + syscall_error(ret < 0, "EVIOCGEFFECTS failed"); - struct ff_effect e = { - .type = FF_RUMBLE, - .id = -1, - .u.rumble = { .strong_magnitude = strength }, - }; + struct ff_effect e = { + .type = FF_RUMBLE, + .id = -1, + .u.rumble = { .strong_magnitude = strength }, + }; - ret = ioctl(fd, EVIOCSFF, &e); - syscall_error(ret < 0, "EVIOCSFF failed"); + ret = ioctl(fd, EVIOCSFF, &e); + syscall_error(ret < 0, "EVIOCSFF failed"); - struct input_event play = { .type = EV_FF, .code = e.id, .value = 3 }; - ret = write(fd, &play, sizeof play); - syscall_error(ret < 0, "write failed"); + struct input_event play = { .type = EV_FF, .code = e.id, .value = 3 }; + ret = write(fd, &play, sizeof play); + syscall_error(ret < 0, "write failed"); - usleep(durationMs * 1000); + usleep(durationMs * 1000); - ret = ioctl(fd, EVIOCRMFF, e.id); - syscall_error(ret < 0, "EVIOCRMFF failed"); + ret = ioctl(fd, EVIOCRMFF, e.id); + syscall_error(ret < 0, "EVIOCRMFF failed"); - close(fd); - return 0; + close(fd); + return 0; }