
Instalei o Lubuntu 14.10, depois o Compiz como gerenciador de janelas e compostos, depois o Emerald de ppa:nilarimogard/webupd8 como decorador de janelas. Funciona bem, mas o esmeralda trava com muita frequência. As bordas da janela simplesmente desaparecem e nada mais acontece. Então corri emerald --replace
no terminal.
No primeiro acidente eu tive
Segmentation fault (Core dumped).
Segunda falha:
(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)
Terceiro acidente:
Segmentation fault (core dumped)
Eu estava pensando em escrever um script ou programa que reiniciasse o Emerald se ele parasse, mas bem, deve haver uma maneira melhor de contornar...
Responder1
Como o esmeralda não está mais nos repositórios oficiais suportados, suas falhas de segmentação não são comuns neste fórum.
Eu "resolvi" esse problema com essa solução alternativa não tão 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;
}
Compile-o e deixe o Compiz executá-lo em vez do esmeralda. Ele continuará reiniciando o esmeralda toda vez que ele travar.