这是代码的一部分:
extra_btn_fd = open("/dev/input/by-id/usb-Razer_Razer_Naga_2014-event-mouse", O_RDONLY);
ioctl(extra_btn_fd, EVIOCGRAB, 1);
问题是,它不仅可以控制2个额外的按钮(向前和向后),还可以控制点击按钮(我认为滚动)。
我试图完全控制2个前进和后退按钮,而不是点击。
您必须在代码中过滤事件。例如,如下所示
while(1) {
struct input_event event;
read(extra_btn_fd, &event, sizeof(event));
if (event.type == EV_KEY && (event.code == BTN_FORWARD || event.code == BTN_BACK) {
printf("%d %d\n", event.type, event.code);
}
}
通过在按钮映射中包含2个按钮来解决xinput,如下所示:
xinput set-button-map $NAGAID2 1 2 3 4 5 6 7 11 10 8 9 13 14 15 275 276