: 在 Openbox 的默认环境下,按下 <Alt+Tab> 会使用 Action "NextWindow"
: 若维持按下 Alt 的状态,则会循环选择已开启的 Window,
: 最近我想要加入一项功能:
: 若是视窗的 class 是 CONFIRM_BEFORE_CLOSE,则再关掉前先用 dialog 询问使用者。
: 因此我把原本的快捷键<Alt-q>改成如下设定:
: 若单独使用快捷键<Alt-q>时,这个功能有达成我的目标。
: 但若是搭配<Alt+Tab>,则因为是使用 "xdotool getactivewindow",
: 所以拿到的 Window ID 始终是目前处ᄅ騕J点的视窗,而不是"NextWindow" 的ID
: 因此关掉的视窗始终是目前处于焦点的视窗
: 请问有什么办法可以改进呢?
虽然没办法在 Openbox 的循环视窗中拿到 Window ID。
不过这边我用其它解法达到“若视窗有特殊标记,则不要轻易关掉它”:
Openbox 可以用<query>标签,来对不同属性的视窗进行不同动作。
以下的设定中按下 Alt-q 时,若视窗的名称由"@"开始,则将它最小化。反之,则关掉视窗。
<keybind key="A-q">
<action name="If">
<query target="default">
<title type="regex">^@</title>
</query>
<then>
<action name="Iconify"/>
</then>
<else>
<action name="Close"/>
</else>
</action>
</keybind>
这边我可以设定一个热键,手动更改重要的视窗名称,并加上"@"前缀
<keybind key="W-y">
<action name="Execute">
<command>
sh -c '
zenity