Eu escrevi um pequeno programa chamado jumpapp
exatamente para esse propósito. Ele permite que você use um comando para abrir um novo aplicativo na primeira vez que ele é executado, e para alternar para a janela já aberta sempre que você executá-lo depois disso. Como bônus, se você tiver várias janelas abertas para o aplicativo, a execução repetida do comando passará por todas as janelas do aplicativo.
Usage: jumpapp [OPTION]... COMMAND [ARG]...
Jump to (focus) the first open window for an application, if it's running.
Otherwise, launch COMMAND (with opitonal ARGs) to start the application.
No under-the-hood, jumpapp
localiza as janelas do aplicativo usando dois métodos: 1) obtém todos os pids em execução para COMMAND e procura janelas com um _NET_WM_PID
correspondente e 2) procura janelas com WM_CLASS
que corresponde ao comando.
Se você quiser experimentá-lo, é fácil instalar a partir da origem ou pode instalá-lo a partir de meu PPA:
sudo add-apt-repository ppa:mkropat/ppa
sudo apt-get update
sudo apt-get install jumpapp