Script para cambiar dinamicamente el fondo de escritorio en Gnome3

Vía: http://lordcaos.com.ve/2011/07/script-para-cambiar-fondo-de-pantalla-gnome-3/

Script para cambiar los fondos de escritorio de manera dinámica.

Se cambia /home/tuusuario/tucarpetadewallpapers por la ruta de la carpeta donde estén las imágenes que vamos a usar y que conste que aparece dos veces en el script.

En la página del autor del script tiene una mejor explicación de como hacer los cambios, la manera en que se ejecute desde el inicio de la sesión y otras cosas.

 

#!/bin/bash
## Script de: http://lordcaos.com.ve/2011/07/script-para-cambiar-fondo-de-pantalla-gnome-3/
cd /home/tuusuario/tucarpetadewallpapers
while [ 1 ]
do
set — *
length=$#
random_num=$(( $RANDOM % ($length + 1) ))
gsettings set org.gnome.desktop.background picture-uri "file:////home/tuusuario/tucarpetadewallpapers/${!random_num}"
sleep 100
done

 

 

 

Obtener la información de los videos con mplayer

Se puede obtener la información de los videos y audios usando mplayer (viene con mencoder).

La linea de comandos queda así:

mplayer -identify "nombredelapista" -ao null -vo null -frames 0 2>/dev/null | grep ^

 

Se puede usar el siguiente script:

#!/bin/bash

# Necesita de mencoder y zenity.

# La linea del código que encuentra las características de los ficheros de audio y vídeo es de: http://zital.esdebian.org/41066/rotar-videos-sin-perder-calidad-ffmpeg-mencoder

# Script de: http://travesuras.wordpress.com

# Uso: Hacer click con el botón secundario del ratón sobre el video/audio para desplegar el menú contextual del nautilus, buscar y seleccionar el script.

# Esta linea de comandos es la que se encarga de hacer el volcado de datos con la información de la pista.
`mplayer -identify "$1" -ao null -vo null -frames 0 2>/dev/null | grep ^ > "/tmp/${1}-info-videos.txt"`

# Esta es la ventana de de zenity que nos muestra la información.
zenity --text-info --width="502" --height="310" --title="$(mplayer -identify "$1" -ao null -vo null -frames 0 2>/dev/null | grep ^Playing )" --filename="/tmp/${1}-info-videos.txt" &

# Hace que espere cinco segundos antes de la siguiente acción.
sleep 5

# Limpieza. Borra el archivo de texto con el volcado de datos.
rm /tmp/"${1}-info-videos.txt"

# Sale
exit

 

Linea de comandos para crear el script usando nano (editor de textos), guardalo en la carpeta de los script de nautilus con el nombre de info-videos.sh y darle permisos de ejecución para todos los usuarios sin salir de la terminal.

nano ~/.gnome2/nautilus-scripts/info-videos.sh; chmod a+x ~/.gnome2/nautilus-scripts/info-videos.sh

Su uso es tan sencillo como hacer click con el botón derecho del ratón sobre el vídeo/audio y seleccionar el script.

 

 

 

Uso del comando de mencoder para rotar vídeos

Linea de comando para rotar videos con mencoder.

mencoder -vf rotate=[0-7] -oac [codec] -ovc [codec] "videodeentrada" -o "nombresalida"

Ejemplo para que rote un vídeo tipo avi hacia la derecha, el nombre del archivo original es videoentrada.avi y con el que va a quedar ya rotado es nombresalida.avi:

mencoder -vf rotate=1 -oac copy -ovc lavc "videoentrada.avi" -o "nombresalida.avi"

Explicación por partes:

-vf rotate=[número del 1-7] le indica para donde rotar el video. Del 0-3 rota cualquier video, del 4-7 solo los vídeos verticales (portrait). Lista de opciones:

   0 = Rotar 90 grados a la derecha e invertir
   1 = Rotar 90 grados a la derecha
   2 = Rotar 90 grados a la izquierda
   3 = Rotar 90 grados a la izquierda e invertir
