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

看板Linux作者 (Pham)時間1年前 (2023/03/13 12:25), 編輯推噓0(001)
留言1則, 1人參與, 1年前最新討論串1/2 (看更多)
在 Openbox 的預設環境下,按下 <Alt+Tab> 會使用 Action "NextWindow" 若維持按下 Alt 的狀態,則會循環選擇已開啟的 Window, 在放開 Alt 時則會使用 <finalactions>。相關 keybind 如下: <keybind key="A-Tab"> <action name="NextWindow"> <allDesktops>yes</allDesktops> <finalactions> <action name="focus"/> <action name="raise"/> </finalactions> </action> </keybind> 通常我習慣在按壓 Alt 的狀態下,使用快捷鍵<Alt-q>來關掉視窗: <keybind key="A-q"> <action name="Close"/> </keybind> 最近我想要加入一項功能: 若是視窗的 class 是 CONFIRM_BEFORE_CLOSE,則再關掉前先用 dialog 詢問使用者。 因此我把原本的快捷鍵<Alt-q>改成如下設定: <keybind key="A-q"> <action name="Execute"> <command> sh -c ' current_window=$(xdotool getactivewindow); if [ $(xdotool getwindowclassname $current_window) = CONFIRM_BEFORE_CLOSE ]; then zenity --question --text "Are you sure you want to close this window?" || exit 1; fi xdotool windowkill $current_window; ' </command> </action> </keybind> 若單獨使用快捷鍵<Alt-q>時,這個功能有達成我的目標。 但若是搭配<Alt+Tab>,則因為是使用 "xdotool getactivewindow", 所以拿到的 Window ID 始終是目前處ᄅ騕J點的視窗,而不是"NextWindow" 的ID 因此關掉的視窗始終是目前處於焦點的視窗 請問有什麼辦法可以改進呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.69.145 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1678681513.A.942.html

03/13 19:57, 1年前 , 1F
openbox我不熟,可能要直接修改 openbox 的source code
03/13 19:57, 1F
文章代碼(AID): #1a3gMfb2 (Linux)
文章代碼(AID): #1a3gMfb2 (Linux)