Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Utilidades de Escritorio - asmailUtilidades de Escritorio - bbbm

Utilidades de Escritorio - Aura




Utilidades de Escritorio - Aura




Copyright

Copyright © José Luis Lara Carrascal  2013-2023   http://manualinux.es



Sumario

Introducción
Características
Liquid Rescale
Aura
Opciones de línea de comandos
Configuración
Configurar el inicio de Aura
Iniciamos Aura
Enlaces




Introducción  

Aura es una utilidad de escritorio, cuya finalidad consiste en colocar una imagen en el fondo de la pantalla, ya sea de forma fija, aleatoria o cíclica. Hasta aquí estaríamos hablando de otro setter más para GNU/Linux, como los que existen documentados en esta web. Pero la particularidad de esta utilidad, es que establece la imagen del fondo de la pantalla a partir de una llamada en segundo plano que realiza al programa El Gimp, mediante un plugin escrito en Python que viene con el programa, utilizando el plugin Liquid Rescale, para redimensionar la imagen al tamaño de la pantalla de forma uniforme y sin preservar la razón de aspecto de la misma, creando una imagen temporal en formato PNG en el directorio /temp del sistema, y añadiendo una etiqueta incrustada en la esquina superior izquierda de la imagen con los datos Exif de la misma.

Esto supone que el resultado de, por ejemplo, adaptar el formato de una imagen de 16x9 a una resolución de 4x3 sea muy dispar. Siendo en algunos casos, materialmente imposible lograr que una modelo tumbada que ocupa toda la pantalla, vea como su ombligo desaparece por arte de magia, o mejor dicho, por arte del algoritmo que utiliza el plugin Liquid Rescale. Otro de los inconvenientes de este programa, es el tiempo lógico que tarda en generar la imagen, teniendo en cuenta que tiene que ejecutar El Gimp, en segundo plano, con lo que no es recomendable utilizarlo como programa principal para colocar una imagen en el fondo de la pantalla. Sí es recomendable utilizarlo, si lo que queremos es alternar de forma periódica el fondo de la pantalla, sin importarnos la proporcionalidad del aspecto de las imágenes.

Además de tratar su instalación, he incluido una modificación personal del plugin que viene con el programa, para que pueda ser utilizado con cualquiera de los setters cuya documentación está disponible en esta web. La instalación de Liquid Rescale también se incluye en este manual.



Características  

* Selecciona las imágenes al azar de rutas de acceso específicas.
* Omite las imágenes muy pequeñas y las que tienen razón de aspecto diferente.
* Reescala las imágenes de forma inteligente (recortando los bordes, redimensionando mediante interpolación cúbica y el uso del algoritmo Liquid Rescale) para ajustarlas al tamaño de la pantalla con la pérdida mínima de calidad.
* Incrusta una etiqueta en la esquina superior izquierda de la imagen con los datos Exif de la misma. 
* Puede ejecutarse en segundo plano y cambiar de imagen cada cierto tiempo configurable.
* Hace un seguimiento de las imágenes utilizadas y permite omitir el uso de las imágenes que deseemos.



Liquid Rescale  

Liquid Rescale
es un plugin para El Gimp, e interfaz de uso de la librería Liquid Rescale, que proporciona una implementación del algoritmo Seam Carving, descrito en este documento. El procedimiento del algoritmo consiste en cambiar el tamaño de las imágenes de forma no uniforme, preservando sus características y evitando la distorsión de las partes más importantes.

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Liquid Rescale para la elaboración de este documento.

* GCC - (13.2.0) o Clang - (16.0.6)
* Gawk - (5.2.2)
* M4 - (1.4.19)
* Libtool - (2.4.7)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Automake - (1.16.5)
* Gettext - (0.22)
* Autoconf - (2.71)
* Pkg-config - (0.29.2)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 21.1.8)
* Gimp - (2.10.34)
* GLib - (2.74.7)
* GTK+ - (2.24.33)

Módulos de Perl

* XML::Parser - (2.46)



Descarga

