Re: [問題] 在 Openbox 的 NextWindow 動作中,取得 Window ID

看板Linux作者 (Pham)時間1年前 (2023/03/16 19:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
: 在 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 --entry --text "Window title" | \ xargs -i xdotool set_window --name @{} `xdotool getactivewindow` ' </command> </action> </keybind> 另外再設定一個 Alt-Shift-q 熱鍵,用來執行原本的無條件關閉視窗: <keybind key="A-S-q"> <action name="Close"/> </keybind> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.125.142 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1678966756.A.ECF.html
文章代碼(AID): #1a4l_axF (Linux)
文章代碼(AID): #1a4l_axF (Linux)