Atajo de aplicación para Windows en KDE

Me gustaría tener un acceso directo para varias aplicaciones que hace lo siguiente:

  • Inicie la aplicación si aún no se está ejecutando.
  • Coloque la aplicación en primer plano si está en segundo plano.
  • Coloque la siguiente instancia de la aplicación en primer plano, si existe.

Estoy usando Debian con KDE. ¿Cuál es la mejor manera de implementar eso?

Desglosado en pasos, primero podría search una tarea por nombre y ejecutarla si no se encuentra:

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

El script ahora saldrá si tiene que ejecutar la aplicación; de lo contrario, continúe buscando las windows que pertenecen a la tarea:

 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 

En este punto, el script se ha ejecutado en la list de windows coincidentes. Simplemente puede agregar después del bucle un command para activar la window representada por '$ id'; esto cambiaría a la última window en la list y debería uploadlo a la cima …

 xdotool windowactivate $id 

Puede descubrir diferentes estrategias para seleccionar windows en una secuencia que le resulte útil. Además, el script probablemente se pueda simplificar con un uso más inteligente del command xdotool y sus opciones de búsqueda.