Ok, eu criei meu próprio roteiro. Pelo menos eu aprendi alguns scripts bash do Ubuntu;)
#!/bin/bash
num='wmctrl -d | grep '\*' | cut -d' ' -f 1'
name='wmctrl -lx | grep | grep " $num " | tail -1'
host='hostname'
out='echo ${name##*$host}'
if [[ -n "${out}" ]]
then
'wmctrl -a "$out"'
else
fi
O que faz:
- obtém o número atual da área de trabalho
- procura na área de trabalho atual pelo nome fornecido (parâmetro um)
-
depois, dependendo do resultado:
- alterna para o aplicativo encontrado
- ou lança o aplicativo fornecido (parâmetro dois)
Uso (esperando que o nome do script seja switch_to_app
:
switch_to_app LookForThisString LaunchThisIfNotFound
por exemplo
switch_to_app Chromium chromium-browser
EDIT: versão mais impressionante - quando você iniciar o comando novamente (por exemplo, pressione o pressionamento de tecla novamente), ele muda para outra instância da janela
#!/bin/bash
app_name=
workspace_number='wmctrl -d | grep '\*' | cut -d' ' -f 1'
win_list='wmctrl -lx | grep $app_name | grep " $workspace_number " | awk '{print }''
active_win_id='xprop -root | grep '^_NET_ACTIVE_W' | awk -F'# 0x' '{print }' | awk -F', ' '{print }''
if [ "$active_win_id" == "0" ]; then
active_win_id=""
fi
# get next window to focus on, removing id active
switch_to='echo $win_list | sed s/.*$active_win_id// | awk '{print }''
# if the current window is the last in the list ... take the first one
if [ "$switch_to" == "" ];then
switch_to='echo $win_list | awk '{print }''
fi
if [[ -n "${switch_to}" ]]
then
(wmctrl -ia "$switch_to") &
else
if [[ -n "" ]]
then
() &
fi
fi
exit 0