Openbox

Openbox:基於每個應用程序禁用 Alt-F4

  • June 6, 2015

我正在使用LXDE並且在我.config/openbox/lxde-rc.xmlALT-F4定義的操作:

<keybind key="A-F4">
 <action name="Close"/>
</keybind>

正如預期的那樣,這適用於所有應用程序。按下時ALT-F4,視窗關閉。

我有一個應用程序,我們稱之為foo,我希望不受ALT-F4. 即ALT-F4按下時,我希望視窗保持打開狀態(應該完全忽略該操作)。

是否可以創建這樣的規則?

編輯:根據我在@Michael Homer我的答案中添加了以下內容.config/openbox/lxde-rc.xml

<keybind key="A-F4">
 <action name="If">
   <title>foo</title>
   <then>
     <!-- Do nothing for foo -->
   </then>
   <else>
     <action name="Close"/>
   </else>
 </action>
</keybind>

這很好用,但我需要匹配fooor bar

實現這一目標的最簡單解決方案是什麼?

可以使用If 操作

<keybind key="A-F4">
<action name="If">
 <title>* foo</title>
 <then><!-- Do nothing for foo --></then>
 <else>
  <action name="Close" />
 </else>
</action>
</keybind>

<title>條件將匹配以“foo”結尾的視窗標題。有變化<title type="regex"><title type="exact">其他種類的匹配。當視窗匹配時,該操作將不執行任何操作,而當它不匹配時(對於每個其他視窗),它將照常關閉。

Openbox 3.6 和更新版本包括額外的選擇器標籤<class>, <name>, ,<role>如果標題不是唯一的,它可以幫助更準確地辨識您的視窗。它們支持與 相同的type屬性和內容<title>,但會針對相關的 X 屬性進行測試。


如果您使用的是較早版本的 Openbox,並且您的視窗無法通過標題辨識,那麼您的運氣會較差,但可以通過以下方式破解某些內容xdotool:將 A-F4 操作綁定到辨識視窗的腳本更準確地說,如果不匹配,則發送一個綁定到實際關閉操作的密鑰組合。

引用自:https://unix.stackexchange.com/questions/139907