liblqr-1-0.4.2.tar.bz2  |  gimp-lqr-plugin-0.7.2.tar.bz2

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'

Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
IPA
$ export {C,CXX}FLAGS+=' -fipa-pta'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
En versiones inferiores a GCC 10, sustituir auto por el número de núcleos que tenga nuestro procesador. Si sólo tiene uno, utilizar el parámetro -flto
Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos en el proceso de compilación
$ export {C,CXX}FLAGS+=' -w'

Parámetros adicionales de eliminación de errores específicos en el proceso de compilación
GCC 10, Clang 11, y versiones superiores de los dos compiladores
$ export {C,CXX}FLAGS+=' -fcommon'

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64"
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice.

Establecer el uso de enlazador dinámico para Mold
$ export LDFLAGS+=' -fuse-ld=mold'

Establecer el uso de enlazador dinámico para LLD
Clang
$ export LDFLAGS+=' -fuse-ld=lld'
Optimizaciones complementarias LTO/ThinLTO de LLD
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)"
Optimizaciones complementarias ThinLTO de LLD
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)"
Modificar el script de Libtool incluido en el paquete para poder hacerlo compatible con LLD
$ lld-libtool
Hacemos uso de la función de bash explicada en la sección del manual de Clang, para poder parchear el script de Libtool incluido en el paquete, y poder llevar a cabo el proceso de compilación con LLD como enlazador dinámico. Esto también es aplicable para el enlazador dinámico Mold.

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++

Extracción y Configuración de Liquid Rescale Library  Bloc de Notas Información general sobre el uso de los comandos

$ tar jxvf liblqr-1-0.4.2.tar.bz2
$ cd liblqr-1.0.4.2
$ ./configure --libdir=/usr/lib64

Explicación de los comandos

--libdir=/usr/lib64 : Instala la librería en /usr/lib64, en sistemas de 64 bits multiarquitectura. La ubicación y el nombre de este directorio, puede variar en función de la distribución que cada usuario use.

Compilación

$ make

Parámetros de compilación opcionales  

-j$(nproc): Establece el número de procesos de compilación en paralelo, en función del número de núcleos e hilos que tenga nuestro procesador, tomando como referencia la información mostrada por el sistema con el comando correspondiente. Si nuestro procesador es mononúcleo de un solo hilo, no añadir esta opción.

Instalación como root

$ su
# make install-strip
# ldconfig -v

Estadísticas de Compilación e Instalación de Liquid Rescale Library

Estadísticas de Compilación e Instalación de Liquid Rescale Library
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.10-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 1"
Archivos instalados 15
Mostrar/Ocultar la lista de archivos instalados
Enlaces simbólicos creados 2
Mostrar/Ocultar la lista de enlaces simbólicos creados
Ocupación de espacio en disco 120 KB

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

liblqr-1-0.4.2-scripts.tar.gz

$ su
# tar zxvf liblqr-1-0.4.2-scripts.tar.gz
# cd liblqr-1-0.4.2-scripts
# ./Desinstalar_liblqr-1-0.4.2

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf liblqr-1-0.4.2-scripts.tar.gz
# cd liblqr-1-0.4.2-scripts
# ./Respaldar_liblqr-1-0.4.2

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_liblqr-1-0.4.2


Extracción y Configuración de Liquid Rescale Plugin 

$ tar jxvf gimp-lqr-plugin-0.7.2.tar.bz2
$ cd gimp-lqr-plugin-0.7.2
$ ./configure --prefix=$(pkg-config --variable=prefix gimp-2.0)

Explicación de los comandos

--prefix=$(pkg-config --variable=prefix gimp-2.0) : Instala el plugin en la ruta de instalación determinada por el prefijo de instalación proporcionado por el programa pkg-config. Esto evita tener que añadir una ruta específica en función de dónde tengamos instalado Gimp.

Compilación

$ make

Parámetros de compilación opcionales

Instalación como root

$ su -c "make install-strip"

Estadísticas de Compilación e Instalación de Liquid Rescale Plugin

Estadísticas de Compilación e Instalación de Liquid Rescale Plugin
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.10-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 4"
Archivos instalados 28
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 868 KB

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

