From 97e8f90bdd1802d4a08a5deb549fb1aa8e8d6768 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Wed, 19 Mar 2025 14:18:58 +0100 Subject: First commit --- main.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 main.c (limited to 'main.c') diff --git a/main.c b/main.c new file mode 100644 index 0000000..096f25b --- /dev/null +++ b/main.c @@ -0,0 +1,45 @@ +#include + +int main(int argc, char *argv[]) { + double inactivity_threshold = 60.0; + int right = 0; + + if (argc > 1) { + if (strcmp(argv[1], "--help") == 0) { + printf("Usage: osx-jiggler [inactivity_threshold]\n"); + printf(" inactivity_threshold: Time in seconds before the mouse moves " + "(default: 60.0)\n"); + printf(" --help: Show this help message\n"); + return 0; + } + + inactivity_threshold = atof(argv[1]); + if (inactivity_threshold <= 0) { + fprintf(stderr, + "Invalid inactivity time. Please provide a positive number.\n"); + return 1; + } + } + + while (1) { + double idle_time = CGEventSourceSecondsSinceLastEventType( + kCGEventSourceStateHIDSystemState, kCGAnyInputEventType); + + if (idle_time >= inactivity_threshold) { + CGEventRef event = CGEventCreate(NULL); + CGPoint cursor = CGEventGetLocation(event); + CFRelease(event); + + (right) ? (cursor.x += 1) : (cursor.x -= 1); + right = !right; + + event = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, cursor, + kCGMouseButtonLeft); + CGEventPost(kCGHIDEventTap, event); + CFRelease(event); + } + sleep(1); + } + + return 0; +} -- cgit v1.2.3