Atalho de aplicativo para janelas no KDE

4

Eu gostaria de ter um atalho para vários aplicativos que faz o seguinte:

  • Inicie o aplicativo se ainda não estiver em execução.
  • Coloque o aplicativo em primeiro plano, se estiver em segundo plano.
  • Coloque a próxima instância do aplicativo em primeiro plano, se existir.

Estou usando o Debian com o KDE. Qual é a melhor maneira de implementar isso?

    
por arm712 02.07.2016 / 11:23

1 resposta

2

Dividido em etapas, você pode primeiro procurar uma tarefa pelo nome e executá-la se não for encontrada:

APPID='pgrep <taskname>'
if [ $APPID == "" ] ; then
    <app-command-with-options>
    exit 0
fi

O script será encerrado se tiver que executar o aplicativo, caso contrário, continue com procurando pelas janelas pertencentes à tarefa:

known_windows=$(xwininfo -root -children|sed -e 's/^ *//'|grep -E "^0x"|awk '{ print $1 }')

for id in ${known_windows}
do
    xp=$(xprop -id $id _NET_WM_PID)
    if test $? -eq 0; then
        pid=$(xprop -id $id _NET_WM_PID|cut -d'=' -f2|tr -d ' ')

        if test "x${pid}" = x${APPID}
        then
            echo "Windows Id: $id"
        fi
    fi
done

Neste ponto, o script passou pela lista de janelas correspondentes. Você poderia simplesmente adicionar após o loop um comando para ativar a janela representada por '$ id'; isso mudaria para a última janela da lista e deveria subir para o topo ...

xdotool windowactivate $id

Você pode descobrir diferentes estratégias para selecionar janelas em uma sequência que seja útil para você. Além disso, o script provavelmente pode ser simplificado com o uso mais inteligente do comando xdotool e de suas opções de pesquisa.

    
por 17.02.2017 / 21:08