Releases: cboxdoerfer/fsearch
Beta Release: 0.3-beta2
The second beta addresses feedback and issues identified in the first beta release. This includes:
- Configuration File Split: Database settings are now stored in both
fsearch.confandfsearch.db. Previously, configuration was stored exclusively in the database file, which made sharing difficult and prevented text-editor modifications. The internal database configuration is now used solely to validate whether a reconfiguration is required due to a mismatch withfsearch.conf. - Per-Folder Scan Configuration: Support for "scan after launch" and "periodic rescans" has been restored and significantly expanded. These options can now be configured individually for each included folder. For example, a slow network share can be set to rescan once every 24 hours, while a local home directory has monitoring enabled and is only rescanned at launch.
- Intelligent Rescan Scheduling: For example, periodic rescans are now evaluated based on absolute elapsed time. If the application is closed during a scheduled interval (e.g. an hourly scan), the missed rescan will now correctly trigger immediately upon the next application launch.
- Offline State Detection: The database now detects when an indexed folder (such as a removable USB drive) goes offline. It will automatically re-add the folder to the index as soon as the folder reappears.
- General Bug Fixes: Resolved several stability issues, including memory leaks and application crashes.
I hope this fixes the main issues users had with the first 0.3. beta release. The final release will be published once I've got some feedback from this release and if there are no more serious issues.
A big thank you to all the testers and contributors who provided feedback and helped with this update.
Beta Release: 0.3-beta1
After a long time in development, the 0.3 release is finally just around the corner. The main feature in this version is support for filesystem monitoring.
Up until version 0.2, FSearch was a relatively simple application under the hood: the in-memory database was built once at startup and remained unchanged afterward. This made both the data structures and the search logic straightforward, since everything operated on a static dataset.
With the introduction of filesystem monitoring, this became much more complex. The application is now much more dynamic, with the database being updated continuously as files are created, modified, moved, or deleted. This brings a number of new challenges: keeping the index in sync with the filesystem in real time, handling bursts of changes efficiently, and ensuring that searches remain fast and consistent even while updates are happening in the background.
While this adds quite a bit of complexity internally, the goal is that it remains almost invisible to users.
Here are the major changes:
- The database has been almost completely rewritten. When you launch version 0.3 (beta) for the first time, it will start empty, so you’ll need to re-add your folders. To keep the codebase manageable, backwards compatibility with previous database versions has unfortunately been dropped.
- Filesystem monitoring can now be enabled per folder via the preferences dialog by checking the “Monitor” column.
- Monitoring is only available on platforms and filesystems that support fanotify or inotify and even though fanotify works great for huge directory trees, I don't recommend to monitor the root directory itself.
- In testing, the database handled tens of thousands of changes per second without issues, but more feedback here would be appreciated.
- Database exclusions have been improved: files and folders can now be excluded using fixed patterns, wildcards, or regular expressions.
- Memory usage slightly increased in order to store handles for fs monitoring
Patch Release: 0.2.3
This release fixes a buffer overflow on some systems where the data type time_t is less than 8 bytes in size. Typically this affects 32bit systems.
Patch Release: 0.2.2
- Fix files sometimes not getting opened when FSearch closes immediately after activation
- Add OBS build channels to build options
- Add builds for Debian and openSUSE
- Remove debug output
- Updated translations: Dutch, Chinese (Simplified), Turkish, Hebrew, Ukrainian, French
Thanks to all translators and bug reporters and testers!
Patch Release: 0.2.1
- Fix crash when parsing a size range (e.g. size:1kb..2kb)
- Fix always highlighting search terms
Feature Release: 0.2
To get the bad news out of the way quickly: Unfortunately Snap support was removed. For more information about that see: https://github.com/cboxdoerfer/fsearch/wiki/Snap-is-no-longer-officially-supported
But now to the positive news...
Greatly improved search engine
The most important news is the updated search engine. Now it's finally possible to search for entries with a particular size, modification date, folder depth, extension, content type, number of children and more. For example, to find every MP4 file, larger than 1GB, you can simply type:
ext:mp4 size:>1gb
Like before, empty space will be treated as an AND operator, but with this new release you can now also build queries with OR and NOT operators. For example, to find all JPG and PNG files, which were modified last month, with mum or dad in their name, you can simply type:
(mum OR dad) ext:jpg;png dm:lastmonth
For a more detailed list of features of the updated search engine see: https://github.com/cboxdoerfer/fsearch/wiki/Search-syntax
Custom filters
FSearch already had a few selected filters included, such as Videos, Documents or Archives. Now it's possible to add new and modify existing filters in Preferences -> Search -> Filter. This feature is especially useful for frequently used queries. For example, if you often find yourself searching within your backup drive you can now add a new filter:
After that Backup will show up in the filter drop down menu, next to the search field, where you can quickly activate the filter:
Or you can also use the macro name, followed by an :, in the search field, to activate filters on demand. For example, to find all files in your backup which were last modified more than 3 years ago you can then type:
backup: dm:<past3years
Noteworthy changes
- New search engine
- Custom filters
- Greatly improved highlighting of search terms
- Slow queries can now be aborted
- Sorting can now be aborted
- Improved sort performance
- Improved scroll performance
- Remember file selection after a database update
- Added filter for desktop applications
- Option to launch desktop applications (
.desktopfiles) - Show desktop application icons for
.desktopfiles - Option to exit FSearch when
ESCis pressed (@mrubli) - Scroll the result list when selecting files with the rubber band if necessary
- Invert selection with rubber band when
Ctrlis pressed Open withmenu only shows applications which support all selected files- Improved opening of multiple files with the same type (they get now passed as a list to applications, instead of one by one)
- Better support for opening files in sandboxed mode
- Add menu items with links to the issue tracker, forum and donation pages
- Exclude
/procand/sysby default - Open context menu when
Menukey orShift + F10are pressed - and tons of bug fixes, translation updates and smaller improvements
What's next?
Now that searching is almost as powerful as I want it to be, the next 0.3 release will primarily focus on the database. My plan is to finally add the ability to monitor for filesystem changes, so you don't have to update the database manually so often. It will also add the ability to index (and search) additional information (like creation or access time).
And last but not least: Tank you!
I'm really grateful for all the contributions, whether it were code changes, bug reports, translations or donations!
Merged Pull Requests
- window: save column widths on shutdown (fixes #290) by @mrubli in #293
- fsearch_window.c get_sort_type_for_name: Add nullptr check by @p0lyh3dron in #340
- Add setting to exit the application when Escape is pressed by @mrubli in #301
- Fix typos by @ersen0 in #356
- Correct a typo in fsearch_list_view.h by @felixonmars in #373
New Contributors
- @mrubli made their first contribution in #293
- @p0lyh3dron made their first contribution in #340
- @ersen0 made their first contribution in #356
- @felixonmars made their first contribution in #373
Full Changelog: 0.1...0.2
Patch release: 0.1.4
- Fix bug that prevents the "Open Failed" dialog from getting closed
Patch release: 0.1.3
- Fix unresponsive column headers when an overlay is shown (e.g. when no results are found)
- Fix restoring of column widths from previous session
- Add build option to specify build channel
Patch release: 0.1.2
- Fix potential crash when FSearch gets closed while a database scan is active at the same time
- Don't sort new database after scan was cancelled
- Don't save database if scan failed
- Don't print warning if database scan was cancelled
- Update screenshots
Maintenance release: 0.1.1
This release makes some behind the scenes changes for better compatibility with Flatpak.

