cboxdoerfer / fsearch Goto Github PK
View Code? Open in Web Editor NEWA fast file search utility for Unix-like systems based on GTK3
License: GNU General Public License v2.0
A fast file search utility for Unix-like systems based on GTK3
License: GNU General Public License v2.0
Two weeks ago I've added FSearch to FreeBSD Ports Collection. It required couple of changes in order to build that addressed certain Linux'isms. One of them (unconditional inclusion of linux/limits.h
) was fixed in 917442e. The other issue seemingly remains: use of non-standard strverscmp()
function.
This function is a GNU extension and thus is not present in other libc
implementations, including (but not limited to) FreeBSD's. It turns out that it can be implemented using g_utf8_collate_key_for_filename()
calls on compared strings (see the patches under files
directory at the svnweb link above). This is probably better than writing strverscmp()
implementation from scratch since FSearch is GTK/Glib application anyway, so it's OK to depend on functions offered by those APIs.
I did not wrap the code with any #ifndef __GNUC__
guards since there is no conflict to prevent in case of FreeBSD, and arguably it is better not to rely on some non-standard function in the first place (i.e., I'd probably simply used provided reference implementation under some non-clashy-with-GNUs-strverscmp name, regardless of the operating system and/or underlying standard C library).
I would like to point out that identifiers like "_DatabaseSearch
" and "_FsearchApplication
" do not fit to the expected naming convention of the C language standard.
Would you like to adjust your selection for unique names?
Dear @cboxdoerfer,
Could the following feature be integrated to delete files outside the home directory?
Yours,
-Robert
I think that the option for excluding hidden files and folders should be in the include section, as "Include hidden files and folders", so that this option would be more presentable to a user, since I think that most "regular" users would just set the folders to include, without setting exclusions.
provide options to compile on osx with gtk
Edit->Preferences->Interface->Remember Window Size seems to have no effect: the window always resets to the original size on restart.
The tool could have a Synapse extension.
Maybe even 2 options like "delete" (permanently) and "move to trash"
Thanks for this great project!
It'll probably make sense to use Gtk.HeaderBar as the titlebar instead of classic one in GTK+ 3 UI.
A PPA for for easy installation and update for Ubuntu would be nice.
Is it planned to support a full text file search?
it would be helpful to be able to exclude from indexing all .svn directories with a single entry of the pattern .svn
The value in the Size column for Folder results is 1 less than the actual number of files in the folder (except for empty folders, which are correctly reported as having 0 Items).
Great work on this software so far, it has saved me hours of work.
i keep on adding /mnt to the exclusion list, yet it keeps indexing mnt and all its subdirs
Hi Christian,thanks for amazing fsearch.
In my case excluding folders not working(tested ntfs and ext4)
fsearch require GTK+ 3.20 not 3.12 as stated in README. File preferences.ui introduces this.
I build it on Ubuntu 16.04 but it has GTK+ 3.18 so every time I open preferences window it crashes.
console:
update
clear locations
** (fsearch:28342): CRITICAL **: db_location_free_all: assertion 'db->locations != NULL' failed
load location: <snip>
location num entries: 0
update list: 0
**
ERROR:array.c:61:darray_new: assertion failed: (num_items > 0)
Thread 24 "update_database" received signal SIGABRT, Aborted.
backtrace:
#0 0x00007ffff5f872e7 in raise () from /lib64/libc.so.6
#1 0x00007ffff5f8876a in abort () from /lib64/libc.so.6
#2 0x00007ffff67e535b in g_assertion_message () at .../glib-2.48.2/glib/gtestutils.c:2429
#3 0x00007ffff67e53c7 in g_assertion_message_expr () at .../glib-2.48.2/glib/gtestutils.c:2452
#4 0x000000000041261f in darray_new () at array.c:61
#5 0x000000000040e7f1 in db_build_initial_entries_list () at database.c:809
#6 0x0000000000407e15 in load_database () at fsearch.c:299
#7 0x00007ffff67e5fe8 in g_thread_proxy () at .../glib-2.48.2/glib/gthread.c:780
#8 0x00007ffff62f8494 in start_thread () from /lib64/libpthread.so.0
#9 0x00007ffff603d5dd in clone () from /lib64/libc.so.6
I'm using Everything in Windows and now I can't figure it out how to find a folder (with FSearch) with for example 'Backup 160522'. I remember '160522' so my search-string are '1605'. I should get as result folder and filenames that contain 1605 but....no. Isn't '*' and '?' used as wildcards in Linux/Fsearch?
Regards
I usually configure kB to refer to 2^10 bytes instead of 10^3 bytes, mB = 2^20, not 10^6, etc.
I generally argue that this should be the default, but a checkbox in the options would work also.
It would be nice to be able to search/goto in the results, like in a file manager.
For example, if you have three search results, amovie, bamovie, bbmovie, cmovie
then if you press bb
on the keyboard bbmovie
is focused
Latest FSearch from Ubuntu PPA
Mint Cinnamon 18
A web interface would be very useful for searching for files on a networked file server.
I'm using fsearch in Ubuntu Mate 16.04 with Mate 1.16. I have a separate NTFS partition on my hard disk for my Documents, Music, Pictures and Videos folders and I create symbolic links of these folders in home. In fsearch I have the option for following symbolic links checked, but none of the aforementioned links are followed.
It would help if you added a section to the readme on how to compile this program
In KDE the "Open folder" function does follow the default application set in the System Settings, so I had to manually edit mimeapps.list in /home to Dolphin. This isn't ideal !
And, after setting it to Dolphin, all urls sent to it are prefixed with "smb://" and therefore don't open correctly. Using another file manager works fine, and opening folders in Dolphin from other apps also works fine.
I'm running Arch with the latest KDE/Plasma packages, please tell me if you need more info. Hope this can be fixed, fsearch looks great so far :)
An option to shrink the UI into a launcher style app and also the appropriate behaviour of such a launcher app.
I use cyrillic names, e.g. Котик.png
, when I search for котик
I won't find desired file
There should be three options to choose from View menu:
It might make sense to add this after implementing the custom listview.
When you use File / Quit, the fsearch process is removed from memory.
But when you close the fsearch window, the fsearch process remains in memory.
Running fsearch again then opens up a second fsearch process.
Hi Christian,
Again, thanks so much for creating fsearch.
In Search Everything, I could drag files out of the window into a folder or into a download box in my browsers. This was pretty useful (as I only really use fsearch/SE for navigating my files system) for attaching files for emails etc.
No idea how difficult it may be to implement, but it is a minor suggestion.
Kind regards,
Alastair
An extra null pointer check is not needed in functions like the following.
"Enable dark theme" requires the active GTK+ theme to provide a dark version of the theme. Some themes don't provide that, so we should add a note in the preferences dialog to inform users about that.
Search within a pdf, emails, docs, odts, and look into metadata of photos. Otherwise, what it does adds to Recoll?
This program for some reason doesn't index/cache the files in the directory and it has to update the database all the time in reboot. Can you give it some temp log file for it to index files in the database permanently some faeture that everything search in windows has.
Am using ubuntu 16.04
Would it be possible to implement functionality that when one presses "ESC" the app minimizes to tray?
Thanks.
one of the great features of everything is it can be run in the background monitoring the file system for changes and when a change occurs it indexes it immediately instead of having to run the database updating feature every time we need to search for some recently used file so i was wondering if you provide this feature.
Greetings from Venezuela.
I would love to provide the translation into Spanish of your application.
I have added russian translation:
https://github.com/yakonstb/misc/blob/master/ru.po
First thank you for this awesome piece of software :D i have been looking for a similar software to everything on windows but i couldn't find one so thank you for your effort. when i search for a file fsearch gets the file from its database and this is fine and its correct but i set it to build a database for other partitions on my hard drive so when i search the file and select "open folder" nothing happens when that partition is not mounted so please add an error message for that ... thanks
Hi;
First of all thank you for developing such an application. I am on Ubuntu 14.04.5 platform. I downloaded 14.04 zip version of your project. After running ./autogen.sh
and then ./configure
I get
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
./configure: line 2877: syntax error near unexpected token `IT_PROG_INTLTOOL'
./configure: line 2877: `AX_REQUIRE_DEFINED(IT_PROG_INTLTOOL)'
I also checked out https://www.reddit.com/r/linux/comments/4lwo5n/fsearch_a_new_file_search_application_based_on/ and #3
but the tips in those links didn't help.
I installed gnome-common
and autoconf-archive
.
I hope you help me fix it.
Regards.
Kenn
In preferences, there's an option to "enable dark theme". I've enabled that, restarted fsearch and nothing changed..
OS: Ubuntu 16.04
Hi,
For me does not work…
./autogen.sh output:
Copying file po/Makefile.in.in
Please add the files
codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
progtest.m4
from the /usr/share/aclocal directory to your autoconf macro directory
or directly to your aclocal.m4 file.
You will also need config.guess and config.sub, which you can get from
ftp://ftp.gnu.org/pub/gnu/config/.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <– HERE in m/\${ <– HERE ([^ \t=:+{}]+)}/ at /usr/bin/automake line 3930.
src/Makefile.am:33: warning: shell $(GLIB_COMPILE_RESOURCES: non-POSIX variable name
src/Makefile.am:33: (probably a GNU make extension)
./configure –prefix=/usr output:
configure: error: invalid variable name:
–prefix'`
Any help is welcome.
Regards,
Javier
When I ask fsearch to update my index and as it curls through my harddisk only moving circle is shown in the status bar. It would be really great if it could show me the location where index is going on. I want to see the path as the indexing is going on.
Hi,
I would like to contribute by providing a RPM for openSUSE at the openSUSE Build Service. rpmlint throws two warnings:
fsearch.x86_64: W: no-manual-page-for-binary fsearch
Each executable in standard binary directories should have a man page.
fsearch.x86_64: W: invalid-desktopfile /usr/share/applications/fsearch.desktop value "0.1" for key "Version" in group "Desktop Entry" is not a known version
.desktop file is not valid, check with desktop-file-validate
As FSearch is currently 0.1 and in beta stadium, the Version
warning can be ignored (IMHO). Otherwise you should omit the Version
entry in the .desktop
file as long as the version is lower than 1.0.
Cheers,
Jan
If two of the database locations lead to a file, the file shows up twice.
If ~ and ~/uni are locations in the data base, files in ~/uni show up twice in the list.
I accidentally did that and couldn't figure out why all of the files were showing up twice :| I don't know if the issue is worth fixing thou, just thought I should report it anyway.
EDIT: added a screenshot of the issue
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.