Есть ли способ предотвратить захват фокуса другим приложением?

Меня раздражают окна под X-открытием и отвлекая внимание от текущего окна с фокусом. Это особенно раздражает, когда вы вводите пароль в диалог пароля, а другое приложение крадет фокус, поэтому некоторые из ваших нажатий клавиш попадают в новое приложение.

Я всегда раздражался этим в Windows, но там мало что можно сделать, и я не могу не чувствовать, что это должно быть исправлено в Unix.

В настоящее время я использую Gnome в качестве среды рабочего стола (на RHEL 5.8) и в соответствии с wmctrl -m настоящее время я использую Metacity качестве моего оконного менеджера. Хотя я бы предпочел придерживаться этих параметров по умолчанию, я был бы рад узнать о менеджерах окон, которые не проявляют такого поведения.

FWIW, с xterm , щелкните левой кнопкой мыши, удерживая клавишу Ctrl, чтобы вызвать меню, в котором вы можете выбрать защищенную клавиатуру . который использует XGrabKeyboard для эксклюзивного использования клавиатуры.

Вы также можете привязать его к ключу, например:

 xterm -xrm 'XTerm.VT100.translations: #override Shift <KeyPress> F2: secure()' 

Для Shift-F2 . Хотя вы предпочитаете это в файле ресурсов (либо загружаемом xterm например ~/.Xdefaults либо хранящимся на X-сервере с xrdb и запрошенным xterm), чем в командной строке.

Вы не говорите, какой оконный менеджер вы используете под gnome. Наиболее распространенными являются metacity , compiz (и gnome-shell в новых версиях gnome), хотя вы можете использовать любые, которые вам нравятся (хотя некоторые лучше интегрируются с 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 -->