gimp-lqr-plugin-0.7.2-scripts.tar.gz

$ su
# tar zxvf gimp-lqr-plugin-0.7.2-scripts.tar.gz
# cd gimp-lqr-plugin-0.7.2-scripts
# ./Desinstalar_gimp-lqr-plugin-0.7.2

Copia de Seguridad como root

$ su
# tar zxvf gimp-lqr-plugin-0.7.2-scripts.tar.gz
# cd gimp-lqr-plugin-0.7.2-scripts
# ./Respaldar_gimp-lqr-plugin-0.7.2

Restaurar la Copia de Seguridad como root

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_gimp-lqr-plugin-0.7.2




Aura  

Instalación  

Dependencias


Entre paréntesis la versión con la que se ha instalado Aura para la elaboración de este documento.

* Python - (2.7.18)
* PyGTK - (2.24.0)
* Gimp - (2.10.34)
* Liquid Rescale Plugin - (0.7.2)
* Xprintidle - (0.2.3) - opcional
* Pyexiv2 - (0.3.2) - opcional
* Dbus-python - (1.2.18) - opcional
* Python-Colormath - (3.0.0) - opcional



Descarga  

aura-1.11.tar.gz

Extracción e Instalación como usuario  Bloc de Notas

$ tar zxvf aura-1.11.tar.gz
$ cd aura-1.11.0
$ mkdir -p ~/bin
$ mkdir -p ~/.config/GIMP/2.10/plug-ins
$ cp aura ~/bin
$ cp lqr_wpset.py ~/.config/GIMP/2.10/plug-ins
$ sed -i '$iexport PATH=$HOME/bin:$PATH' ~/.bashrc

Explicación de los comandos

sed -i '$iexport PATH=$HOME/bin:$PATH' ~/.bashrc : Normalmente el directorio /bin de nuestro home suele estar incluido por defecto en el PATH, ejecutar este comando en el caso de que no sea así en la distribución que estemos utilizando. Si no existe el archivo ~/.bashrc, cambiar el comando por éste otro: echo 'export PATH=$HOME/bin:$PATH' > ~/.bashrc

Directorio de configuración personal

~/.aura Es el directorio de configuración personal de Aura en nuestro home.
~/.aura/blacklist Es el archivo que que contiene los nombres de las imágenes que serán omitidas cuando Aura sea ejecutado en modo aleatorio y en segundo plano. Con el comando "aura --blacklist" podemos hacer que la imagen de fondo actual, no sea establecida más como fondo de escritorio. El nombre de la misma quedará registrado en este archivo.
~/.aura/current Es el archivo que contiene el nombre de la imagen que está establecida como fondo de escritorio en curso.
~/.aura/history.log Es el archivo de registro del historial de las imágenes que han sido utilizadas como fondo de escritorio por Aura.
~/.aura/picker.log Es el archivo de registro del proceso de ejecución de Gimp y el plugin lqr_wpset.py. Cualquier problema en la ejecución del mismo quedará registrado en este archivo.
~/.aura/picker.pid Es el archivo que contiene el número PID asignado al proceso de ejecución de Gimp y el plugin lqr_wpset.py.

Desinstalación como usuario

1) MODO TRADICIONAL

$ rm -f ~/bin/aura
$ rm -f ~/.config/GIMP/2.10/plug-ins/lqr_wpset.py

2) MODO MANUALINUX

aura-1.11.0-scripts.tar.gz

$ tar zxvf aura-1.11.0-scripts.tar.gz
$ cd aura-1.11.0-scripts
$ ./Desinstalar_aura-1.11.0

Copia de Seguridad como usuario

$ tar zxvf aura-1.11.0-scripts.tar.gz
$ cd aura-1.11.0-scripts
$ ./Respaldar_aura-1.11.0

Restaurar la Copia de Seguridad como usuario

$ cd ~/copibin/restaurar_copias
$ ./Restaurar_aura-1.11.0



Opciones de línea de comandos de Aura  

Para que el programa nos muestre las opciones de ejecución, ejecutamos el comando aura -h. Un ejemplo traducido al español.

