#!/usr/bin/php '/usr/share/wallpapers','scan'=>RECURSIVE), array('uri'=>'/my/dir/','scan'=>NORMAL), ); $aExtension = array ('jpg', 'png', 'gif', 'jpeg', 'JPG', 'GIF', 'PNG'); $aFilter = array ('1024x768', '1280x1024', '1440x900', '1600x1200', '1920x1200', 'screenshot', '1600-1200'); $iTimeKeep = 1800; // permanenza in secondi /*********************************************************************** NAME make_seed SYNOPSIS function make_seed(); DESCRIPTION La funzione genera un seme da utilizzare per l'estrazione random. Grazie alla documentazione php. RETURN VALUE La funzione ritorna il seme di innesco per una successiva chiamata a mt_rand(). ***********************************************************************/ function make_seed() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } /***********************************************************************/ // Random // // La funzione Random() ritorna in output un numero compreso tra $iMin // e $iMax compresi. // La funzione tenta di rendere il piu' possibile distribuita omogeneamente // la probabilita' di estrazione nel set determinato in ingresso. /***********************************************************************/ function Random($iMin,$iMax) { // Estraggo un numero di estrazioni casuali prima di quella da ritornare mt_srand(make_seed()); $iNumExt=mt_rand(0,20); // Estraggo tutte le estrazioni casuali for($i=0;$i<$iNumExt;$i++) {mt_srand(make_seed()); $iValue=mt_rand($iMin,$iMax);} // Estraggo finalmente il numero casuale mt_srand(make_seed()); $iValue=mt_rand($iMin,$iMax); return $iValue; } /*----------------------------------------*/ /* ACQUISISCO TUTTI GLI SFONDI IN UN ARRAY*/ /*----------------------------------------*/ $aWallpaper = array(); for($i=0;$i$aDir[$i]['uri']."/$file",'scan'=>RECURSIVE); } closedir($handle); } } // // Shuffling per aumentare la randomicita' // for($i=0;$i<20;$i++) shuffle($aWallpaper); // // REPEAT UNTIL FOREVER CAMBIO DESKTOP // $iLastChange = 0; for(;;) { // $iNow = time(); if($iNow >= ($iLastChange+$iTimeKeep)) { // // E' ora di cambiare desktop! Ne estraggo uno random // $i = Random(0,count($aWallpaper)-1); $sWallpaper = $aWallpaper[$i]; // // Mi interfaccio con gnome per il cambio // system("gconftool-2 -t string -s /desktop/gnome/background/picture_filename $sWallpaper"); // // Reinnesco il tempo per il prossimo cambio // $iLastChange = $iNow; } // // Libero la CPU // sleep(1); } ?>