看板 Linux 關於我們 聯絡資訊
在 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
leolarrel: openbox我不熟,可能要直接修改 openbox 的source code 03/13 19:57
同樣的設定我會套用在不同機器,每次都要重新編譯太麻煩了 下面的回文中,我有找到替代方法了 ※ 編輯: Typebrook (42.72.186.177 臺灣), 03/17/2023 08:26:59