Skip to content

Releases: cboxdoerfer/fsearch

Beta Release: 0.3-beta2

06 Jun 17:49

Choose a tag to compare

Pre-release

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.conf and fsearch.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 with fsearch.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

11 Apr 13:24

Choose a tag to compare

Pre-release

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

05 Aug 12:59

Choose a tag to compare

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

22 Aug 10:13

Choose a tag to compare

  • 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

17 Aug 17:52

Choose a tag to compare

  • Fix crash when parsing a size range (e.g. size:1kb..2kb)
  • Fix always highlighting search terms

Feature Release: 0.2

15 Aug 12:41

Choose a tag to compare

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:

Screenshot from 2022-08-15 12-57-21

After that Backup will show up in the filter drop down menu, next to the search field, where you can quickly activate the filter:

Screenshot from 2022-08-15 16-57-30

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 (.desktop files)
  • Show desktop application icons for .desktop files
  • Option to exit FSearch when ESC is pressed (@mrubli)
  • Scroll the result list when selecting files with the rubber band if necessary
  • Invert selection with rubber band when Ctrl is pressed
  • Open with menu 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 /proc and /sys by default
  • Open context menu when Menu key or Shift + F10 are 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

Full Changelog: 0.1...0.2

Patch release: 0.1.4

05 Jul 15:33

Choose a tag to compare

  • Fix bug that prevents the "Open Failed" dialog from getting closed

Patch release: 0.1.3

21 Jun 11:44

Choose a tag to compare

  • 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

29 Jan 18:58

Choose a tag to compare

  • 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

24 Jan 13:41

Choose a tag to compare

This release makes some behind the scenes changes for better compatibility with Flatpak.