使用xinput的shell脚本可以轻松完成此操作:
#!/bin/sh
do_it() {
# need error checking there. We should also restrict which device gets
# deactivated, by checking other properties.
keyboard_ids="$(xinput list | sed -rn 's/.*id=([0-9]+).*slave\s+keyboard.*/\1/p')"
for keyboard_id in $keyboard_ids; do
# 121 is "Device Active".
# use xinput watch-props $device_id to see some properties.
xinput set-int-prop $keyboard_id 121 8 $1;
done;
}
# you maybe don't want to exit in case of failure there.
do_it 0 ; sleep 5; do_it 1
这个逻辑很容易在Python中重写.如果安装xinput是有问题的,那么获取xinput的源并尝试使用像python-xlib这样的库在Python中重新实现它可能是个好主意.