por partes xD
killall metacity && xfwm4 --replace en autolaunch no funciona, por eso pense en algo como este script, que si que tengo en autolauch al iniciar sesion.
por otro lado, tambien me di cuenta de que el script permanecia ejecutandose toda la sesion, no le di mucha importancia, la ram era insignificante, pero tenia en mente investigar algo que lo parase.
#!/bin/bash
while [ ! $(pidof xfwm4) ]
do
killall metacity && xfwm4 --replace
wait `pidof xfwm4`
done
vale, wait espera a que termine el comando especificado (si se especifica) que haya sido ejecutado en la misma shell, es una mejora al script, en lugar de estar todo el rato pidiendo el pidof del proceso.
sin embargo, en este caso, el wait `pidof xfwm4` termina en el momento se recibe el pid, no cuando este deja de existir, no?
si funciona asi, no acabo de comprender, puesto que el bucle sigue ahi....
por otra parte, os agradezco mucho que me ayudeis y me ilustreis