from pykeyboard import PyKeyboardEvent
class MonitorSuper(PyKeyboardEvent):
def tap(self, keycode, character, press):
'''Monitor Super key.'''
if character == 'Super_L':
if press:
print('Super pressed')
else:
print('Super released')
mon = MonitorSuper()
mon.run()
# simple demonstration of this wrapper
xkb = SimpleXkbWrapper()
# initialise wrapper for the X Keyboard Extension (v1.0) and
# open connection to default X display
display_name = None
major_in_out = 1
minor_in_out = 0
try:
ret = xkb.XkbOpenDisplay(display_name, major_in_out, minor_in_out)
except OSError, error:
print
print ' Error: %s' % error
print
exit(1)
# ... get modifier state of core keyboard ...
display_handle = ret['display_handle']
device_spec = xkb.XkbUseCoreKbd
xkbstaterec = xkb.XkbGetState(display_handle, device_spec)
# ... and extract and the information we need
print xkb.ExtractLocks(xkbstaterec)
我之前的回答显然完全错了,对不起。 我认为正确的方法是读取/dev/input/event1(?)
这个简短的测试为我显示了扫描码,即使终端没有焦点:
我不知道/dev/input/event1是否始终是键盘,也不知道如何确定哪一个键盘是键盘,但至少对我来说它起作用了
您可以为此目的使用PyUserInput,这是一个跨平台的解决方案,在您的情况下与X11兼容。
使用Super的示例:
这允许我在我的nix系统上获取*键的状态。
要从另一个文件调用字典的状态,只需调用
from FILENAME import *
,然后执行以下操作:为代码可以找到的创造者干杯,为引起我的注意干杯。
相关问题 更多 >
编程相关推荐