Попадалась на глаза утилитка без gui, которая делала примерно следующее:
Если для заданного свойства окна в EWMH-compatible окружении нет запущенных окон - запустить окно, иначе - переключить на это окно.
Хотелось бы ещё раз её мануал почитать как минимум.