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 작업을 바인딩한 다음 실제 닫기 작업에 바인딩된 비밀 키 조합을 보냅니다(일치하지 않는 경우).

관련 정보