
recollrunner
Source (link to git-repo or to original if based on someone elses unmodified work):
This is a simple, down-and-dirty, recoll plugin fro krunner for those of us
still resisting the use of Nepomuk because of its resource usage.
Recoll's indexing runs nicely, niced to 19, unnoticed, in the background.
Hopefully, someday soon, all of KDE's background processes will do the same!
Suggestions and participation most welcome. TRANSLATIONS?
-- Build instructions --
cd /where/your/runner/is/installed
If you compiled you recoll, set the correct path to the icon in the .desktop.
Recoll should be on your PATH. If not, set RECOLLCMD in recollrunner.h
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIRS ..
make
make install (with root privileges)
kbuildsycoca4 (if this be your first install of recollrunner)
(your $KDEDIRS is where you install your KDE 4)
Restart krunner or plasma to load the runner
Alt-F2 to launch KRunner and in the runners list you will find your runner.
0.2:
Full configuration options for Recoll's CLI, runner options for refining search.
0.3:
Corrections to command line issued for file name searches.
Corrections to parsing of recoll CLI output.
Access to configuration from the main view's activity icon.
0.4
Corrected in and out codepage onversions for non-ASCII paths in searches and krunner display. Note that base system bash LANG codepage must be consistent
with that of the KDE desktop. Indexing needs be rerun if these are changed.
GröíŸe Danke to Jean Dockes, recoll author, and Denis Prost, a French user, for their help and great patience sorting this one out!
Improved icon handling as suggested in KDE's development tutorials.
Assign relevance to get executables (see below) first and directories before other file entries.
Option to include or not include non-file hits such as obsolete index entries. Of course, one will not be able to open these. Useful also for diagnostics.
Option to include an entry to run the query in recoll's GUI application or using the kio_recoll protocol in Dolphin as requested by sxe. Note that kio-recoll might not be packaged in the distro and then one might need to install from recoll sources. Neither will use recollrunner's filter options and kio_recoll only runs a default query.
Option to mark or not mark (general krunner default) content entries.
Version 0.5
Implement Recoll 1.16.2 capabilities which is now required:
Parse using recommended and assured base64 encodings
Inclusion of recoll index parameters made available in new version:
Sorts by relevancy, doc name, date or mimetype. Recoll CLI handles the sorts but the runner maps them to groups for directories, files, and non-file entries if there are any and this is enabled.
Hits with minimum relevancy.
There is now an alternate viewer for the available file properties. This viewer can scroll through the selections and the document can be opened from the viewer. As opposed to the default runner action, the viewer dialog remains active and additional documents may be opened from it. This is, in effect, an alternate GUI for recoll using krunner. Could be a code foundation for standalone or plasmoid interface to recoll using the runner.
Additional options to help refine the number of hits:
Option to exclude archives. Archives can produce numerous hits and what the runner opens is the archive rather than the cited document.
Option to require a prefix (syntax). Recoll selections can very easily swamp
krunner which can show a limited number of selections. Using the syntax, one can
use recollrunner or not by choice. Note that the default "recoll:" may also enable a http interface for kio_recoll. Also useful and nicer than the requested kio_recoll into dolphin.
Version 0.6
Default runner action to use open file or launch the viewer GUI. This can be changed per session from the run options menu (click on tool icon at right).
Viewer can launch the configuration dialog with a page added for a new query. The page displays help for the Recoll query syntax.
Ratings & Comments
50 Comments
Hi, I get this error. "CMake Error at /usr/share/cmake/Modules/FindKDE4.cmake:61 (message): ERROR: Could not find KDE4 kde4-config Call Stack (most recent call first): CMakeLists.txt:4 (find_package)" how can i install this? Thank you in advance.
Just what I was looking for. I have installed it in Kubuntu 12.10 but the instructions are slighty different to get krunner to see the plugin. Here is what I had to do: http://www.kubuntuforums.net/entry.php?39-How-to-install-the-recoll-plugin-for-krunner-in-Kubuntu-12-10.
Thanks. Folks with account on Kubuntu forums can use your advice, others cannot read it. It is unfortunate the Kubuntu is no longer supported. There are many who prefer KDE to the latest Ubuntu desktop.
OK, well the main difference was to set the prefix cmake -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix) .. because the install went into / rather than /usr Here's another link explaining the steps I took: https://faolchu.wordpress.com/2012/12/13/recollrunner-use-the-powerful-search-features-of-recoll-with-krunner-in-kubuntu-12-10/ Thanks for making the plugin, it works really great!
Here is the rpm for Mageia 1 64bit http://mageia-gr.org/rpm/1/x86_64/plasma-runner-recoll-0.6-1mgr1.x86_64.rpm
Hi! First of all, I want to tell you that you've build a great piece of software!!, It's really great having the ability of searching files just with alt+f2 combination key. But I found a little problem (at least for me and people whose native language is spanish). You should know that in spanish (and may be in other languages like french, italian, greek) we use a lot of accented words, for example: programación (programming), oración (sentence), matemáticas (mathematics), física (physics), computación (computing) etc... The problem is that recollrunner can't find patterns with accented characters. For example, I have a Folder called "Física y Matemáticas", and even when its content are files written in english, recollrunner is unable the show me the results for those files :-( I hope this could fixed (or added) in a later release of recollrunner. If you need some help about spanish grammar, common words etc, don't doubt I will help you ;-) (as many others, I love this software). Thanks in advance! Adding this feature will open your software to many people whose primary language is spanish (and maybe other languages). Regards!! Gabriel
We have been through this with a French user and this was, hopefully, successfully sorted out. Recoll does support accented characters and has search rules to deal with them. Results are returned with accents. So check: That your kde desktop is using the same codepage as the underlying shell (bash). Best that both use Unicode-UTF8 rather than a supplemented Latin page with accents--however, consistency is the key. BTW: There is/was a problem within kde's code which was called by me so it worked OK. What kde version are you using? I am through 4.7.*. If things have been changed (presumably corrected) in 4.8.*, then I need to fix my call to reflect that, but ne'er the twain do meet.
Hi again! I'm using opensuse-kde 4.8.1...and I can see that the last version released here is 0.6 while the version I installed is 0.3-4.7 (from repositories) I can see in the changelog that you introduced accented charaters support since 0.4 (correct?) I tried to install 0.6 from the source, and apparently everything ok (at the beginning I got compilation problems, but I found the answer here hehe!), but I search for it in krunner and the recollrunner addon didnt' appear! I can see that you're working hard on it, so I'll be waiting for the fixes for kde 4.8 ;-) Great job!!
I am eagerly awaiting kde4.8 on Debian. The bug I know of effects utf-8->local character set translation inside c++ code. It would not surprise me if nothing was changed here. If kde4.8 prevents the plugin from showing up, this is a problem that would effect more than just this program so something here is suspicious. Unfortunately, until 4.8 gets at least onto Debian experimental, I have no way to check this.
Hi, first, thanks for this great app. I'm trying to build last version of recollrunner in Debian squeeze amd64. Cmake configure run just fine, but when I run make it fails: Scanning dependencies of target kcm_module_recollrunnerconfig_automoc Generating recollrunnerconfig.moc [ 0%] Built target kcm_module_recollrunnerconfig_automoc [ 9%] Generating ui_recollrunnerconfig.h 'radioButtonPatternOr_2' isn't a valid widget 'radioButtonPatternAnd_2' isn't a valid widget Scanning dependencies of target kcm_module_recollrunnerconfig [ 18%] Building CXX object CMakeFiles/kcm_module_recollrunnerconfig.dir/kcm_module_recollrunnerconfig_automoc.o [ 27%] Building CXX object CMakeFiles/kcm_module_recollrunnerconfig.dir/recollrunnerconfig.o [ 36%] Building CXX object CMakeFiles/kcm_module_recollrunnerconfig.dir/config.o Linking CXX shared module lib/kcm_module_recollrunnerconfig.so [ 36%] Built target kcm_module_recollrunnerconfig Scanning dependencies of target krunner_recollrunner_automoc Generating recollworker.moc Generating recollViewer.moc Generating recollrunner.moc [ 36%] Built target krunner_recollrunner_automoc [ 45%] Generating ui_recollViewer.h Warning: name layoutWidget is already used Scanning dependencies of target krunner_recollrunner [ 54%] Building CXX object CMakeFiles/krunner_recollrunner.dir/krunner_recollrunner_automoc.o [ 63%] Building CXX object CMakeFiles/krunner_recollrunner.dir/recollrunner.o /home/linuxbox/Downloads/Sources/128203-recollrunner-0.6.tar.bz2/recollrunner.cpp: In member function ‘void recollrunner::viewer(const Plasma::RunnerContext&, const Plasma::QueryMatch&)’: /home/linuxbox/Downloads/Sources/128203-recollrunner-0.6.tar.bz2/recollrunner.cpp:387: error: ‘suspendMatching’ was not declared in this scope /home/linuxbox/Downloads/Sources/128203-recollrunner-0.6.tar.bz2/recollrunner.cpp: In member function ‘void recollrunner::reviewer(const Plasma::RunnerContext&)’: /home/linuxbox/Downloads/Sources/128203-recollrunner-0.6.tar.bz2/recollrunner.cpp:395: error: ‘suspendMatching’ was not declared in this scope make[2]: *** [CMakeFiles/krunner_recollrunner.dir/recollrunner.o] Error 1 make[1]: *** [CMakeFiles/krunner_recollrunner.dir/all] Error 2 make: *** [all] Error 2 Thanks in advance for the help. Conar
1. Warning about tab-stop not valid widget--First I have seen of this but could be that I renamed widgets after setting the tab-order in the qt-designer. I do not keep names like those. If you use tabbing to step through controls and this work in unexpected manner, easy enough to fix. If not, can safely let it be for now. 2. The error in the end--I do not get this error. This is in krunner's "abstract" base class. What KDE version are you using. I am still OK with 4.7 from Debian Experimental. 4.8 has been released but I have no way of installing packages. If you have 4.8 up, this could be the problem.
I'm using Debian stable, with KDE 4.4.5 Thanks in advance. C.
I do not remember if I had this running on 4.4. Maybe update to 4.5 at least. Otherwise, comment out the two lines in question--I doubt if they really do anything critical. The tab ordering I will fix easily in the qt designer.
Hi David, and thanks for that new release. I tried to install it on Mageia 1. But I'm facing a problem : make fails with : "fatal error : qt4/QtCore/qstringlist.h : no such file or directory." In Mageia, the qstringlist.h file sits in /usr/lib/qt4/include/Qt so I tried cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INCLUDE_PATH=/usr/lib/qt4/include/Qt .. but make still fails with the same error (not surprising, since it looks for that relative path qt4/QtCore/qstringlist.h that does not exist anywhere). Any solution ? Thanks Denis PS : I had no problem installing recollrunner 0.4 on Mageia 1.
0.4 might not have used QStringList. That ../lib/qt4/include is strange. Are ALL your qt4 includes there? I certainly request others. Try the include path just /usr/lib. This might get you in trouble with the other qt4 includes, however. If all the others are in the more standard? /usr/include/qt4 ..., then maybe copy or synlink the file to there. Then it should play.
Thanks for your answer, yes, all the qt4 includes seemed to be in /usr/lib/qt4/include/Qt. I tried /usr/lib as include path option in cmake but it failed. Finally,the problem was solved with : 1) mkdir /usr/include/qt4/ 2) ln -s /usr/lib/qt4/include/Qt /usr/include/qt4/QtCore
Thank you, for the new version. It looks now better, with the "real" icons and with the additve ("Recoll-".....) in the file-names. I don't like Strigi and Nepomuk, because they are not stable enough and they don't find ***ALL*** files. But Recoll is very stable and find ***ALL*** files and with your plugin (Recollrunner) it's the best desktop-search-tool. Thank you very much.
Hi there, at first, thx for this great runner, its the only one i'm using beside the app starter. :) There is only on thing that bothers me. When i search for something, normally i get a long list of files which i can choose from. It would be so great if hitting enter, after you typed a word (and search results are shown) dolphin would be opened with the search results listed. Currently, hitting enter it opens the first search result. I'm using the dolphin recoll kio so my idea should be possible if it is possible to trigger dolphin from withing krunner. What do you think?
Krunner functionality is on clicking an entry. There may be several options for a particular item. What happens for recoll results depends upon the file's mime type. A pdf gets opened in a viewer, an odt in openoffice/libreoffice, a text file in a text editor and a folder in dolphin or such. Programs used can be set in system configuration. The functionality you describe might well be good. Must remember that the directory structure is not flat and dolphin will show one or two directories which might contain some but not all the hits. In any event, this is a proposed functionality for krunner itself.
A solution could be, to add an item as the first list entry that calls dolphin like this: "recoll:/current search term". This way you could simply press enter to have the effect i described above. What do you think? Is something like that possible?
Question is what folder would be shown in dolphin? Hits can be all over the user home file system. Multiple instances? Alternative might be to spawn the recoll GUI. This would have the results on its pane (BTW: might not necessarily be identical set--another issue). What would be gained by this?
I think you get me wrong. Calling dolphin like mentioned above is like calling the recoll gui. The kio works like a recoll search and lists all results in dolphin, no matter where they are. So, by adding a dummy entry as the first list element, you could trigger a new search with the same search terms but in dolphin. Hopefully i made it more clear, what i'm talking about this time. P.S.: An other possibility would be calling the recoll GUI directly, as you mentioned. I would like this too, maybe we could get an option in the recollrunner settings tab? :)
OK. How do I call it? Typing recoll:/ does not produce a non-supported protocol error so that is a sign that I may have the kio for it. But I need some means of calling this with the search string. Using recoll:/ in a command line dolphin call does produce an unknown protocol error. So this needs be installed.
Yeah, you have to install it apart from the normal recoll app. If you are on archlinux, you can do so by installing aur/kio_recoll.
OK. Once I have a Debian installation of KIO_Recoll ... I get no unique C/R event, just a select event with selected method or default. Running the recoll UI and/or dolphin using kio_recoll can be added to the methods choices and they can be run from that dropdown for any selected recoll hit. Alternatively or additonally, an item such as: Recoll Reported # results Could be appended. As of now, this final item would appear first. Clicking that could default to one of the new methods. What do you think?