sábado, 27 de octubre de 2012

Como cambiar el wallpaper automáticamente en gnome 3 (Shell,Unity)



Script escrito en Perl

Bueno ayer no tuve tiempo de hacer el tutorial en perl como cada semana,pero hoy me puse a escribir un script muy pequeño pero muy eficiente,lo que hace es cambiar el fondo de pantalla cada cierto tiempo,a diferencia de los demas que hemos visto este script esta escrito en perl,los otros que hemos visto estan hechos en bash y de hecho este tambien se podia hacer en bash pero mejor use el poder que tienen los arrays de perl para hacerlo mas simple,y de hecho en el próximo tutorial de perl veremos los arrays,este script aunque esta en perl llama muchas funciones del sistema con las comillas invertidas,que también veremos después en un tutorial,pero de momento les dejo el script que es para cambiar el fondo de pantalla de gnome shell o unity,bueno yo no uso unity pero conociendo el sistema se cambian con el mismo comando,bueno si son ubunteros y no les sirve comenten para cambiar titulo y ver si puedo hacer uno para unity



Tutorial

1.Abre tu editor de texto favorito

Copia esto

Enlace
Si no funciona este es otro enlace

Enlace

Vamos a explicar el código como si fuese un tutorial de perl con #

#!/usr/bin/perl # Hashbang

# Lo necesario para que se ejecute nuestro script

use strict; # Vamos a usar strict asi que lo pedimos 

use warnings; # Vamos a usar warnigs así que lo pedimos 

# Principal

# Ruta de las imagenes

my $folder = "/home/hackloper775/Downloads/wallpapers/"; # Cambia esta locación por tu carpeta 

# Tiempo que va a esperar para cabiar el wallpaper

my $tiempo = 180; # Cambia esta parte por los segundos que quieras

my @fotos = `ls $folder | grep [jJ][pP][eE]*[gG]`; # Variable array que buscara las imágenes con comandos del sistema

my $wallpaper; # Escribimos variable del wallpaper

while( 1 ) # Iniciamos bucle

{

$wallpaper = $fotos[rand($#fotos)]; # Definimos variable wallpaper

`gsettings set org.gnome.desktop.background picture-uri "file:"$folder$wallpaper`; # Iniciamos el programa(lo que sera visible) con un comando del sistema encomillado invertido

sleep($tiempo); # Iniciamos la espera que definimos antes y se repite al ser un bucle infinito pero una nueva imagen cada vez

}

Un poco mas de aclaración

En la variable folder es donde tenemos nuestras imagenes,para que no tengan problemas creen una carpeta en donde quieran y metan las imágenes que van a usar luego copien la ruta.

Por ejemplo si usan nautilus

Usen el script abrir en terminal

En terminal

 touch ~/.gnome2/nautilus-scripts/Abrir-con-terminal && echo '#!/bin/bash' >> ~/.gnome2/nautilus-scripts/Abrir-con-terminal && echo "gnome-terminal" >> ~/.gnome2/nautilus-scripts/Abrir-con-terminal && chmod +x ~/.gnome2/nautilus-scripts/Abrir-con-terminal
Mas info

Y luego den clic derecho abrir en terminal y usan el comando


pwd

Les devolverá como salida su locación


Lo copian y lo pegan en la variable my $folder con su editor favorito por ejemplo yo estoy usando ee desde terminal






Bueno ya explicada y copiada en un documento

La renombramos como queramos y la salvamos en nuestra carpeta personal,pero sin extensión,por ejemplo yo le puse

wallchanperl

Ahora abrimos terminal y le damos permisos de ejecución

chmod +x wallchanperl

Y como les he dicho yo tengo una carpeta de scripts para modificar el sistema,les recomiendo una

mkdir ~/scripts

Y movemos el script

mv wallchanperl ~/scripts/

Ahora ya esta pero antes lo probamos

cd ~/scripts/

perl wallchanperl

Si todo va bien debe de haber cambiado el fondo de su escritorio,si no revisen el problema(dirá en terminal) y copian y pegan el problema como comentario para ayudarles

Si todo va bien detienen el script

ctrl+c

Y solo falta hacer que inicie al inicio

Si usan unity

En el engrane de la esquina superior derecha




 aplicaciones al inicio >> añadir


Y ponen esto

En nombre: wallchanperl

En comando: /home/tu_usuario/scripts/wallchanperl

En comentario: Lo que quieran

Y listo cierran sesión y ya

Si usan gnome-shell como yo

En terminal

gnome-session-properties

Y le dan añadir(add) y ponen esto

En nombre: wallchanperl

En comando: /home/tu_usuario/scripts/wallchanperl

En comentario: Lo que quieran




Cierran sesión y listo

Bueno eso es todo,el único problema es que al iniciar sesión se ve el fondo de color unos segundos hasta que inicie el script,tal vez haya otros problemas,comenten haber que puedo hacer.

Vídeo de demostración

No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.