如果运行 xev 并按 Alt,它会生成以下事件:
KeyPress event, serial 37, synthetic NO, window 0xa600001,
root 0x5bc, subw 0x0, time 823983987, (672,346), root:(672,411),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
在这种情况下“合成”到底意味着什么?
答案1
如果synthetic
是YES
而不是NO
,则意味着该事件是“假”事件,由另一个 X11 客户端生成XSendEvent(3)
,不是由服务器。
许多程序(例如xterm
,firefox
)忽略合成事件(ClientMessage 事件除外)。与任何类型的真正安全性相比,这更像是一种感觉良好的措施,因为 X11 客户端可以通过 XTest 扩展(默认情况下存在并启用)轻松生成按键和鼠标事件。