[jose@localhost ~]$ aura -h
Uso:
  aura rutas...
  aura ( -d | --daemon ) [ --no-fork ] [ --no-init ] rutas...
  aura [ -n | --next ] [ -b | --blacklist ] [ -k | --kill ] [ -h | --help ]

Establecer la imagen de fondo seleccionada al azar de las rutas especificadas.

La opción --daemon inicia la instancia en segundo plano (a menos que --no-fork se haya especificado),
y obtiene/establece una nueva imagen en el inicio (a menos que --no-init se haya especificado),
y repite el proceso cada 10800s después.

Algunas opciones (o sus equivalentes de una letra) pueden utilizarse en lugar de rutas para controlar el
proceso en ejecución de aura (iniciado con la opción --daemon):
  --next       cambia al siguiente fondo de forma inmediata.
  --blacklist  añade el fondo actual a la lista negra (será omitido a partir de ahora).
  --kill       detiene la instancia en ejecución actual.
  --current    muestra el nombre de la imagen del fondo actual
  --help       muestra esta ayuda

Varias rutas y parámetros pueden especificarse también en el comienzo de este script.



Configuración de Aura  Bloc de Notas  

El tiempo predefinido para cambiar de una imagen a otra es de 3 horas. Modificando lo que está de color rojo, del script del programa, lo dejaremos en 15 minutos. Tener en cuenta que el tiempo se mide en segundos.

#!/bin/bash

## Options
interval=$(( 3 * 300 )) # 15m
recheck=$(( 300 )) # 5m
activity_timeout=$(( 30 * 60 )) # 30min
max_log_size=$(( 1024 * 1024 )) # 1M, current+last files are kept

En un principio, el programa sólo es compatible con los entornos gráficos GNOME, XFce 4 y E17, en los que la integración es total. En el resto de entornos gráficos, utiliza PyGTK para colocar la imagen en el fondo de la pantalla, con el inconveniente de que no soporta pseudotransparencias. Para evitar esto, y que este manual tenga cierto sentido en esta web, modificamos el plugin lqr_wpset.py, para poder utilizar cualquier setter de los que están documentados en este sitio, y así los usuarios de administradores de ventanas podamos disfrutar del uso de este programa.

Abrimos con un editor de texto, el plugin ubicado en ~/.config/GIMP/2.10/plug-ins/lqr_wpset.py, nos vamos a la línea 156 y añadimos a continuación lo que está de color rojo, en azul el comando del setter a utilizar. Podemos cambiarlo por el que deseemos, en este ejemplo estoy utilizando Feh. Lo guardamos y ejecutamos Aura con la ruta a una imagen especifica para comprobar que funciona correctamente.

        ## E17 edbus interface
        try:
            edbus = dbus.SessionBus().get_object(
                    'org.enlightenment.wm.service', '/org/enlightenment/wm/RemoteObject' )
            dxc, dyc = edbus.GetVirtualCount(dbus_interface='org.enlightenment.wm.Desktop')
            edbus = dbus.Interface( edbus,
                dbus_interface='org.enlightenment.wm.Desktop.Background' )
            for dx, dy in it.product(xrange(dxc), xrange(dyc)): edbus.Add(0, 0, dx, dy, path)
        except dbus.exceptions.DBusException: pass # no property/object/interface/etc

        os.system('feh --bg-fill ' + path)

    ## Paint X root window via pygtk
    pb = gdk.pixbuf_new_from_file(path)
    pm, mask = pb.render_pixmap_and_mask()
    win = gdk.get_default_root_window()
    win.set_back_pixmap(pm, False)
    win.clear()
    win.draw_pixbuf(gdk.GC(win), pb, 0, 0, 0, 0, -1, -1)

