Creando un buscador de ficheros para Thunar con Zenity

Este artículo lo publiqué hace mucho tiempo en mi antiguo blog sobre Xfce, basado en otro artículo publicado en el blog de Xubuntu y se los dejo nuevamente acá.

Lo que vamos a hacer, es crear un buscar de ficheros para Thunar usando Zenity. Lo primero que tenemos que hacer es instalar zenity:

$ sudo aptitude install zenity

Luego abrimos un terminal y ponemos:

$ mkdir ~/.bash-scripts/

De esta forma creamos un directorio que contendrá el script que ejecutará la acción en si. Ahora creamos un fichero llamado search-for-files adentro de la siguiente forma:

mousepad ~/.bash-scripts/search-for-files

y le pegamos esto adentro:

#!/bin/bash
#search-for-files
# change this figure to suit yourself -- I find zenity dies from about 1000 results but YMMV
maxresults=500
# again, change the path to the icon to suit yourself. But who doesn't like tango?
window_icon="/usr/share/icons/Tango/scalable/actions/search.svg"
# this script will work for any environment that has bash and zenity, so the filemanager is entirely down to you! you can add extra arguments to the string as long as the last argument is the path of the folder you open
filemanager="thunar"
window_title="Search for Files"
srcPath="$*"
if ! [ -d "$srcPath" ] ; then
cd ~/
srcPath=`zenity --file-selection --directory --title="$window_title -- Look in folder" --window-icon="$window_icon"`
fi
if [ -d "$srcPath" ] ; then
fragment=`zenity --entry --title="$window_title -- Name contains:" --window-icon="$window_icon" --text="Search strings less than 2 characters are ignored"`
if ! [ ${#fragment} -lt 2 ] ; then
(
echo 10
O=$IFS IFS=$'\n' files=( `find "$srcPath" -iname "*$fragment*" -printf \"%Y\"\ \"%f\"\ \"%k\ KB\"\ \"%t\"\ \"%h\"\\\n | head -n $maxresults` ) IFS=$O
echo 100
selected=`eval zenity --list --title=\"${#files[@]} Files Found -- $window_title\" --window-icon="$window_icon" --width="600" --height="400" --text=\"Search results:\" --print-column=5 --column \"Type\" --column \"Name\" --column \"Size\" --column \"Date modified\" --column \"Path\" ${files[@]}`
if [ -e "$selected" ] ; then "$filemanager" "$selected" ; fi
) | zenity --progress --auto-close --pulsate --title="Searching…" --window-icon="$window_icon" --text="Searching for \"$fragment\""
fi
fi
exit

y le damos permisos de ejecución:

chmod a+x ~/.bash-scripts/search-for-files

Ahora hacemos un backup del fichero uca.xml:

$ sudo cp /etc/xdg/Thunar/uca.xml /etc/xdg/Thunar/uca.xml.old

al que le pondremos al final esto:

<action>
<icon>/usr/share/icons/Tango/scalable/actions/search.svg</icon>
<name>Search for Files</name>
<command>bash ~/.bash-scripts/search-for-files %f</command>
<description>Search this folder for files</description>
<patterns>*</patterns>
<directories/>
</action>

Ahora lo que nos queda es abrir Thunar » Editar » Configurar acciones personalizadas y creamos una nueva. Y llenamos los siguientes campos:

En la pestaña Básico:
Nombre: Buscador
Descripción: Buscador
Comando: bash ~/.bash-scripts/search-for-files %f
Icono: Seleccionamos el que más nos guste.

Quedando de esta forma:

Ahora en la pestaña Condiciones de apariencia lo siguientes campos:
Patrón de archivo: *
Aparece si la selección contiene: Directorio.

Y nos queda de esta forma:

Ahora en Thunar cuando abrimos el menú con el clic derecho, no sale la opción de buscar:

Y si pinchamos en ella nos saldrá una ventana donde podremos insertar el criterio de búsqueda:

Cuando comencemos la búsqueda veremos algo como esto:

y por último el resultado de la misma:

Si hacemos doble clic sobre el resultado, se nos abrirá una ventana de Thunar con la carpeta donde se encuentra el fichero. De esta forma le damos mucha más potencia nuestro escritorio Xfce.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   alez dijo

    Qué complicacion! Jeje, aqui tienes otra forma de lograr algo parecido que me resulta mas sencilla.
    http://marksnotebook.com/ubuntu/how-add-built-search-thunar-using-catfish
    Con el follon de Unity y Gnome3 mucha gente se pasa a Xfce y empiezan a descubrir las maravillas de Thunar… En serio, ese programa es increible. Muchas gracias por el blog, lo sigo regularmente aunque sea la primera vez que posteo.

    1.    elav <° Linux dijo

      Bienvenido alez:
      Jajaja no es tan complicado, es bien sencillo. Es cierto que con CatFish podemos tener una potente herramienta de búsqueda, pero nada, por lo menos yo no lo uso ya que es una aplicación menos para instalar 😀

  2.   Oscar dijo

    Gracias elav, muy buen tuto, lo voy a guardar con los que ya publicaste, creo que XFCE tiene mucho futuro como alternativa, eso si, siempre que no se desboque en el consumo de Ram.

  3.   leodelacruz dijo

    Muy bueno, a probarlo 😉

  4.   matovitch dijo

    No entiendo espagnol, pero entiendo bash.
    I started to implement the same thing. I saved a lot of time thanks to your code.
    Gracias. Thank you. Merci de France.

  5.   Luis dijo

    Hay un gran problema con este script…

    Si usted hace una busqueda de algo que no esta alli entonces el buscador se queda en un bucle infinito y la unica manera de cerrarlo es matando el proceso.

    1.    Alexander Morales dijo

      Creo que la solucion en ese caso seria hacer un if que valide si no hay archivos primero, y si existe alguno que haga la busqueda, 😀

  6.   Raúl dijo

    Muchísimas gracias, de verdad sirve de mucho e incluso para crear otro complemento para thunar.

  7.   Victor dijo

    Me pareció excelente. muy practico. Muchas Gracias.