Openboxのアプリケーション内でウィンドウを切り替えることはできますか?

Openboxのアプリケーション内でウィンドウを切り替えることはできますか?

アプリケーション内で開いたウィンドウを切り替えるために、Openboxでキーバインディングを設定できますか? gnome 3でalt + [Tabの上のキー]を使用するのと同じです。

ベストアンサー1

この機能を実装するためにwmctrlを使用しました。

openboxのrc.xml関連部分:

<keybind key="A-space">
  <action name="execute">
    <execute>wmctrl-switch-by-application</execute>
  </action>
</keybind>

以下はwmctrl-switch-by-applicationのコードです。

# taken from https://unix.stackexchange.com/questions/26546/can-you-switch-between-windows-within-an-application-in-openbox
# taken from: http://www.st0ne.at/?q=node/58

# get id of the focused window
active_win_id=$(xprop -root | grep '^_NET_ACTIVE_W' | awk -F'# 0x' '{print $2}')

# get window manager class of current window
win_class=$(wmctrl -x -l | grep $active_win_id | awk '{print $2 " " $3}' )

# get list of all windows matching with the class above
win_list=$(wmctrl -x -l | grep -- "$win_class" | awk '{print $1}' )

# get next window to focus on
switch_to=$(echo $win_list | sed s/.*$active_win_id// | awk '{print $1}')

# if the current window is the last in the list ... take the first one
if [ -z "$switch_to" ];then
   switch_to=$(echo $win_list | awk '{print $1}')
fi

# switch to window
wmctrl -i -a $switch_to

おすすめ記事