(最后更新于: )
阅读时间: 1 分钟

X11 抓取键盘

X11 抓取键盘踩坑及解决方式

Table of Contents

问题

我遇到的问题可以用以下几个链接概括:

x11 - Unable to move window after XGrabKeyboard

Redirect Keyboard input with XGrabKey or XGrabKeyboard

一句话概括就是XGrabKey只要有其他客户端 Grab 过你要 Grab 的键位,就会失败,经过经验证明这是大概率失败的,而 XGrabKeyboard 也会影响鼠标拖动窗口调整窗口大小以上问题均没有解决方案。

解决方式

经过一番摸索,我发现 xcb 会在鼠标进入标题栏抵达窗口边框移出窗口时触发 XCB_LEAVE_NOTIFY,在离开标题栏进入窗口时触发 XCB_ENTER_NOTIFY,于是在进入的时候调用 XGrabKeyboard,离开的时候调用 XUnGrabKeyboard 即可


zooeywm
嗨! 我是 zooeywm

一名对新鲜事物永远怀有热情的咸鱼程序员~

欢迎光临我的赛博小窝! (:3[▓▓]

Arch Linux | Hyprland | neovim | Rust | 能用键盘不用鼠标

|


Content licenced under CC BY-NC-ND 4.0