Y si no queremos que se muestren los datos Exif incrustados en la esquina superior izquierda del fondo de escritorio, borramos el siguiente contenido del plugin lqr_wpset.py. Nos vamos a la línea 319 (contando las líneas añadidas anteriormente) y la borramos hasta la línea 375.

    ## Render label on top of the image layer
    # First, render all the the text boxes
    # Image title, larger than the rest of the tags
    label_title = pdb.gimp_text_fontname( image, layer_image,
        label_offset[0], label_offset[1], meta.pop('title'),
        -1, True, font_filename[1], PIXELS, font_filename[0] )
    pdb.gimp_floating_sel_to_layer(label_title)
    # Tags, ordered according to label_tags
    meta = list( (label, meta.pop(label))
        for label in it.imap(op.itemgetter(0), label_tags)
        if label in meta ) + list(meta.iteritems())
    offset_layer = 0.5 * font_timestamp[1]
    offset_y = label_title.offsets[1] + label_title.height + offset_layer
    label_keys = pdb.gimp_text_fontname( image, layer_image,
        label_title.offsets[1] + 3 * font_timestamp[1], offset_y,
        '\n'.join(it.imap(op.itemgetter(0), meta)),
        -1, True, font_timestamp[1], PIXELS, font_timestamp[0] )
    pdb.gimp_floating_sel_to_layer(label_keys)
    label_vals = pdb.gimp_text_fontname( image, layer_image,
        label_keys.offsets[0] + label_keys.width + offset_layer, offset_y,
        '\n'.join(it.imap(op.itemgetter(1), meta)),
        -1, True, font_timestamp[1], PIXELS, font_timestamp[0] )
    pdb.gimp_floating_sel_to_layer(label_vals)
    label_layers = label_title, label_keys, label_vals

    # Find average color within the label_geom box
    #  and pick the most distant color from label_colors
    label_geom = tuple(( layer.offsets + op.attrgetter(
        'width', 'height')(layer) ) for layer in label_layers)
    label_geom = label_offset + tuple( # (offsets + dimensions)
        max((g[i] + g[2+i] - label_offset[i]) for g in geoms)
        for i,geoms in enumerate([label_geom]*2) )
    pdb.gimp_context_set_feather(False)
    pdb.gimp_context_set_feather_radius(0, 0)
    pdb.gimp_image_select_rectangle(
        image, CHANNEL_OP_REPLACE,
        label_geom[0], label_geom[1],
        label_geom[2], label_geom[3] )
    label_bg_color = tuple(
        int(round(pdb.gimp_histogram(layer_image, channel, 0, 255)[0], 0)) # mean intensity value
        for channel in [HISTOGRAM_RED, HISTOGRAM_GREEN, HISTOGRAM_BLUE] )
    label_fg_color = pick_contrast_color(label_bg_color)
    gimp.set_foreground(label_fg_color), gimp.set_background(label_bg_color)
    # Set the picked color for all label layers, draw outlines
    label_outline = image.new_layer( 'label_outline',
        opacity=30, pos=image.layers.index(layer_image) )
    for layer in label_layers:
        pdb.gimp_text_layer_set_color(layer, label_fg_color)
        path = pdb.gimp_vectors_new_from_text_layer(image, layer)
        pdb.gimp_image_insert_vectors(image, path, None, -1)
        pdb.gimp_context_set_antialias(True)
        pdb.gimp_context_set_feather(False)
        pdb.gimp_image_select_item(image, CHANNEL_OP_REPLACE, path)
        pdb.gimp_selection_grow(image, 1), pdb.gimp_selection_border(image, 1)
        pdb.gimp_edit_fill(label_outline, BACKGROUND_FILL)
    # Meld all the layers together
    image.flatten()



Configurar el inicio de Aura  

En los ejemplos siguientes vamos a configurar el inicio de Aura para que se inicie en segundo plano, cargando las imágenes de un directorio determinado cada 15 minutos. Tener en cuenta que cuando Aura funciona como un daemon, podemos enviarle los siguientes comandos al programa desde una ventana de terminal:

* Cambiar a la siguiente imagen

$ aura --next

* Añadir el fondo actual a la lista negra (se omitirá su carga a partir de ahora)

$ aura --blacklist

* Detener la ejecución del programa

$ aura --kill

* Mostrar el nombre del archivo de imagen utilizado como fondo en curso

