// Thanks to Jonathan for this // Needs CoreFoundation and IOKit // http://forums3.armagetronad.net/viewtopic.php?f=12&t=3364&sid=0c0b3d98e3a999f1bcaf6aa519231917&start=15 #include #include #include #include #include int main(int argc, char **argv) { const int32_t accel = -0x10000; io_connect_t handle = NXOpenEventStatus(); const char *name = strrchr(argv[0], '/'); if (name) ++name; // one past the last slash else name = argv[0]; // no slashes, just eat it whole if (!handle) { fprintf(stderr, "NXOpenEventStatus is uncooperative\n"); } else { kern_return_t ret; if (strcasestr(name, "mouse")) { ret = IOHIDSetParameter(handle, CFSTR(kIOHIDMouseAccelerationType), &accel, sizeof accel); if (ret != KERN_SUCCESS) fprintf(stderr, "Error fixing mouse: %d\n", (int)ret); } if (strcasestr(name, "trackpad")) { ret = IOHIDSetParameter(handle, CFSTR(kIOHIDTrackpadAccelerationType), &accel, sizeof accel); if (ret != KERN_SUCCESS) fprintf(stderr, "Error fixing trackpad: %d\n", (int)ret); } NXCloseEventStatus(handle); } return 0; }