![](https://seccdn.libravatar.org/avatar/79e49b4c098844a59239ebf42033ae3c.jpg?s=120&d=mm&r=g)
David Haller schrieb:
Hallo,
Am Tue, 07 Jun 2005, Karl Brandt schrieb:
David Haller schrieb:
==== Zum Beispiel (UNGETESTET) ==== video/mpeg; mplayer %s; test=test -n "$DISPLAY" ====
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Das klappt!!!!!!!!!!!!!!!
Hallo David, vielen Dank für Deine Hilfe. Der erste Versuch hat funktioniert.
Was macht eigentlich test=test?
==== man mailcap ==== ^^^^^^^^^^^^^^^^^^^^^^^^^ Die man hatte ich natürlich auch schon aufgerufen. Meldung: ma mailcap => keinen Eintrag (Das Problem werde ich aber selbst lösen.) The "test=xxx" field is a command that is executed to determine whether or not the mailcap line actually applies. ====
Das 'test -n "$DISPLAY"' prueft, ob die Environment-Variable DISPLAY gesetzt ist, und wenn ja wird mplayer aufgerufen. Das ist aber nur ein rudimentaerer Test ob ein X laeuft.
Ein besserer Test ist, auch zu testen, ob man den X-Server auch ansprechen kann und darf. Dazu reicht ein mini-C-Programm, z.B.:
==== Xruns.c ==== #include
int main(void) { Display* disp = XOpenDisplay( NULL ); if( disp != NULL ) { XCloseDisplay(disp); return 0; } return 1; } ==== if gcc -L/usr/X11/lib -lX11 -o Xruns Xruns.c; then su -c "install -m 0750 -u root -g users Xruns /usr/local/bin/Xruns" fi
Und dann 'test="/usr/local/bin/Xruns"'
Ist aber auch nicht ideal, weil bei gesetztem DISPLAY auf dem kein XServer laeuft gibt's 6 mal _X11TransSocketUNIXConnect: Can't connect: errno = 2 (oder errno = 111) was eben eine Weile dauert.
-dnh
Vielen Dank für die Info. Ich glaube jetzt komme ich erst einmal alleine weiter. Mit freundlichem Gruß Karl Brandt