如何更改 Xephyr 捕获和释放键盘/鼠标的默认行为?

如何更改 Xephyr 捕获和释放键盘/鼠标的默认行为?

运行 Xephyr 时,其窗口标题显示“ctrl-shift 抓取鼠标和键盘”。

我使用 ctrl-shift(左 ctrl - 左 shift)作为键盘布局切换热键,它会干扰 Xephyr,当我按下它们时,只会切换键盘布局,Xephyr 不会抓取鼠标和键盘。

我强烈希望避免改变键盘布局切换的热键组合。

是否可以更改 Xephyr 中鼠标/键盘抓取的默认热键?

理想情况下,我希望有类似 VirtualBox 的行为:当我单击鼠标时,Xephyr 窗口会抓住鼠标和键盘,当我按下右 ctrl 时,会释放鼠标和键盘。如果这不可能,我愿意接受其他建议,即保留左 ctrl - 左 shift 仅用于键盘布局切换。

答案1

它在代码中是硬连线的:http://cgit.freedesktop.org/xorg/xserver/tree/hw/kdrive/ephyr/hostx.c#n1002

你必须修补它:

if ((XKeycodeToKeysym(HostX.dpy,xev.xkey.keycode,0) == XK_Shift_L
     || XKeycodeToKeysym(HostX.dpy,xev.xkey.keycode,0) == XK_Shift_R)
    && (xev.xkey.state & ControlMask))

您可以在那里使用任何您喜欢的其他密钥代码。

可用的键代码定义在/usr/include/X11/keysymdef.h

相关内容