Estas opciones solo funcionan con vídeos verticales (portrait)
   4 = Rotar vídeos verticales a la derecha 90° e invertir
   5 = Rotar vídeos verticales a la derecha 90 grados
   6 = Rotar vídeos verticales a la izquierda 90 grados
   7 = Rotar vídeos verticales a la izquierda 90° e invertir

Nota: Los vídeos horizontales en ingles se dice que son landscape.

-oac [codec] se encarga del audio del vídeo. Los codecs de audio disponible se muestran ejecutando: mencoder -oac help

En mi caso mostro:

MEncoder SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding (useful for AC3)
   pcm      - uncompressed PCM audio
   mp3lame  - cbr/abr/vbr MP3 using libmp3lame
   lavc     - FFmpeg audio encoder (MP2, AC3, …)

Pude rotar un video flv. Con la opción -oac copy no se escucha el audio. Con -oac mp3lame y -oac pmc si se oye, pero con el último aumenta bastante de tamaño el archivo de salida. Además para poder utilizar mp3lame hay que tener también instalado lame. Con la opción -oac lavc el fichero resultante fue corrupto.

Los videos avi usando -oac mp3lame aumentan un poco de tamaño. Con -oac copy disminuye un poco. Con -oac lavc ni si quiera se escucha el sonido. con -oac pcm se escucha y aumenta un poco más del doble el tamaño del archivo con respecto al original.

-ovc [codec] es para los codecs de vídeo. Los codecs disponibles se muestran ejecutando: mencoder -ovc help

MEncoder SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   lavc     - libavcodec codecs - best quality!
   xvid     - XviD encoding
   x264     - H.264 encoding

El nombre de entrada, es el que vamos a rotar. En el ejemplo es videodeentrada. El nombre se entrecomillan para que acepte los espacios.

El nombre de salida es con el que va a quedar el archivo ya rotado. Se escribe después de la opción -o. En el ejemplo es nombresalida.avi y también va entrecomillado por si lleva algún espacio en blanco. En cuanto a la -o supongo que es por outputs, salida de datos en ingles.

 

Script para rotar vídeos tipo avi

Este script no agrega la coletilla .avi automáticamente, si se quiere que la ponga por defecto, cambie esta linea:

mencoder -vf rotate=${rotarhacia} -oac copy -ovc lavc "$1" -o "${nombresalida}"

Por:

mencoder -vf rotate=${rotarhacia} -oac copy -ovc lavc "$1" -o "${nombresalida}.avi"

Se copia y pega el script en un editor de texto plano, se guarda con el nombre de rotar-avi.sh en la carpeta de los scripts para el nautilus. Se le da permisos de ejecución. Se usa haciendo click derecho sobre el avi, se busca entre los scripts el de rotar-avi.sh y siguiendo los pasos.

Para hacerlo todo desde la terminal, con nano (editor de textos), y considerando que en el Ubuntu la carpeta de los scripts para el nautilus es ~/.gnome2/nautilus-scripts:

cd ~/.gnome2/nautilus-scripts; nano ~/.gnome2/nautilus-scripts/rotar-avi.sh; chmod a+x ~/.gnome2/nautilus-scripts/rotar-avi.sh

Código:

#!/bin/bash

# Script para rotar vídeos con mencoder y zenity para los diálogos donde se introducen los datos necesarios.
#
# Instalación:
#
# a) copiar y pegar el código en un editor de textos tipo gedit, nano, vim, etc.
#
# b) guardar en el patch de los script del menú contextual, en Ubuntu es: ~/.gnome2/nautilus-scripts. Se sugiere el nombre de rotar-avi.sh
#
# c) Darle permisos de ejecución. Abrir una terminal y escribir: chmod a+x rutaynombredelscript.
# Ejemplo:
# chmod a+x ~/.gnome2/nautilus-scripts/rotar-avi.sh
#
#
# Uso: Click derecho sobre el AVI a rotar, en el primer dialogo pregunta hacia donde y en el segundo es para designar el nombre con el que se guarda.
#
# Script de: http://travesuras.wordpress.com

# Indica hacia donde debe de rotar el video.

rotarhacia=`zenity --list --title="Rotar video" --height "500" --width "450" --column "Opciones para rotar los vídeos tipo avi:
   0 = Rotar 90 grados a la derecha e invertir
   1 = Rotar 90 grados a la derecha
   2 = Rotar 90 grados a la izquierda
   3 = Rotar 90 grados a la izquierda e invertir
Estas opciones solo funcionan con
videos verticales (portrait)
   4 = Rotar vídeos verticales a la derecha 90° e invertir
   5 = Rotar vídeos verticales a la derecha 90 grados
   6 = Rotar vídeos verticales a la izquierda 90 grados
   7 = Rotar vídeos verticales a la izquierda 90° e invertir" "0" "1" "2" "3" "4" "5" "6" "7"`

# Asigna el nombre al archivo de salida

nombresalida=`zenity --file-selection --title "Asigne un nombre al avi rotado"`

mencoder -vf rotate=${rotarhacia} -oac copy -ovc lavc "$1" -o "${nombresalida}"

exit

 

 

 

http://www.mplayerhq.hu/
http://manpages.ubuntu.com/manpages/karmic/es/man1/mencoder.1.html
http://linux.die.net/man/1/mencoder
http://ubunlog.com.ar/blog/cosas-que-puedes-hacer-con-mencoderffmpeg/
http://www.instalaches.com/2007/06/24/edita-tus-videos-desde-la-consola-con-mencoder/
http://zital.esdebian.org/41066/rotar-videos-sin-perder-calidad-ffmpeg-mencoder
http://ososentado.wordpress.com/2009/07/26/recetas-con-mencoder-y-ffmpeg/

 

 

 

Bash.- Bucles, loops o ciclo

Definición de la wikipedia para bucle (programación):

"Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse."

En los scripts de bash son de tres tipos:

  • while
  • for
  • until

Los bucles while son los que ejecutan una rutina mientras se cumpla una condición establecida en el script. Los bucles for son los que van interactuando con el usuario a lo largo de su ejecución. Y los bucles until son los que se ejecutan hasta que se cumpla una condición determinada.

El recurso de Jorge Fuertes para los bucles en bash y otros más se pueden descargar desde:
http://jorgefuertes.com/productos-y-servicios/cursos/curso-sistemas-gnu-linux

 

 

 

¿Donde van los scripts de Nautilus en el Ubuntu?

La forma más sencilla de acceder a un script desde el Nautilus es por medio de la opción Scripts de su menú contextual.

Hacemos click derecho en cualquier ventana del Nautilus para que se despliegue el menú contextual y buscamos dentro de la opción Scripts.

Todos los scripts que se encuentren en la carpeta ~/.gnome2/nautilus-scripts, siempre y cuando tengan permisos de ejecución; aparecen en la opción Scripts del menú contextual del nautilus.

 

http://doc.ubuntu-es.org/index.php?title=Nautilus_Scripts
http://cartublog.blogspot.com/2008/03/nautilus-scripts.html
http://varshamyspace.blogspot.com/2010/03/converting-between-different-audio.html

 

 

 

Script para convertir diferentes archivos a mp3

La autora de este script es Varsha Jaikumar. Ella dice que se necesita mencoder. Con el viene mplayer. Lo que si no tenía cuando lo use por primera vez es el lame. Se generaba el archivo wav pero no el mp3, hasta que puse ese programa.

Requerimientos:

  • mencoder (trae consigo el mplayer)
  • lame

Instalación:

sudo aptitude install mencoder lame

Si ya tienes uno de los programas, borra su nombre de la linea de comandos anterior.

Para crear y usar el script: abrimos un editor de texto sencillo, copiamos y pegamos el código. Se guarda el archivo con el nombre "convert any to mp3.sh" y se le dan permisos de ejecución.

Los scripts que estén en /home/[Usuario]/.gnome2/nautilus-scripts/ se pueden llamar haciendo click derecho en cualquier ventana del nautilus y buscándolo dentro de lo opción Scripts que aparece dentro de el menú contextual.

Creación script

Paso 1.-

Abrir cualquier editor de textos sencillo. La ventaja del nano es que no salimos de la terminal para crear el script.

Líneas de comando para abrir el nano indicándole que cree el archivo "convert any to mp3.sh" en la carpeta de los scripts:

nano ~/.gnome2/nautilus-scripts/convert\ any\ to\ mp3.sh

Paso 2.-

Copiar el siguiente código:

#¡/bin/bash
mplayer -ao pcm "$1" -ao pcm:file=temp.wav
OUTNAME="${1%%.wma}.mp3"
lame -b 128 temp.wav "$OUTNAME"
rm temp.wav

Nota: Varsha Jaikumar dice que si queremos conservar el archivo temp.wav comentemos esa línea poniendo un signo # al principio de ella.

Paso 3.-

Pegar el código.

En nano se pega con Control+Shift+V o entrando menú de la terminal: Edit > Paste

Paso 4.- Guardamos el archivo.

En nano presionamos las teclas Control+X, nos pregunta si queremos guardar el archivo (hasta abajo de la shell aparece el menú con las opciones), le decimos que si.

Paso 5.-

Darle permisos de ejecución.

chmod a+x ~/.gnome2/nautilus-scripts/convert\ any\ to\ mp3.sh

Como se usa el script

Para usar este script se hace click derecho sobre el archivo a convertir, se busca dentro del menú contextual la opción Scripts, dentro de ella esta el script "convert any to mp3.sh", elegimos ese y esperamos a que termine de ejecutarse.

 

 

 

Comandos.- Comentarios en Bash

En un script de Bash las líneas que comiencen con # (signo de número) son comentarios y por tanto no son interpretadas. En la línea de comados todo lo que vaya después de un signo # es un comentario.

Ejemplos en la terminal:

echo -e "\nHola\n" # Esto no se va a imprimir

ls *.txt | more -5 # El comando ls lista los archivos de un directorio, en este caso todos los que tengan extensión txt; la pipe hace que el resultado se envie hacia el comando more y este lo muestra de cinco en cinco.

Ejemplo en un script.

Este va hacer que muestre en la promt los mensajes: "Hola" y "Fin del script".

Hay que crear el script, darle permisos de ejecución y ejecurarlo. Esta línea de comando hace uso del editor de textos para la promt nano, se copia el script de más abajo, lo guardamos y cerramos, para que se ejecute la siguiente parte, el comando clear limpia la pantalla, le damos los permisos que necesita para que funcione con chmod, con source se ejecuta y darnos la opción de conservar o borrar el script con rm.

nano script-de-muestra.sh; clear; chmod a+x script-de-muestra.sh; source script-de-muestra.sh; rm -vi script-de-muestra.sh

Script de muestra:

#!/usr/bin/env bash
# Este es un comentario. Y este script va mostrar en la terminal el mensaje: "Hola" con una línea en blanco arriba y otra abajo.
echo -e "\nHola\n"
# Este es otro comentario. En un script todas las líneas que empiecen con un signo de número se consideran comentarios y no se muestran. El comentario termina donde finaliza la linea.
echo -e "Fin del script\n"

 

 

Url corta: http://wp.me/pjHsf-o7

 

 

 

conky.- El script conkyforecast para tener el clima en nuestro conky

Conky Weather Forecast Python Script sirve para poder tener el reporte del clima en nuestro Desktop.

De los tres métodos de instalación que proponen en http://ubuntuforums.org/showthread.php?t=869328 el más práctico de hacer para mi, fue usando el archivo .deb

Paso 1.- Obtener el archivo .deb

Tuve que ir a la página del autor (Kaivalagi). En el hilo de ubuntuforums.org nos proporcionan este https://launchpad.net/~m-buck de ahí me fui a el enlace que esta en View package details, busque el archivo conkyforecast, escogí el que va con mi versión del ubuntu, presione la flecha junto a su nombre, se desplego información general, junto con los enlaces de descarga del script. Entonces ya pude bajar el archivo .deb. Parece mentira que tarde 15 minutos en dar con el. Ahí estuve buscando por toda la página y pensando ¿Dónde estará? Hasta que por fin lo encontré.

Paso 2.- Instalación

Dar doble click sobre el archivo .deb para que salte el programa de instalación y seguir los pasos que me indica. Nada de terminales con este método.

Paso 3.- Preparación para empezar a usarlo:

Copiar el /usr/share/conkyforecast/conkyForecast.config a nuestro home como archivo oculto.

Teclear en la terminal:

cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config

Según esto hay que registrarse en weather.com para que funcione este script; porque te proporcionan una ID y LICENCE_KEY, la verdad es que mientras especifiques en cada opción el lugar que quieres te da la información. Las ventajas de registrarte es que te dan un bonito pack de iconos y se necesitan esas dos llaves para configurar correctamente el script.

Para el lugar es agregando la opción --location=[Lugar] Ejemplo: --location=UKXX0103

Si no me creen, antes de modificar el archivo conkyForecast.config de su home agreguen a su archivo .conkyrc estas líneas. Pueden cambiar el valor de --location por el que les corresponda.

Nota.- Estaba muy cansada cuando programe esta entrada, por algunas horas estubo mal el código. Los blogs de WordPress convierten en una sola raya dos guiones juntos. Y las opciones location y locale llevan dos. Pido disculpas si causo algún problema.

${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=OB}
${font ConkyWeather:style=Bold:size=40}${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=WF}${font}
${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=HT --centeredwidth=4}/${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=LT --centeredwidth=4}
${font ConkyWindNESW:size=40}${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=BS}${font}
${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=WS} - ${execi 1800 conkyForecast --location=UKXX0103 --locale=ES --datatype=WD}${font}

La opción --locale=ES es para que la información se vuelque en español.

¿Cómo obtener el código para --locale?

Para identificar el código para nuestro lugar de origen hay que seguir esta URL pero cambiando NORWICH por el nuestro.

http://xoap.weather.com/search/search?where=NORWICH

Aparece algo así:

<search ver="2.0">
<loc id="USNY0428" type="1">East Norwich, NY</loc>
<loc id="USNY1036" type="1">North Norwich, NY</loc>
<loc id="USCT0155" type="1">Norwich, CT</loc>
<loc id="UKXX0103" type="1">Norwich, United Kingdom</loc>
<loc id="USKS0428" type="1">Norwich, KS</loc>
<loc id="USND0266" type="1">Norwich, ND</loc>
<loc id="USNY1044" type="1">Norwich, NY</loc>
<loc id="USOH0716" type="1">Norwich, OH</loc>
<loc id="USVT0175" type="1">Norwich, VT</loc>
</search>

En el script conkyforecast buscaban Norwich de Gran Bretaña, así que les corresponde UKXX0103

Un ejemplo: Que si quiero el de París:

Abro este enlace donde cambie NORWICH por PARIS

http://xoap.weather.com/search/search?where=PARIS

Y resulta que para París Francia quedaría --locale=FRXX0076

Para registrarse y obtener la PARTNER_ID y LICENCE_KEY hay que ir a:

http://www.weather.com/services/xmloap.html

Hay que buscar el buzón el correo con la información. A mi me mandaron uno solo, parece que antes eran más.

Digamos que la PARTNER_ID es 1111111111 y la LICENCE_KEY es 2222222222222222

Abro el archivo ~/.conkyForecast.config con nano de preferencia.

Agrego los valores en su lugar, en locale pongo ES para que nos de los resultados en español

Queda:

LOCALE = ES
XOAP_PARTNER_ID = 1111111111
XOAP_LICENCE_KEY = 2222222222222222

También hay sustituir <LOCATION> por el código del lugar en la línea:

BASE_XOAP_URL = http://xml.weather.com/weather/local/<LOCATION>?cc=*&dayf=10&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=m

Para París Francia quedaría:

BASE_XOAP_URL = http://xml.weather.com/weather/local/FRXX0076?cc=*&dayf=10&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=m

Se pueden hacer más modificaciones, pero esas son las básicas.

La URL corta de este post es: http://wp.me/pjHsf-mf