display.grab_keyboard を使用するとすぐに、他のウィンドウは自分のフォーカスを認識していないようです。
キーボードグラブを実行すると、他のウィンドウを選択してキーイベントを送信することもできますが、このウィンドウがテキスト入力の場合、点滅するカーソルはありません。
フォーカスイベントを生成するgrab_keyboardについて何かを読みましたが、それはすべてのフォーカスイベントをブロックするという意味ではありませんね?
ここに来ないのは何ですか?
from Xlib import X,XK
from Xlib.display import Display
import signal,sys
root = None
display = None
def main():
# current display
global display,root
display = Display()
root = display.screen().root
root.change_attributes(event_mask = X.KeyPressMask|X.KeyReleaseMask)
root.grab_keyboard(True, X.GrabModeAsync, X.GrabModeAsync,X.CurrentTime)
signal.signal(signal.SIGALRM, lambda a,b:sys.exit(1))
signal.alarm(10)
while True:
event = display.next_event()
print event.type
main()