: 在 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