Comunidad de diseño web y desarrollo en internet online

Crear un buscador para Thunar

Thunar es el explorador de archivos por defecto del entorno de escritorio para Unix/GNU/Linux Xfce que además de ser intuitivo es muy cómodo, ligero y fácil de usar. A pesar de que los desarrolladores están añadiéndole nuevas características como por ejemplo gestos de ratón, aún le faltan accesorios básicos como por ejemplo: un buscador. Es por ello que mediante este tip vamos a crear uno el cual tendremos disponible en el menú contextual que nos aparece al oprimir el clic derecho como se ve en la imagen posterior.



Para lograr esto lo primero que tenemos que hacer es instalar zenity:

Código :

$ sudo aptitude install zenity

Luego abrimos la consola y ponemos:

Código :

$ mkdir ~/.bash-scripts/

para crear 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:

Código :

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

y le pegamos esto adentro:

Código :

#!/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:

Código :

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

Ahora haces un backup del fichero uca.xml:

Código :

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

al que le pondremos al final esto:

Código :

<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 de archivos/carpetas
  • Comando: bash ~/.bash-scripts/search-for-files %f
  • Icono: Seleccionamos el que más nos guste.


Ahora en la pestaña Condiciones de apariencia lo siguientes campos:

Patrón de archivo: *
Aparece si la selección contiene: Directorio.

Y listo!!!

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate