On Sun, 16 Jan 2000, =?iso-8859-1?Q?Emilio_Hern=E1ndez_Mart=EDn?= wrote:

>     Hola.
> 
>     Muchas gracias a todos por las m�ltiples respuestas sobre el tema de
> colocar una imagen como fondo del escritorio.
> 
>     Lo que me gustar�a saber es c�mo (o d�nde, para ser m�s exacto) se
> pueden poner esas sentencias para que se ejecuten al entrar en linux (con
> XDM) y ya aparezca el escritorio con la imagen escogida y no haya que
> ponerla "manualmente" cada vez. He mirado varios archivos como 'xdm-config',
> 'xdm.options, 'Xstartup', 'Xsetup', etc. as� como la ayuda de XDM pero las
> pruebas que he hecho no me han llevado a nada.
> 
>     Gracias de nuevo.

Bueno yo me he preparado un programita para que cada vez que entro en el
escritorio aparezca un fondo distinto aleatoriamente. Tengo todos los 
fondos en un directorio y las xwindows las arranco con 'x' en lugar de
'startx'. ('x' es un alias).

Es decir en mi ~/.alias tengo 

x='ln_rand /usr/local/dat/fondosX '*.xpm' /usr/local/dat/fondosX/fondo.xpm ; 
startx -- :0 -bpp 16'


El programita 'ln_rand' est� escrito en C y puede servir para fondos
aleatorios, frases aleatorias, y etceteras aleatorios. Guardamos en un
directorio una serie de ficheros de lo que queramos y establecemos el
nombre de un link simb�lico que cada vez apuntar� a un fichero distinto.

Mando una copia a GUN-C porque en esa lista no tienen problema de excesivo
tr�fico y al ser un programa C GPL quizas a alguien le sirva para alguna cosa.

El programa es una chorradita pero quizas alguien le encuentre alguna
utilidad. Si es as� ya estoy recompensado.


============================8<- - - - - <cortar por aqui> - - - - - - - 
/************************************************************************/
/* Autor:  Antonio Castro Snurmacher <[EMAIL PROTECTED]>                   */
/* (C) 20-Ene-2000 Ciberdroide Inform�tica (http://www.ciberdroide.com) */
/************************************************************************/

/***********************************************************************

       PROPOSITO:
       
       Hace un find sobre el directorio (arg1) indicado usando una 
       m�scara (arg2) para el nombre de los ficheros y descartando 
       los links. Apartir de los nombres indicados tomar� uno al 
       hazar y crear� en ese directorio (arg1) un link simb�lico 
       con nombre (arg3) a dicho fichero.
       

       LICENCIA:
       
       Este programa es software libre. Puede redistribuirlo
       y/o modificarlo bajo los t�rminos de la Licencia P�blica
       General de GNU seg�n es publicada por la Free Software 
       Foundation, bien de la versi�n 2 de dicha Licencia o bien 
       (seg�n su elecci�n) de cualquier versi�n posterior.

       Este programa se distribuye con la esperanza de que sea 
       �til, pero SIN NING�N TIPO DE GARANTIA, incluso sin la 
       garant�a MERCANTIL impl�cita o sin garantizar la CONVENIENCIA
       PARA UN PROPOSITO PARTICULAR. Vease la Licencia P�blica
       General de GNU para m�s detalles.

       Deber�a haber recibido una copia de la Licencia P�blica General 
       junto con este programa. Si no ha sido as�, escriba a la 
       Free Software Foundation, Inc., en 59 Temple Place - Suite 330,
       Boston, MA  02111-1307, EEUU.
       
****************************************************************************/


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAXTAB 1024
#define MAXNAME 500 
char line[MAXNAME];
char *Tab[MAXTAB];
int n, j;
char *pt;
time_t t;
int s;
int i;
FILE *fp;
char command[200];


/*************************************/
void Uso(){
        fprintf(stderr,"\nUse: ln_rand <path> <fpatern> <name>\n");
        fprintf(stderr,"samples:\n");
        fprintf(stderr,"ln_rand /home/acastro/fondosX/ '*.xpm' 'fondo.xpm'\n");
        fprintf(stderr,"ln_rand /home/acastro/frases/ '*.txt' 'frase.txt'\n");
        exit(-1);
}

/******************************************/
/******************************************/
void main(int argc, char **argv){

        time(&t);
        s=mktime(localtime(&t));
        srand(s);
        n=0;

        if(argc!=4){
                Uso();
        }

        sprintf(command,"find %s ! -type l  -name '%s' ", 
             argv[1], argv[2]);
        if ( ( fp=popen (command, "r")) == NULL)
                perror("Error en popen");
        while ( (fgets(line, sizeof(line), fp)) != NULL) {
                pt= malloc(strlen(line+1));
                if (pt==NULL){
                        perror("malloc error");
                        exit(-1);
                }
                else{
                        if(line[strlen(line)-1]=='\n'){
                                line[strlen(line)-1]='\0';
                        }
                        strcpy(pt, line);
                        Tab[n]=pt;
                        n++;
                }
        }
        pclose(fp);
        Tab[n]=NULL;
        j=(((float)n)*rand()/(RAND_MAX+1.0));
        sprintf(command, "ln -s -f %s %s", Tab[j], argv[3]);
        fprintf(stderr,"(%d/%d), '%s'\n", j, n, command);
        system(command);
        exit(0);
}

============================8<- - - - - <cortar por aqui> - - - - - - - 




> --  
> Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED] < /dev/null

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\                     Ciberdroide Informatica (tienda linux)
          \\W//                             http://www.ciberdroide.com 
         _|0 0|_                                                    
+-oOOO--(___o___)--OOOo--------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher |  
| http://slug.ctv.es/~acastro.    [EMAIL PROTECTED] | 
+()()()----------()()()--------------------------+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
(((Donde Linux)))    http://www.ciberdroide.com/misc/donde/dondelinux.html
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Responder a