Дохлый сайт уже.
Вот, ещё живое - http://yurik-notes.blogspot.com/2008/01/linux.html
А сейчас все гораздо проще...
Открываем файл
# vi /usr/share/applications/screensavers/phosphor.desktop
и заменяем параметр Exec на своё
Exec=phosphor -root -program "cat 'find /usr/src/linux/ -name '*.c' -size -5k| argshuf'" -delay 27317 -scale 2 -ticks 13
Esc:wq
Программка argshuf выглядит так
/*
*
* # cc -g -O2 -Wall -pedantic argshuf.c -o argshuf
* # cp -vfi argshuf /usr/bin/
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#define INITSIZE 31
int main(void) {
char **list, **temp, input[200];
int size = INITSIZE, i = 0, j;
struct timeval time;
gettimeofday(&time,NULL);
srand(time.tv_usec);
list = malloc(size*sizeof(char *));
while(!feof(stdin)) {
fscanf(stdin,"%s\n",input);
if(i >= size) {
temp = (char **) calloc((size*=2),sizeof(char *));
for(j=0;j<i;++j) temp[j] = list[j];
free(list);
list = temp;
}
list[i] = (char *) malloc((strlen(input)+1)*sizeof(char));
strcpy(list[i++],input);
}
printf("%s\n",list[(int)((double)i * (rand() / (RAND_MAX + 1.0)))]);
for(j=0;j<i;++j) free(list[j]);
free(list);
return EXIT_SUCCESS;
}
|