Digikam4 con splashscreen dinámico
sábado, 14 de mayo de 2011Un sencillo script que me hice ayer jugando la base de datos de Digikam4.
El splashscreen (de Digikam4 en este caso) es esa pantallita (normalmente una foto decorada) que aparece en el momento de lanzar la aplicación y mientras se cargan las librerias y plugins. Como en muchos otros programas es personalizable. Basta con poner una imagen PNG en ~/.kde4/share/apps/digikam/data/splash-digikam.png para que al iniciar el programa se use nuestra imagen en lugar de la que trae el programa. Ya hace tiempo colgué por aquí algunos ejemplos propios para Digikam/KDE3.
¿Y porqué no hacerlo dinámico? Una imagen diferente cada vez que se cargue Digikam, por ejemplo: El splash-screen será la última fotografía modificada cuyo RATING (el número de estrellitas,1-5, con que valoramos cada foto) sera superior a 2 (por ejem). Eso es lo que hacen las siguientes líneas.
Copialas en un archivo de texto, guardalas como ~/bin/splashd.sh y personalizalas:
#!/bin/bash
#nombre del archivo de la base de datos de Digikam4 (comprueba)
fileDB="digikam4.db"
#ruta absoluta al archivo anterior (cambialo)
pathDB="/home/album/Fotografia"
baseDatos="$pathDB/$fileDB"
#ruta de usuario (introduce tu username)
dirDestino="/home/tu-user/.kde4/share/apps/digikam"
#obtiene nombre de imagen y album de la última imagen modificada y cuyo rating se superior a 2
id=$(sqlite3 -list $baseDatos "SELECT b.album, b.name FROM imageinformation AS a INNER JOIN images AS b ON a.imageid=b.id WHERE a.rating<6 AND b.name LIKE '%.jpg' ORDER BY b.modificationDate DESC LIMIT 1")
#con lo anterior obtenemos el album en que se encuentra
foto=$(sqlite3 -list $baseDatos "SELECT a.relativePath,b.specificPath FROM albums AS a INNER JOIN albumroots AS b ON a.albumRoot=b.id WHERE a.id=${id/|*/} LIMIT 1")
#la ruta absoluta a la imagen es
fotografia=$(echo "$pathDB|$id|$foto" | awk -F "|" '{print $1""$4"/"$3}')
#a partir de la imagen seleccionada generamos el splashscreen
convert "$fotografia" -resize 500x -format PNG png:- | composite -gravity south "$dirDestino/over.png" - "$dirDestino/data/splash-digikam.png"
A continuación reemplazamos el binario de Digikam por otro script:sudo
mv /usr/bin/digikam /usr/bin/digikam-bin
En su lugar (/usr/bin/digikam) ponemos un script que diga:#!/bin/bash
digikam-bin $@ && sh /home/tu-user/bin/splashd.sh
Solo necesitais eso y el PNG que se superpone a vuestra fotografía con la decoración de Digikam ( descargar over.png . Guardalo en tu ~/.kde4/share/apps/digikam/over.png ). En adelante al salir de Digikam se genera el splashscreen tal y como veis en la fotografía de arriba y que será el que veais en el siguiente inicio de Digikam.
Actualización
He hecho un par de modificaciones en las lineas del script superior. Tal y como está ahora esas lineas toman la última foto modificada cuya puntuación sea menor de 6 (es decir, la última modificada entre todas puesto que la máxima puntuación es 5) y además que sea un JPG. Esto lo he incorporado porque el script falla si la última imagen es un vídeo ó un RAW
diminutoblog
#1/ 16 de May/2011 a 18:17:35
Otros comentarios de «diminutoblog»
Qué mayor me pillan loa script, Alberto. Diez años menos y ahí me tendrías a la zaga de todas las secretarias de dirección.
Broma chapucera aparte: aún estoy hecho un lío con proceso de imágenes, así que me conformo con los monos que por defecto me anuncian la apertura de un programa.
Eso sí... Envidia me das.
Trebol-A
#2/ 17 de May/2011 a 10:16:45
Otros comentarios de «Trebol-A»
si, pues ese es el problema, que yo también me hago mayor y con el tiempo mucho más maniático y un dia te empeñas en sacar la cabeza por la pared y hasta que no la tiras no paras de darte camotazos!! :)
Yo quiero volver a los 17, cuando me daba igual es splashscreen que el screensplash!! pos sa roto, pos vale!! ;)
18 de December, 2024 @ 13:55