[問題] 在 Openbox 的 NextWindow 動作中,取得 Window ID
在 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
03/13 19:57, 1F
討論串 (同標題文章)
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章