Emerald falla con frecuencia

Emerald falla con frecuencia

Instalé Lubuntu 14.10, luego Compiz como administrador de ventanas y compuestos, luego Emerald de ppa:nilarimogard/webupd8 como decorador de ventanas. Funciona muy bien, pero Emerald falla muy a menudo. Los bordes de la ventana simplemente desaparecen y no pasa nada más. Entonces corrí emerald --replaceen la terminal.

En el primer accidente tuve

Segmentation fault (Core dumped).

Segundo accidente:

(emerald:15385): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'GdkDrawable'

(emerald:15385): Gdk-CRITICAL **: IA__gdk_cairo_create: assertion 'GDK_IS_DRAWABLE (drawable)' failed
Segmentation fault (core dumped)

Tercer accidente:

Segmentation fault (core dumped)

Estaba pensando en escribir un script o programa que reiniciara Emerald si se detuviera, pero bueno, debe haber una mejor manera de evitarlo...

Respuesta1

Dado que Emerald ya no se encuentra en los repositorios oficiales admitidos, sus fallas de segmentación no son un tema para este foro.

"Resolví" este problema con esta solución no tan elegante.

file: emerald-restarter.c

#include <unistd.h>
#include <stdio.h>

int main() {

        int pid;

        while (1)
        {
                pid = fork();
                switch ( pid )
                {
                        case 0:
                        printf("Child process starting emerald.\n");
                        execlp("emerald","--replace",NULL);
                        break;

                        case -1:
                        fprintf(stderr,"Fork failed.\n");
                        return -1;
                        break;

                        default:
                        printf("Main process waiting for PID %i to finish.\n",pid);
                        wait();
                        break;
                }
        }
return 0;
}

Compílelo y deje que Compiz ejecute esto en lugar de Emerald. Seguirá reiniciando Emerald cada vez que falle.

información relacionada