Openbox:アプリケーションごとにAlt-F4を無効にする

Openbox:アプリケーションごとにAlt-F4を無効にする

私は使用しており、LXDE私のタスクには次のようなタスクが定義され.config/openbox/lxde-rc.xmlています。ALT-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>

fooこれはうまく機能しますが、ORと一致する必要がありますbar

これを達成する最も簡単な解決策は何ですか?

答え1

これは可能です行動する場合:

<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">ウィンドウが一致すると、操作は何もしません。一致しない場合(他のすべてのウィンドウについて)、通常どおり閉じます。

オープンボックス3.6以上追加のセレクタタグを含める<class>、、、<name><role>タイトルが一意でない場合は、ウィンドウをより正確に識別するのに役立ちます。type同じプロパティとコンテンツをサポートしてい<title>ますが、関連するXプロパティに対してテストされました。


以前のバージョンのOpenboxを使用していて、タイトルでウィンドウを識別できない場合は、幸運ではありません。ただし、次の方法でハッキングできます。xdotool:ウィンドウをより正確に識別するスクリプトにA-F4ジョブをバインドし、実際の閉じるジョブにバインドされた秘密鍵の組み合わせを送信します(一致しない場合)。

関連情報