我有这个奇怪的华硕键盘的笔记本,由于某些原因取代End
键有Power Off
(Pictures)。我想撤消损坏,让我的Ubuntu Linux将此密钥解释为End
。
我知道如何使用acpid截取Power Off
并让它以root身份触发任何命令。
我希望它模拟扫描代码0xe0 0x4f
,然后暂停50ms,然后0xe0 0xcf
。
如何在现代笔记本电脑和Linux上通过扫描码模拟低级按键?
我尝试使用以下程序将扫描码写入端口
/* gcc -O2 -s -Wall -osend_to_keyboard main.c */
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
int main(int argc, char *argv[]) {
int i;
ioperm(0x60, 3, 1);
for (i = 1; i < argc; i++) {
int x = strtol(argv[i], 0, 16);
usleep(300);
outb(x, 0x60);
}
return 0;
}
但没有发生任何事。也许代码对我的键盘不起作用。我从来没有在Linux上做过这么低级的事情,所以我缺乏适当的经验。
对于那些横向思考的人:我不想仅仅使用例如模拟X上的按键。 xdotool。; - )