[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Imagen tapiz (último)



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 <acastro@ctv.es>                   */
/* (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 debian-user-spanish-request@lists.debian.org < /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.    acastro@ctv.es | 
+()()()----------()()()--------------------------+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
(((Donde Linux)))    http://www.ciberdroide.com/misc/donde/dondelinux.html
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Reply to: