Script para enviar notificaciones mediante notify-send

Hace tiempo leí en en el blog de Fausto como utilizar el comando notify-send e instalar las librerías. Esta entrada no pretende enseñar a utilizar o instalar lo necesario para notify-send, solo mostrar el script que logre a partir del que tiene Fausto.

Generalmente uso este script como cronometro mientras estoy cocinando.

Lo toquetee un poco para que alcanzara para diez notificaciones este script, avisara cuando ya no hay disponibles, preguntara el tiempo en minutos y como soy muy olvidadiza me dejara una nota con el tiempo para que se ejecute el comando, el mensaje, etc en el archivo /tmp/notificacion-sonido/notificacion-X-remind.txt. Crea la carpeta /tmp/notificacion-sonido, dentro de ella sitúa el archivo antes mencionado y el sonido para notify-send (/tmp/notificacion-sonido/notificacion-X-remind.wav). Al terminar de ejecutarse la notificación, la carpeta junto con su contenido son borrados automáticamente si no hay más pendientes.

Los script los meto dentro de la carpeta ~/.gnome2/nautilus-scripts y la imagen que adorna la notificación también la sitúe en la misma. Su nombre es remind.png, puede cambiarse el tipo de imagen y la ubicación según las necesidades personales.

 

Nota.- Cuando envio una notificación en Ubuntu y el programa no esta instalado me indica como agregarlo. Ejemplo de como enviar una notificación: notify-send "Hola"

 

Pasos para su utilización

  1. Crear el archivo en la carpeta indicada ~/.gnome2/nautilus-scripts, o en cualquiera que se desee
  2. Ubicar la imagen de elección con el nombre remind.png en la carpeta de los script para nautilus o modificar la ruta en el script
  3. Dar permisos de ejecución al archivo

    chmod a+x "ruta del script"

    Ejemplo:

    chmod a+x "/home/`whoami`/.gnome2/nautilus-scripts/notificacion-sonido.sh"

  4. Este script lo llamo con un atajo de teclado que agregue con Gconf (gconf-editor). Se agrega modificando dos variables a) /apps/metacity/global_keybindings/run_command_X y b) /apps/metacity/keybinding_commands/command_X. Donde la X al final se cambia por un número que va del 1-12 y debe de ser el mismo para las dos variables. En el primero se le indican cuales teclas van a ser utilizadas para este atajo y en el segundo la acción a realizar.
    Desde la terminal y en un solo paso:

    gconftool-2 --type string -s /apps/metacity/global_keybindings/run_command_9 '<Mod4><Alt>s'; gconftool-2 --type string -s /apps/metacity/keybinding_commands/command_9 "sh /home/`whoami`/.gnome2/nautilus-scripts/notificacion-sonido.sh"

    En esta linea de comandos es el atajo 9 y las teclas rápidas son la super L + Alt + s. Se cambian según las necesidades. La ruta del script debe de estar completa para que funcione correctamente el atajo de teclado.

