Atualização, 22 de janeiro de 2018 :
Eu tropecei em mlocate-web no GitHub, que se encaixa muito bem nos requisitos do OP, embora não tenha capacidade de abrir arquivos . Pode ser executado manualmente ou como daemon. De acordo com o README.md, o pacote foi desenvolvido no Ubuntu 16.04, então é bem recente a partir de agora.
Mini-atualização, 2 de fevereiro
Adicionadas aspas duplas a gnome-open "$TOPEN"
, para que o gnome-open receba o caminho completo dos arquivos que possuem espaço.
Atualização 2, 30 de janeiro :
Conforme solicitado nos comentários, refinei o script e adicionei a opção de abrir arquivos. Tudo é implementado com zenity, locate e gnome-open. Louvado seja a filosofia Unix de canalizar comandos para os outros!
Anotei o script, por isso deve ficar claro onde, o quê e como. Nas imagens estou abrindo o programa Hello World para java. O script sai a qualquer momento se o usuário clicar nos botões Cancelar / Encerrar.
Nota lateral: o OP solicitou que o aplicativo fosse de plataforma cruzada. Até onde sei, o zenity, o gnome-open e o locate não dependem da presença do shell do GNOME. Além disso, os usuários estarão se conectando ao seu servidor Ubuntu, e todos esses aplicativos funcionam no Ubuntu, independentemente da presença do shell do GNOME. Em outras palavras, eles estarão executando o script em seu sistema, não o deles, para localizar os arquivos.
O script refinado:
#!/bin/bash
# Author: Serg
# Description: GUI using zenity for locate utility
# Date: January 30, 2015
# This flag will make popup appear if nothing was found
FOUND=0
# Ask user for input, and store it in USRFILE variable
USRFILE='zenity --entry --title="SEARCH" --entry-text="Text here" --text="Enter a filename or part of it"'
# if use clicked OK, proceed to this big if statement
if [ $(echo $?) = 0 ]
then
TOPEN=$( ( locate $USRFILE ) | ( zenity --height 450 --width=450\
--list --column "Please wait, I'll display paths to files, if I find any"\
--title "SEARCH RESULTS" --text "Select a file you want to open"\
--height=450 --width=450 --ok-label="Open a file " --cancel-label="Quit" ) )
# FIXME: if user clicks open a file without selecting one, program will crash
# FIXME: selecting a file and hitting enter, brings up "Nothing found" dialog
# If user clicked "Open a file" , gnome-open
# will open it with whatever default
# program is listed for that file-type
if [ $(echo $?) = 0 ]
then
gnome-open "$TOPEN"
fi
# Set flag to true, do not display "Nothing found"
if [ $(echo $?) = 0 ]
then FOUND=1
fi
# If we didn't find anything, display a message
if [ $FOUND != 1 ]
then zenity --info --text="Nothing found"
fi
fi
Screenshots dos refinamentos
Obter entrada do usuário Exibir os resultados da pesquisa, se houver, pode demorar um momento para carregar Abre o arquivo selecionado
Para uma sugestão sobre como abrir este script com um atalho (clique duplo), consulte minha atualização anterior abaixo
Atualização 1, 29 de janeiro : desconsidere minha postagem anterior. Eu já pensei sobre a maneira como você redigiu o problema: "um front-end gui para localizar". Na verdade, existe um front-end de gui para scripts, zenity
, e usei-o para fazer um esboço de um script que pode ser útil. Sinta-se à vontade para alterá-lo e adicionar funcionalidade, mas no nível mais básico ele é localizado com o gui.
Para tornar um script "duplo-clicável", consulte aqui
O script
#!/bin/bash
FOUND=0
USRFILE='zenity --entry --entry-text="Text here" --text="Enter a filename or part of it"'
zenity --info --text " Please wait a little, I'll try to find it "
locate $USRFILE > results.txt && zenity --text-info --html --filename='results.txt'
if [ -e results.txt ]
then FOUND=1
rm results.txt
fi
if [ $FOUND != 1 ]
then zenity --info --text="Nothing found"
fi
Screenshots
Post antigo
Existe gnome-search-tool
, que verifiquei com ps
e htop
utilitários e não são necessários muitos recursos. Você pode instalá-lo com sudo apt-get install gnome-search-tool
.