Debian Jessie와 Fluxbox 1.3.5에서 내가 찾고 있는 동작은 다음과 같습니다. 바탕 화면을 클릭할 때마다 RootMenu가 아직 존재하지 않으면 그려져야 합니다. RootMenu가 이미 존재하는 경우 사라져야 합니다. 이를 위해 .fluxbox/keys
파일에 다음 줄을 추가했습니다.
OnDesktop Mouse1 :If {Some Matches ((@Role="fluxbox-menu")} {HideMenus} {RootMenu}
다른 마우스 관련 바인딩을 주석 처리한 후.
그러나 데스크탑에서 Mouse1을 눌러도 아무런 효과가 없으며 로그 파일은 깨끗합니다. RootMenu를 다른 키에 바인딩하는 경우에는 다음을 사용하십시오.
OnDesktop Mouse3 :RootMenu
RootMenu가 올바르게 표시됩니다(그래서 전혀 문제가 없습니다).
왜 이런 일이 발생하는지 아시나요? 더 중요한 것은 keys
파일이 이러한 "복잡한" 동작을 허용하지 않는다는 것입니다.
답변1
Fluxbox 키는 이 동작을 지원해야 하지만 복잡한 작업을 시도할 때 일부 불규칙성을 발견했습니다. 다음을 사용하여 작동하게 만들 수 있었습니다.
OnDesktop Mouse1 :If {Matches (Name!=)} {RootMenu} {HideMenus}
일치하는 패턴이 투박해 보이지만 작동하는 것 같습니다. 이것이 왜 Fluxbox에서 작동하는지 살펴볼 시간은 없었지만 Fluxbox 메뉴가 활성화되면 체크된 속성이 설정되거나 설정되지 않을 것으로 예상했습니다.
이것이 당신에게(또는 적어도 시작점) 유용하길 바랍니다. 적용할 더 나은 조건부 패턴을 찾으면 보고 싶습니다.