![有什么办法可以防止焦点被其他应用程序抢走吗?](https://linux22.com/image/26968/%E6%9C%89%E4%BB%80%E4%B9%88%E5%8A%9E%E6%B3%95%E5%8F%AF%E4%BB%A5%E9%98%B2%E6%AD%A2%E7%84%A6%E7%82%B9%E8%A2%AB%E5%85%B6%E4%BB%96%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8A%A2%E8%B5%B0%E5%90%97%EF%BC%9F.png)
我对 X 打开下的窗口并将焦点从当前具有焦点的窗口上移开感到恼火。当您在密码对话框中输入密码并且另一个应用程序窃取焦点时,这尤其令人烦恼,因此您的某些击键最终会出现在新应用程序中。
我一直对 Windows 中的这个问题感到恼火,但在那里对此无能为力,而且我不禁觉得这个问题在 Unix 上应该是可以解决的。
我目前正在使用 Gnome 作为我的桌面环境(在 RHEL 5.8 上),并且据wmctrl -m
我目前正在使用 GnomeMetacity
作为我的窗口管理器。虽然我更愿意坚持使用这些默认选项,但我很乐意了解窗口管理器不表现出这种行为。
答案1
FWIW,用xterm
,按住鼠标左键单击Ctrl会出现一个菜单,您可以在其中选择安全键盘。它使用XGrab键盘获得键盘的独占使用权。
您还可以将其绑定到一个键,例如:
xterm -xrm 'XTerm.VT100.translations: #override Shift <KeyPress> F2: secure()'
为了Shift-F2。尽管您宁愿将其放在资源文件中(通过xterm
like加载~/.Xdefaults
或存储在 X 服务器中并由xrdb
xterm 查询)而不是在命令行中。
答案2
你没有说你在 gnome 下使用哪个窗口管理器。最常见的是metacity
, compiz
(以及新版本 gnome 中的 gnome-shell),尽管您可以使用任何您喜欢的(尽管有些与 gnome 集成得比其他更好)。
对于 openbox,将您的配置文件(类似于~/.config/openbox/rc.xml
您可以从 复制的文件/etc/xdg/openbox/rc.xml
)更改为:
<focus>
<focusNew>no</focusNew>
<!-- always try to focus new windows when they appear. other rules do
apply -->