$ aura --current

Si queremos guardar las imágenes que genera el programa, podemos copiar el archivo oculto temporal en formato PNG, que se crea en el directorio /tmp con el nombre .lqr_wpset_bg.*.png, a cualquier directorio de nuestro home.

1) Awesome

Editamos el archivo de configuración personal, ~/.config/awesome/rc.lua y añadimos el comando al final del mismo de la siguiente forma:

client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}

os.execute("xbindkeys &")
os.execute("aura -d ~/Fondos/16x9 &")

2) Blackbox

Siguiendo el método que se utiliza en el manual de Blackbox, lo añadimos al script ~/.blackbox/autostart de la siguiente forma:

#!/bin/sh

aura -d ~/Fondos/16x9 &
(sleep 2; bbkeys &) &
docker &

3) Fluxbox


Editamos el archivo ~/.fluxbox/startup y lo añadimos en la sección correspondiente:

# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.

# You can set your favourite wallpaper here if you don't want
# to do it from your style.
#
#wpsetters=Esetroot fbsetbg -r /home/jose/Fondos-800x600
aura -d ~/Fondos/16x9 & 
#
# This sets a black background

#/usr/X11R6/bin/bsetroot -solid black

# This shows the fluxbox-splash-screen
# fbsetbg -C /usr/share/fluxbox/splash.jpg

4) Fvwm

Añadimos el comando de ejecución en la sección correspondiente del archivo autostart, cuya configuración se explica en el manual de Fvwm.

AddToFunc StartFunction  I     Test (Init) Exec exec xscreensaver
AddToFunc StartFunction  I     Test (Init) Exec exec aura -d ~/Fondos/16x9

5) IceWM

Añadimos el comando de ejecución al script de inicio ~/.icewm/startup,   

#!/bin/sh

aura -d ~/Fondos/16x9 &
gai-bgswitcher &
bluecombo &
sleep 5; wmix &

6) JWM

Añadimos el comando de ejecución en la sección correspondiente del archivo de configuración ~/.jwmrc, en la versión original y ~/.jwm/autostart.xml en la versión en español disponible en la web.

    <StartupCommand>
        aura -d ~/Fondos/16x9 &
    </StartupCommand>

7) Openbox

Añadimos el comando de ejecución al script de inicio ~/.config/openbox/autostart, autostart.sh en versiones inferiores a la 3.5.

sleep 5; pypanel &
xbindkeys &
aura -d ~/Fondos/16x9 &

8) Pekwm

Añadimos el comando de ejecución en la sección correspondiente del script de inicio ~/.pekwm/start.

# There's probably a few other good uses for it, too. I mainly pushed for it
# because when I was doing fluxbox's docs, people used to complain that there
# wasn't one, and I wanted to avoid that for pekwm. ;) --eyez

numlockx &
fbpanel &
#idesk &
#wmix &
aura -d ~/Fondos/16x9 &

9) Para los que inician X desde terminal con el comando startx

Para los usuarios que inician los entornos gráficos con el comando startx, pueden añadir el comando de ejecución al archivo .xinitrc que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

aura -d ~/Fondos/16x9 &
exec sawfish

10) XDM


Añadimos el comando de ejecución al archivo .xsession que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

aura -d ~/Fondos/16x9 &
exec sawfish



Iniciamos Aura  

Los resultados con paisajes son muy buenos, pero los resultados con personas son decepcionantes. En los ejemplos utilizo paisajes porque es lo que mejor resultado da.

Captura 1a
Imagen original >> 1024x768 px.


Captura 1b
Aura + Fluxbox >> 1920x1080 px.


Captura 2a
Imagen original >> 1024x768 px.

Captura 2b
Aura + Fluxbox >> 1920x1080 px.




Enlaces  


http://desktop-aura.sourceforge.net >> La web de Aura.

http://liquidrescale.wikidot.com >> La web de Liquid Rescale.


Foro Galería Blog


Actualizado el 16-08-2023

Utilidades de Escritorio - Aura

Utilidades de Escritorio - asmailUtilidades de Escritorio - bbbm