在 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 菜单处于活动状态时,(不会)设置选中的属性。
希望这对您有用(或至少是一个起点)。如果您找到更好的条件模式来应用,我很想看看它。