Nota.- whoami es un comando que indica cual es el nombre de usuario para nuestro /home y el acento grave (`) hacen que se ejecute antes que chmod.

Script

#!/usr/bin/env bash

# Permite al usuario enviar hasta diez mensajes y/o recordatorios por medio de notify-send, decidiendo en cuanto tiempo va a ejecutarse; y avisa cuando se acaban las notificaciones disponibles.

# En /tmp crea la carpeta notificacion-sonido, dentro de ella esta un archivo de texto con los datos de cuando fue enviada la notificación, en cuanto tiempo va a ejecutarse y cual es el mensaje. También se encuentra el archivo de sonido para notify-send. Al terminar de ejecutarse el script borra dicha carpeta junto con su contenido.

# Crea la carpeta para notificacion-sonido
mkdir "/tmp/notificacion-sonido/"

# Se encargan de buscar archivos especificos.

buscarconls1=`ls "/tmp/notificacion-sonido/notificacion-1-remind.wav"`

buscarconls2=`ls "/tmp/notificacion-sonido/notificacion-2-remind.wav"`

buscarconls3=`ls "/tmp/notificacion-sonido/notificacion-3-remind.wav"`

buscarconls4=`ls "/tmp/notificacion-sonido/notificacion-4-remind.wav"`

buscarconls5=`ls "/tmp/notificacion-sonido/notificacion-5-remind.wav"`

buscarconls6=`ls "/tmp/notificacion-sonido/notificacion-6-remind.wav"`

buscarconls7=`ls "/tmp/notificacion-sonido/notificacion-7-remind.wav"`

buscarconls8=`ls "/tmp/notificacion-sonido/notificacion-8-remind.wav"`

buscarconls9=`ls "/tmp/notificacion-sonido/notificacion-9-remind.wav"`

buscarconls10=`ls "/tmp/notificacion-sonido/notificacion-10-remind.wav"`

buscarconls11=`ls "/tmp/notificacion-sonido/notificacion-11-remind.wav"`

# Establece el mensaje
msg=$(zenity --entry --title="notificacion-sonido.sh" --text="Recordatorio")

# Establece el tiempo en minutos. Con la variable $tim se estable el tiempo en minutos. La variable $tim2 se encarga de hacer la conversión.
tim=$(zenity --entry --title="notificacion-sonido.sh" --text="Tiempo para ejecutarse en minutos" --entry-text "1")
tim2=`echo "$tim * 60" | bc`

# Establece la ruta del icono de la notificación.
remind_icon="/home/`whoami`/.gnome2/nautilus-scripts/a.jpg"

# Bucle para tener hasta diez mensajes pendientes y que avise cuando se acabaron los disponibles.

if [ "x${buscarconls1}" != "x/tmp/notificacion-sonido/notificacion-1-remind.wav" ]
then
# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-1-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-1-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-1-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-1-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-1-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls2}" != "x/tmp/notificacion-sonido/notificacion-2-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-2-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-2-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-2-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-2-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-2-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls3}" != "x/tmp/notificacion-sonido/notificacion-3-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-3-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-3-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-3-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-3-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-3-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls4}" != "x/tmp/notificacion-sonido/notificacion-4-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-4-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-4-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-4-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-4-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-4-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls5}" != "x/tmp/notificacion-sonido/notificacion-5-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-5-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-5-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-5-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-5-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-5-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls6}" != "x/tmp/notificacion-sonido/notificacion-6-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-6-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-6-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-6-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-6-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-6-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls7}" != "x/tmp/notificacion-sonido/notificacion-7-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-7-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-7-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-7-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-7-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-7-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls8}" != "x/tmp/notificacion-sonido/notificacion-8-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-8-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-8-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-8-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-8-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-8-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls9}" != "x/tmp/notificacion-sonido/notificacion-9-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-9-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-9-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-9-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-9-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-9-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

elif [ "x${buscarconls10}" != "x/tmp/notificacion-sonido/notificacion-10-remind.wav" ]
then

# Crea un archivo de texto simple con los parámetros de este script para consulta.
printf "***** Notificaci\363n *****\n\nPara ejecutarse en:\n\t$tim minutos\n\nEl mensaje es:\n\t$msg\n\nFecha y hora en que se creo la notificaci\363n:\n\t`date +"%F"` a las `date +"%r"`\n\n\n\n" >> "/tmp/notificacion-sonido/notificacion-10-remind.txt"

# Crea el archivo de sonido con el mensaje para la notificación.
espeak -a 200 -p 90 -s 170 -k10 -w "/tmp/notificacion-sonido/notificacion-10-remind.wav" "$msg"

# Envia la notificación y hace que se escuche
(sleep $tim2 && notify-send -u normal -i "$remind_icon" "$msg" && aplay "/tmp/notificacion-sonido/notificacion-10-remind.wav") || sleep 1s

# Limpieza de los archivos creados por este script

# Borra el archivo wav y el recordatorio.
rm -v "/tmp/notificacion-sonido/notificacion-10-remind.wav"
rm -v "/tmp/notificacion-sonido/notificacion-10-remind.txt"

# Hace que espere un segundo antes de intentar borrar la carpeta que se creo al principio de este script.
sleep 1s

# Si esta vacía la carpeta la borra.
rmdir -v "/tmp/notificacion-sonido/"

# Hace que espere un segundo antes de salir del script.
sleep 1s

# Sale del script
exit

else [ "x${buscarconls11}" != "x/tmp/notificacion-sonido/notificacion-11-remind.wav" ]
zenity --timeout "2" --title "notify-send" --info --text "Se acabaron las notificaciones de sonido disponibles"

# Sale del script
exit

fi

 

 

 

 

 

Anuncios

Gconf.- Configuración del background

Dentro de la carpeta ~/.gconf/desktop/gnome/background esta el archivo que contiene la configuración del background. En mi instalación se llama ~/.gconf/desktop/gnome/background/%gconf.xml

Cuando hay que volver a los valores iniciales y no se quiere o no se sabe como se hace; se borra ese archivo y se reinicia el sistema.

Allá por el 2007 en https://bugs.launchpad.net/ubuntu/+source/meta-gnome2/+bug/174761 reportaban un problema con picture_opacity. Dice que la imagen de fondo desapareció y nunca regreso hasta que elimino el archivo de configuración.

Para averiguar cuales son los valores establecidos, ejecutar en la terminal:

gconftool-2 -R /desktop/gnome/background

Anoten o guarden en un archivo el volcado de los valores de background. Se puede usar la siguiente linea de comandos:

gconftool-2 -R /desktop/gnome/background >> ~/desktop-gnome-background.txt

Crea el archivo ~/desktop-gnome-background.txt con los valores que arroje la configuración del background y los va agregando al final del fichero.

 

 

Gradiente

Nombre: color_shading_type

Función: Establece el tipo de gradiente.

Key name: /desktop/gnome/background/color_shading_type

Key owner: gnome

Valores

Valor Descripción
"horizontal-gradient" Va de lado a lado de la pantalla.
"vertical-gradient" Es el que va de arriba hacia abajo.
"solid" Es cuando la pantalla se ve de un solo color.

Tipo: String

Ejemplo:

gconftool-2 --type string -s /desktop/gnome/background/color_shading_type "horizontal-gradient"

 

Dibujar background

Nombre: draw_desktop_background

Función: Cuando su valor es verdadero la imagen de fondo se puede ver, y cuando es falso lo deshabilita.

Key name: /desktop/gnome/background/draw_background

Key owner: gnome

Valores: "true" y "false". Se pueden indicar también con un 1 para true y un 0 para false.

Tipo: Boleano

Ejemplo:

gconftool-2 --type bool -s /desktop/gnome/background/draw_background "false"

Nota: cuando tenía deshabilitado show_desktop (/apps/nautilus/preferences/show_desktop) el cambio no se notaba. Se ve cuando lo habilito.

 

Imagen de fondo de pantalla

Nombre: picture_filename

Función: Establece el fondo de pantalla del escritorio.

Key name: /desktop/gnome/background/picture_filename

Key owner: gnome

Valores: Ruta completa de la imagen

Tipo: String

 

La aplicación Appearance Preferences (Preferencias de apariencia) cuando establece color(es) como fondo de pantalla deja el valor vacio y picture_options le asigna "none". Con estos dos cambios, esten o no habilitada show_desktop (/apps/nautilus/preferences/show_desktop) se nota inmediatamente la nueva configuración.

Se llega a Appearance Preferences llendo al menú System > Preferences > Appearance

Ejemplos

Con dejar un par de entrecomillados juntos deja el valor de la imagen vacío.

gconftool-2 --type string -s /desktop/gnome/background/picture_filename ""

En este el valor es la ruta de la imagen.

gconftool-2 --type string -s /desktop/gnome/background/picture_filename "/usr/share/backgrounds/Daisy.jpg"

 

Opacidad

Nombre: picture_opacity

Función: Opacidad con la cual se dibuja el fondo de pantalla.

Key name: /desktop/gnome/background/picture_opacity

Key owner: gnome

Tipo: String

 

Forma en que se muestra la imagen

Nombre: picture_options

Función: Determina como el set de imágenes del wallpaper_filename (fondo de pantalla) es representado.

Key name: /desktop/gnome/background/picture_options

Key owner: gnome

Valores

Valor Descripción
"none" Ninguno, nada.
"wallpaper" Como si fuera papel tapiz, repite la imagen muchas veces hasta llenar la pantalla
"centered" Centrado
"scaled" Escalado
"stretched" Estirado
"zoom" Aumento
"spanned" Expandido

Tipo: String

Ejemplo:

gconftool-2 --type string -s /desktop/gnome/background/picture_options "wallpaper"

 

Color primario

Nombre: primary_color

Función: Color izquierdo o superior cuando esta el gradiente, o el color solido.

Key name: /desktop/gnome/background/primary_color

Key owner: gnome

Valores: Ver más abajo el apartado de colores para el background

Tipo: String

Ejemplo:

gconftool-2 --type string -s /desktop/gnome/background/primary_color "#ffffffffffff"

 

Color secundario

Nombre: secondary_color

Función: Color derecho o el de abajo cuando estan los gradientes, no usado para color solido.

Key name: /desktop/gnome/background/secondary_color

Key owner: gnome

Valores: Ver más abajo el apartado de colores para el background

Tipo: String

Ejemplo:

gconftool-2 --type string -s /desktop/gnome/background/secondary_color "#000000000000"

 

Colores para la configuración de background en gconf

Algunos valores de ejemplo para primary_color y secondary_color:

Blanco #ffffffffffff
Negro #000000000000
Crimson #dcdc14143c3c
Cornflowerblue #64649595eded
Darkmagenta #8b8b00008b8b
Red (rojo) #ffff00000000
Blue (azul) #00000000ffff
Yellow (amarillo) #ffffffff0000
Magenta #ffff0000ffff
Greenyellow (verde amarilloso) #adadffff2f2f

El código de los colores se puede averiguar escogiendo uno en Appearance Preferences y viendo el valor que toma primary_color y/o secondary_color en gconf-editor.

 

 

 

 

 

 

Comando.- whoami

El manual dice: "whoami - imprime el identificador de usuario efectivo". Lo que hace es mostrar el nombre del usuario (username) en que estamos. whoami equivale a id -un.

Todas estas son la misma cosa:
Userid (username) | User identifier | UID | User ID | Identificador de usuario

whoami es la concatenación de las palabras en ingles "Who am I?" (¿Quien soy?) Funciona para los sistemas tipo Unix, Windows Vista, Windows 7, y Windows Server 2008.

Sintaxis:

whoami [--help] [--version]

Opciones

--help

Imprime un mensaje del uso por la salida estándar y termina satisfactoriamente.

--version

Imprime información sobre la versión por la salida estándar y termina satisfactoriamente.

Ejemplo:

Ubuntu al usuario que se crea durante la instalación le asigna el número 1000. En mi caso mi primer usuario se llama travesuras; por tanto el UID efectivo es travesuras y el UID real es 1000

Si ejecuto en la terminal:

a)

whoami

b)

id -un

Con ambas me devuelve el UID efectivo, y en mi caso es:

travesuras

Ejemplo de como darle uso:

El otro día estaba haciendo un script para tener mis configuraciones de Gconf favoritas de un solo golpe y no perder tiempo poniendolas una a una. La ruta para el home era un tormento; el ~/ no lo reconoce en todas las configuraciones.

En el caso de la terminal, la imagen de fondo la quiere escrita como /home/[Usuario]/Pictures/ximagen.jpg (sustituye [Usuario] por el nombre del tuyo), nada de ~/Pictures/ximagen.jpg. Logre establecerla escribiendo:

gconftool-2 -t string -s /apps/gnome-terminal/profiles/Default/background_image "/home/`whoami`/Pictures/ximagen.jpg"

Obtener ayuda y el manual

whoami --help

info whoami

man whoami

 

 

 

GConf configuration system.- Ocultar/Mostrar los iconos del escritorio.

Para cuando se tiene muy desordenado el Desktop (Escritorio) se puede ocultar o mostrar lo que hay en él modificando el valor de /apps/nautilus/preferences/show_desktop

Con gconf-editor

Alt+F2 ==> gconf-editor ==> navegar desde: / > apps > nautilus > preferences > show_desktop ==> Marcar la casilla para mostrar los iconos y desmarcarla para ocultarlos.

Desde la terminal:

Mostrarlo:

gconftool-2 --type bool -s /apps/nautilus/preferences/show_desktop 1

Ocultarlo:

gconftool-2 --type bool -s /apps/nautilus/preferences/show_desktop 0

 

Un script para tener un botón que los muestre/oculte, un alias, etc.

El crédito del script le corresponde a UbuntuLife; su script funciona perfectamente tal y como lo tiene escrito, pero corrigiendo una sola cosa. La primera línea la tiene mal y hay que arreglarla. Los script escritos en bash empiezan con #!/bin/bash y el omitió el signo de admiración.

Sabía que algo había mal en esa línea, pero por unas y por otras lo deje para más al rato.

En bash el operador condicional de igualdad se puede escribir con un solo signo igual (=) o con dos (==). Como la línea que indicaba que el script esta escrito en bash estaba mal escrita nada más aceptaba un solo signo igual (=). Termine cambiando ese script empezando porque el operador condicional fuera de desigualdad (!=), intercambiando el orden de true y false del comando gconftool-2 y ya que estaba en eso, el texto de echo. Con estos cambios el script funciona aunque este mal escrita la línea #!/bin/bash.

Script para Mostrar/Ocultar los iconos del escritorio (Desktop):

#!/bin/bash
# Recuperar el estado actual del show_desktop
ICONOS=`gconftool-2 --get /apps/nautilus/preferences/show_desktop`
if [ "x${ICONOS}" != "xtrue" ]
then
echo -e "\nSe muestran los iconos en el Desktop\n"
     gconftool-2 --type bool -s /apps/nautilus/preferences/show_desktop 1
else
echo -e "\nSe ocultan los iconos en el Desktop\n"
     gconftool-2 --type bool -s /apps/nautilus/preferences/show_desktop 0
fi
exit

El script se guarda con extensión .sh y se le dan permisos de ejecución.

Ejemplo:

Tecle en la terminal nano ~/show_desktop.sh, seleccione el código del script, lo copie, lo pegue en el nano con Control+Shift+V y cierro el archivo con Control+X, me pregunta si quiero guardar el archivo, le digo que si.

Le di permisos ejecutando en la terminal: chmod a+x ~/show_desktop.sh

 

Ideas para llamar el script show_desktop.sh

a) Crear lanzador:

Type: Aplication
Name: Ocultar/Mostrar Desktop
Command: /home/[USUARIO]/show_desktop.sh
Comment: Oculta/muestra el desktop

b) Un Alias:

Abrir /home/[USUARIO]/.bashrc y agregar al final el alias

Ejemplo:

Abro nano.

nano ~/.bashrc

Agrego al final esta línea.

alias si-no='/home/[USUARIO]/show_desktop.sh'

Nota.- Cambiar [USUARIO] por el nombre del tuyo. El mio es travesuras y por tanto quedo /home/travesuras/show_desktop.sh. El alias que le puse fue si-no, pero se puede cambiar por otro.

c) Crear un atajo de teclado (Shortcut)

Sintaxis:

gconftool-2 --type string -s /apps/metacity/global_keybindings/run_command_X 'Secuencia de teclas para llamar el script'; gconftool-2 --type string -s /apps/metacity/keybinding_commands/command_X 'Ruta donde del script'

Ejemplo para el primer comando, con las teclas SuperL+X y con la ruta /home/travesuras/show_desktop.sh:

gconftool-2 --type string -s /apps/metacity/global_keybindings/run_command_1 '<Mod4>x'; gconftool-2 --type string -s /apps/metacity/keybinding_commands/command_1 '/home/travesuras/show_desktop.sh'

Nota: Cuando agregue al script unas líneas para que saltara una ventana avisándome de los cambios utilizando zenity; solo funciono cuando en keybinding_comands el texto decía: sh /home/[USUARIO]/show_desktop.sh

 

 

 

 

GConf configuration system.- gconf-editor y gconftool-2

Gconf según la Wikipedia:
"Gconf es un sistema utilizado por Gnome para almacenar las opciones de la configuración del entorno gráfico y de los distintos programas. Forma parte de la política del entorno para mejorar y simplificar la interfaz gráfica de usuario."

Página de Gconf en el proyecto Gnome:
http://projects.gnome.org/gconf/

Los cambios de la base de datos de Gconf se guardan en carpetas y en formato XML dentro del directorio ~/.gconf.

Gconf-editor y gconftool-2 se pueden considerar como equivalentes. El primero es grafico, además da información adicional y funciona algo así como un listado de sus posibilidades. El segundo es comando y me sirve más que nada para hacer lanzaderas y scripts.

Forma grafica:

Alt+F2 ==> gconf-editor

Como comando para la terminal y/o scripts:

Abrimos una terminal (En Ubuntu con escritorio Gnome se puede llamar con Alt+F2 ==> gnome-terminal) ==> Usar el comando gconftool-2

Teclear en la terminal para la ayuda de gconftool-2:

gconftool-2 --help | gconftool-2 -?

info gconftool-2

man gconftool-2

 

Como obtener información de gconf-editor y como nos puede servir con gconftool-2

Cuando abrimos gconf-editor, hay una parte que dice Key Documentation, la información que nos da es la key name, key owner, una descripción corta y una larga. Cuando seleccionamos cualquiera de las opciones nos da su Key Documentation. Además si hacemos doble click sobre la opción (del lado de la columna que dice Name) nos salta una ventana para cambiar la Edit Key, independientemente de que podemos modificarla, nos dice el tipo (Type) y valor (Value) de la key además que repite el Key name.

Ejemplo:

a) Abrimos gconf-editor

b) Navegamos hasta: / > apps > gnome-power-manager > actions

c) Si hacemos Click sobre la opción critical_battery, en Key Documentation aparece la siguiente información:

Key name: /apps/gnome-power-manager/actions/critical_battery
Key owner: (None)
Short description: Battery critical low action
Long description: The action to take when the battery is critically low. Possible values are "hibernate", "suspend", "shutdown" and "nothing".

d) Y si hacemos doble click sobre la opción del lado de la columna Name, nos salta la ventana emergente “Edit key” con la siguiente información:

Name: /apps/gnome-power-manager/actions/critical_battery
Type: String
Value: hibernate

Nota: En Value (valor) es la acción que le esta asignada. En mi caso es hibernar. En la descripción larga (Long description) dice cuales valores puede tomar.

Bien, ya tenemos la información de key name, key owner, type, value, descripción corta y larga para la opción critical_battery. ¿De que nos sirve para gconftool-2? Pues para que con una sola orden en la terminal o script le indiquemos a gnome que hacer cuando la batería se este acabando, sin que tengamos que abrir gconf-editor, naveguemos a través de el para cambiarla.

La orden para cambiar el valor de critical_battery de Gconf usando gconftool-2, cambiar su value a "suspend", quedaría:

gconftool-2 --type string -s /apps/gnome-power-manager/actions/critical_battery "suspend"

 

 

 

Gconf configuration system.- Cambiar el orden y orientación de los botones del titlebar

Los botones en el titlebar (cerrar, maximizar, minimizar y menú) se pueden cambiar a voluntad, modificando el texto de value (valor) en /apps/metacity/general/button_layout.

Las opciones que le indican al titlebar en value (valor) en que orden, como y cuales botones deben de aparecer, van separadas por una coma (,), excepto cuando se trata de los dos puntos (:), que no la necesita ni atrás ni adelante.

 

Opciones para value del titlebar:

:      Los dos puntos (:) le indica al titlebar de cual lado van los botones. Lo que este a la izquierda de los dos puntos (:), aparece a la izquierda y lo que este a la derecha aparece a la derecha. Esta opción no se separa por las comas (,), ni adelante y detrás. Ejemplo: "menu:close"

menu      En este menú aparece las opciones para cerrar, mantener siempre visible en el área de trabajo, etc. Su atajo con el que se llama es con Alt+Barra espaciadora.

minimize      Minimiza la ventana

maximize      Maximiza la ventana

closer      Cierra la ventana

spacer      Es una etiqueta especial que agrega un espacio entre botones.

 

Se modifica el titlebar con estas dos formas:

a) Gráfica

Alt+F2 ==> gconf-editor ==> Navegar por las opciones desde: apps > metacity > general > botton_layout > Escribir en value el texto que indica como y cuales botones aparecen, sin entrecomillado (").

b) Desde la terminal

gconftool-2 --type string -s /apps/metacity/general/button_layout " [Texto que indica como y cuales botones aparecen ]"

 

Ejemplo:

Para que los botones del titlebar queden en el siguiente orden: close, minimizar y maximizar, y todas en la esquina superior derecha:

Grafico

Alt+F2 ==> gconf-editor ==> Navegar por las opciones desde: apps > metacity > general > botton_layout > Escribir en value: :close,minimize,maximize

Desde terminal

gconftool-2 --type string -s /apps/metacity/general/button_layout ":close,minimize,maximize"

 

Ejemplos de textos:

a) Este orden del titlebar es para los que extrañan los botones a la derecha. Hace que aparezcan a la derecha los botones de cerrar, minimizar y maximizar, y en ese orden.

":close,minimize,maximize"

b) Hace que todos lo botones queden a la derecha y en el siguiente orden: cerrar, un espacio, minimizar, espacio y maximizar.

":close,spacer,minimize,spacer,maximize"

c) Aparecen a la derecha lo botones de cerrar, espacio, minimizar, espacio, maximizar, espacio y menu.

":close,spacer,minimize,spacer,maximize,spacer,menu"

d) Aparece a la izquierda los botones de cerrar, espacio, minimizar y a la derecha espacio, maximizar, espacio y menú.

"close,spacer,minimize:spacer,maximize,spacer,menu"

e) Aparece a la izquierda minimizar, espacio, maximizar, espacio, menú y a la derecha el botón de cerrar.

"minimize,spacer,maximize,spacer,menu:close"

f) Todos los botones aparecen a la izquierda y en el siguiete orden: menú, espacio, minimizar, espacio, maximizar, espacio y cerrar.

"menu,spacer,minimize,spacer,maximize,spacer,close:"

g) Aparecen a la izquierda los botones cerrar, espacio, minimizar, espacio y maximizar.

"close,spacer,minimize,spacer,maximize:"

 

 

 

GConf-Editor en Ubuntu

El GConf-Editor trabaja en Gnome, sirve para editar las preferencias de GConf, aunque no es muy usado por el usuario medio y no se recomienda su uso, útil sobre todo cuando algún programa no proporciona las herramientas para cambiar las opciones y tenemos que recurrir a GConf-Editor para cambiarlas manualmente.

GConf es donde se almacenan las opciones de configuración de Gnome y los distintos programas. Es tecnología de autoaplicación (auto-apply) eso significa que en cuanto modifiquemos alguna de las opciones esta se aplica automáticamente. Todos los cambios se archivan en el directorio ~/.gconf en formato XML

Si meten la pata y no saben como dar marcha atrás y están usando ubuntu restablescan el escritorio, con las siguientes ordenes en la terminal y dentro de mi carpeta personal:

$ rm -rf .gnome .gnome2 .gconf .gconfd .metacity

Para entrar a mi carpeta personal; en mi caso como mi nombre de usuario es travesuras así se llama la mia entonces tecleo en la terminal

$ cd /home/travesuras

Pero tengan cuidado y hagan un respaldo previamente, a mi se me borro hasta las combinaciones de teclas que hice desde Sistema ==> Preferencias ==> Combinaciones de teclas

Formas de entrar al gconf-editor:

  1. Alt+F2 ==> gconf-editor
  2. Terminal ==> gconf-editor
  3. Aplicaciones ==> Herramientas del sistema ==> Editor de configuración

Ocultar o mostrar iconos en el escritorio.

Si estan marcados son visibles y viceversa.

Volúmenes montados

apps->nautilus->desktop->volumes_visible

Icono de la computadora

apps->nautilus->desktop->computer_icon_visible

Icono de reciclado

apps->nautilus->desktop->trash_icon_visible

Carpeta personal

apps->nautilus->desktop->home_icon_visible

Serviciosde red

apps->nautilus->desktop->network_icon_visible

Cambiar el nombre a los iconos en el escritorio.

Modificando [xxxx]_icon_name se puede cambiar el nombre o con el menú contextual -> Renombrar

Ruta:

apps->nautilus->desktop->[xxxx]_icon_name

Se supone que das doble click sobre [xxxx]_icon_name para que se salga el menú A mi no me funcionaba a la primera, tenia que haber cambiado el nombre con el menú contextual antes y era entonces cuando ya podía modificarlo a mi gusto desde el gconf-editor.

Atajos personalizados

apps -> metacity -> global_keybindings -> run_command_(xn) -> atajo elegido, por ejemplo F1 -> keybinding_commands (en apps -> metacity) -> command_(xn) según el número que le corresponda al run_command -> introducir comando como por ejemplo synaptic

Cambiar configuración del reloj

apps > panel > applets > clock_screen > prefs -> custom_format escribimos: <span size="smaller" color="#B4045F" >%a %d %b</span> <b>%H:%M</b> -> En el campo format escribimos custom

El color (en hexagecimales), negritas y las demás cosas se pueden cambiar según las preferencias de cada quien.

Permisos avanzados en nautilus

apps -> nautilus -> preferencias -> marcar show_advanced_permissions

 

 

 

 

 

http://www.gnome.org/projects/gconf/
http://es.wikipedia.org/wiki/GConf
http://packages.ubuntu.com/feisty/utils/gconf-editor
http://en.wikipedia.org/wiki/Gconf-editor
http://ubunturoot.wordpress.com/2007/11/25/ocultar-iconos-de-las-particiones-en-el-escritorio/
http://mundogeek.net/archivos/2005/05/28/vincular-una-combinacion-de-teclas-a-un-comando-en-gnome/
http://www.guia-ubuntu.org/index.php?title=%C3%8Dconos_en_el_escritorio
https://help.ubuntu.com/community/CompositeManager/ConfiguringCompiz
http://library.gnome.org/users/gconf-editor/index.html.es
http://www.molinux.info/downloads/documents/manual-usuario-molinux/ch36s04.html
http://www.adslfaqs.com.ar/como-cambiar-aspecto-del-reloj-en-linux-ubuntu-debian/
http://120linux.com/aspecto-reloj-ubuntu/
http://html-color-codes.info/codigos-de-colores-hexadecimalesd/
http://html-color-codes.info
http://tuxpepino.wordpress.com/2007/04/24/instalar-kiba-dock/
http://www.hachemuda.com/2007/07/11/cambiar-el-aspecto-del-panel-de-gnome-al-ocultarse-automaticamente/
http://feeds.feedburner.com/~r/120linuxfeed/~3/370632961/
http://library.gnome.org/users/gconf-editor/2.24/gconf-editor.html
http://www.guia-ubuntu.org/index.php?title=Restablecer_el_escritorio_Gnome
http://www.geocities.com/lunamatic/tutcss/intro.htm

— EN CONSTRUCCION —