在我的家用Kubuntu机器上,我运行了一个脚本,在每次按键时都会发出蜂鸣声,无论哪个窗口或应用程序具有焦点,该脚本改编自这个富有见地的页面
#!/usr/bin/env python
from Xlib.display import Display
import os
import sys
ZERO=[]
for i in range(0,32):
ZERO.append(0)
ignorelist=[ZERO]
def main():
if os.getuid()==0:
os.system("modprobe pcspkr")
print("Speaker enabled, start as normal user")
sys.exit()
print("If no beep is heard, then run as root to enable pcspkr")
disp = Display()
while 1:
keymap=disp.query_keymap()
if keymap not in ignorelist:
os.system("beep")
if __name__ == '__main__':
main()
这个脚本运行得很好,但它将我的双核Intel机器的两个CPU占用率都保持在约80%左右,因此我几乎不能在机器上做其他事情。如何降低这个简单脚本的CPU要求而不干扰其操作?换句话说,无论哪个窗口或应用程序具有焦点,它仍然应该在按键时发出蜂鸣声。
如果Python中不可能实现这一点,那么我应该看看哪些其他技术?C语言?我会认为存在某些内核组件,可以通知应用程序按键:否则KDE如何处理全局快捷方式?我怎样才能使我的应用程序也接收到这些通知呢?
目标是在每按下一个键时发出蜂鸣声,因为我正在训练手指在机械键盘上打字,既不底部出击,也不错过按键。我刚从Cherry Browns转到Cherry Blues,缺乏触觉反馈需要一些时间来适应。
请注意,任何解决方案都必须发出蜂鸣声,无论哪个窗口具有焦点。此程序旨在作为后台守护程序运行在我使用的所有应用程序中。
谢谢。