wmctrl: espera hasta que se cierre la ventana

wmctrl: espera hasta que se cierre la ventana

Estoy usando wmctrl para cerrar ventanas en ejecución cuando quiero apagar la computadora. Es porque necesito ahorrar espacio de trabajo en Eclipse y tampoco quiero perder mis pestañas abiertas en Chrome. Escribí un pequeño guión que logra el objetivo, pero no es perfecto. A veces, las ventanas no se cierran correctamente, por lo que pierdo mis pestañas o cambios en el código fuente. ¿Hay alguna forma de decirle a wmctrl que espere hasta que se cierre la ventana? Mi script ahora depende de 3 segundos de sueño (la línea problemática), pero obviamente no es una buena solución.

wmctrl -c chrome 
wmctrl -c eclipse 
sleep 3 
poweroff

Respuesta1

Estás haciendo la pregunta equivocada. No debes esperar hasta que la ventana se cierre, sino hasta que el proceso haya muerto.

Afortunadamente, esa es una pregunta más fácil de responder.

while [ -n "$(pidof chrome eclipse)" ]; do
  sleep 1
done

información relacionada