FSearch is a fast file search utility for Unix-like systems based on GTK+3

Overview

Build Status Translation status

FSearch is a fast file search utility, inspired by Everything Search Engine. It's written in C and based on GTK3.

Features

  • Instant (as you type) results
  • Wildcard support
  • RegEx support
  • Filter support (only search for files, folders or everything)
  • Include and exclude specific folders to be indexed
  • Ability to exclude certain files/folders from index using wildcard expressions
  • Fast sort by filename, path, size or modification time
  • Customizable interface (e.g., switch between traditional UI with menubar and client-side decorations)

Requirements

  • GTK 3.18
  • GLib 2.44
  • glibc 2.19 or musl 1.1.15 (other C standard libraries might work too, those are just the ones I verified)
  • PCRE (libpcre)
  • ICU 3.8

Download

Arch Linux (AUR)

https://aur.archlinux.org/packages/fsearch-git/

Fedora/RHEL/CentOS

Release Builds

Copr build status

https://copr.fedorainfracloud.org/coprs/cboxdoerfer/fsearch/

Development Builds

Copr build status

https://copr.fedorainfracloud.org/coprs/cboxdoerfer/fsearch_nightly/

NixOS (unofficial)

https://search.nixos.org/packages?channel=unstable&show=fsearch&query=fsearch

openSUSE (unofficial)

https://software.opensuse.org/download.html?project=home%3AAsterPhoenix13&package=fsearch

Ubuntu

Release Builds

https://launchpad.net/~christian-boxdoerfer/+archive/ubuntu/fsearch-stable

Development Builds

https://launchpad.net/~christian-boxdoerfer/+archive/ubuntu/fsearch-daily

Roadmap

https://github.com/cboxdoerfer/fsearch/wiki/Roadmap

Build Instructions

https://github.com/cboxdoerfer/fsearch/wiki/Build-instructions

Localization

The localization of FSearch is managed with Weblate.

https://hosted.weblate.org/projects/fsearch/

If you want to contribute translations please submit them there, instead of opening pull requets on GitHub. Instructions can be found here: https://docs.weblate.org/en/latest/user/basic.html

And of course: Thank you for taking the time to translate FSearch!

Current Limitations

  • Sorting lots of results by Type can be very slow, since gathering that information is expensive, and the data isn't indexed. This also means that when the view is sorted by Type, searching will reset the sort order to Name.
  • Sorting can't be aborted. This is usually not an issue, because it's very fast for all columns except the Type column.
  • Using the Move to Trash option doesn't update the database index, so trashed files/folders show up in the result list as if nothing happend to them.

Why yet another search utility?

Performance. On Windows I really like to use Everything Search Engine. It provides instant results as you type for all your files and lots of useful features (regex, filters, bookmarks, ...). On Linux I couldn't find anything that's even remotely as fast and powerful.

Before I started working on FSearch, I took a look at existing solutions. I tried MATE Search Tool (formerly GNOME Search Tool), Recoll, Krusader (locate based search), SpaceFM File Search, Nautilus, ANGRYsearch and Catfish, to find out whether it makes sense to improve those. However, they're not exactly what I was looking for:

  • standalone application (not part of a file manager)
  • written in a language with C like performance
  • no dependencies to any specific desktop environment
  • Qt5 or GTK3 based
  • small memory usage (both hard drive and RAM)
  • target audience: advanced users

Looking for a command line interface?

I highly recommend fzf or the obvious tools: find and (m)locate

Why GTK3 and not Qt5?

I like both of them, and my long term goal is to provide console, GTK3 and Qt5 interfaces, or at least make it easy for others to build those. However, for the time being it's only GTK3 because I like C more than C++, and I'm more familiar with GTK development.

Questions?

Email: christian.boxdoerfer[AT]posteo.de

Comments
  • Database update is time-consuming each time after fsearch is started.

    Database update is time-consuming each time after fsearch is started.

    Hi,

    With the option Update database on start enabled, it's a very time-consuming job for databse updating each time after fsearch is started. It seems that the update operation is not incremental. I want to know whether this operation can be further sped up / optimized?

    Regards, HY

    bug 
    opened by hongyi-zhao 25
  • [BUG] Column widths are not adjustable nor movable

    [BUG] Column widths are not adjustable nor movable

    Describe the bug It is not possible to resize the width of any columns, nor move the column order regardless of the size of the FSearch window.

    Expected behavior I would expect to be able to:

    • resize the columns in order to view the values without having to hover over an item (tooltip works well)
    • move the left to right order of the columns to suit my preference

    Desktop (please complete the following information):

    • OS: Linux Mint 20.3 Cinnamon
    • Cinnamon Version 5.2.7
    • Kernal 5.4.0.1.100-generic
    • How you installed FSearch: PPA
    • Version 0.1.2
    • Output of localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: n/a X11 Layout: us X11 Model: pc105
    bug 
    opened by kelmankenberg 24
  • [BUG]

    [BUG]

    OS: DebianBuster Installed: Followed the build-instructions on github Version: FSearch 0.3.alpha0 localectl status: System Locale: LANG=de_DE.UTF-8 VC Keymap: n/a X11 Layout: de X11 Model: pc105

    Problem:

    a) when i try to 'open directory' at a found file: -> 'Error when getting information for content type 'inode/directory": Keine Standardanwendung bekannt.'

    b) when i try to open the found file (doubleclick or ENTER: -> 'Error when getting Information for content type "application/x-7z-compressed": keine Standardanwendung bekannt' (7z is just an example, happens also with other filetypes)

    This happens only on one of my machines, running debian buster. When i checked fsearch 0.1 on that computer (just happend to be at hand on that machine): both options work perfect.

    On another PC running debian buster fsearch0.3alpha works without problems also.

    So the problem only occurs on one machine and only with fsearch 0.3 alpha.

    (temporary) solution: using fsearch0.1

    bug external bug 
    opened by apapapapapapap 23
  • [Feature request] deactivate search folders

    [Feature request] deactivate search folders

    I speak about this dialog field: Fsearch

    Here normally I have "/" as search folder. But sometimes I want to change my search folder for a particular search and replace "/" through another folder. But later I want to go back to "/".

    So for example I want to look after the greatest files in the folder ~/.thunderbird/oabbl9j2.default/Mail So I go to Fsearch and replace "/" through "~/.thunderbird/oabbl9j2.default/Mail". Then I search for all files and sort the result after the file size. This way I see, which are the biggest files in this folder. Then I have to go back into... Fsearch ... To delete the folder "~/.thunderbird/oabbl9j2.default/Mail" and add again "/".

    So what is my feature request? Please add the possibility to deactivate search folders.

    So in the scenario above I just could deactivate "/" temporary, add "~/.thunderbird/oabbl9j2.default/Mail". Later I just could again activate "/" and delete "~/.thunderbird/oabbl9j2.default/Mail".

    opened by Golddouble 22
  • [BUG] Linuxisms in fsearch 0.1

    [BUG] Linuxisms in fsearch 0.1

    Describe the bug When attempting to build fsearch 0.1 under MacPorts I get several errors in fsearch_database.c.

    1. There is no such thing as #include <malloc.h> under macOS, I use #include <stdlib.h> instead.
    2. There is no such thing as 'strverscmp' on *NIX platforms other than linux.
    3. There is no such thing as 'AT_NO_AUTOMOUNT' on *NIX platforms other than linux.

    To Reproduce Steps to reproduce the behavior: When building

    Expected behavior Successful build (as for previous tag 0.1beta4)

    Screenshots

    1. w/o malloc patch fsearch_database.c:28:10: fatal error: 'malloc.h' file not found #include <malloc.h> ^~~~~~~~~~ CC fsearch-fsearch_database_view.o

    2. with malloc and AT_NO_AUTOMOUNT patch

    --- src/fsearch_database.c.orig	2021-09-24 11:41:49.000000000 -0500
    +++ src/fsearch_database.c	2021-09-28 07:30:47.000000000 -0500
    @@ -25,7 +25,7 @@
     #include <fcntl.h>
     #include <fnmatch.h>
     #include <glib/gi18n.h>
    -#include <malloc.h>
    +#include <stdlib.h>
     #include <stdbool.h>
     #include <stdio.h>
     #include <string.h>
    @@ -1262,7 +1262,7 @@
             g_string_append(path, dent->d_name);
     
             struct stat st;
    -        if (fstatat(dir_fd, dent->d_name, &st, AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT)) {
    +        if (fstatat(dir_fd, dent->d_name, &st, AT_SYMLINK_NOFOLLOW)) {
                 g_debug("[db_scan] can't stat: %s", path->str);
                 continue;
             }
    
    

    Undefined symbols for architecture x86_64: "_malloc_trim", referenced from: _db_free in fsearch-fsearch_database.o "_strverscmp", referenced from: _db_entry_compare_entries_by_path in fsearch-fsearch_database_entry.o _sort_entry_by_path_recursive in fsearch-fsearch_database_entry.o _db_entry_compare_entries_by_name in fsearch-fsearch_database_entry.o _db_entry_compare_entries_by_extension in fsearch-fsearch_database_entry.o

    Desktop (please complete the following information):

    • macOS 10.14.6
    • build using MacPorts Portfile, see https://github.com/macports/macports-ports/blob/master/sysutils/fsearch/Portfile
    • Version 0.1
    • Output of localectl status: non-existent under macOS

    Additional context Notes:

    1. _malloc_trim is not portable, see http://www.hep.by/gnu/gnulib/malloc_005ftrim.html
    2. strverscmp is not portable, see https://www.gnu.org/software/gnulib/manual/html_node/strverscmp.html

    PS: There is an issue with configure.ac

    AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11" ],
                          [echo "C compiler cannot compile C11 code. Abort"
                           exit -1
                          ])
    

    even though I have configured the Portfile to use compiler.cxx_standard 2011

    bug 
    opened by Schamschula 21
  • I can not enter Cyrillic characters in the search field

    I can not enter Cyrillic characters in the search field

    (fsearch:4069): GLib-CRITICAL **: 22:48:06.999: g_utf8_strdown: assertion 'str != NULL' failed Segmentation fault

    The error began to appear after one of the updates, everything worked before. I can still search using Latin characters, but when I enter Cyrillic, it crashes.

    Elementary OS 5.1.7 Linux 5.4.0-52-lowlatency

    The bug persists on the latest version.

    opened by artomberus 21
  • Implemented close application after opening a file / folder

    Implemented close application after opening a file / folder

    I tried my hands on implementing issue #84

    At the moment it closes the application after opening the file (or the folder of the file) via the keyboard.

    But it doesn't work when you open it via the mouse (double-clicking on it). Someone can argue if this should be the case or not. Personally I would want it to stay open when using the mouse because then I'm looking for something in the file and maybe opening another file after that.

    Another point would be if the application should close or minimize into the taskbar?

    opened by torbei 20
  • [BUG]

    [BUG]

    Describe the bug after updating to the june 8th daily build, everytime I start up the program, it would get stuck updating/scanning the folders.

    Expected behavior I am not sure what version I was on before upgrading to the June 8th daily build, but everything worked fine before the upgrade

    Screenshots Screenshot from 2021-06-11 01-20-56 Screenshot from 2021-06-11 01-26-50

    Desktop (please complete the following information):

    • OS: [Linux Mint 20]
    • How you installed FSearch [PPA]
    • Version [FSearch 0.1beta4, june 8th daily build]
    • Output of localectl status
      System Locale: LANG=en_US.UTF-8 VC Keymap: n/a X11 Layout: us X11 Model: pc105

    Additional context Add any other context about the problem here.

    bug 
    opened by suprapoke 19
  • Cannot include root directory

    Cannot include root directory "/" and get fsearch working

    Nothing is added to database if root directory / is included.

    I'd like to add just / and then specifically exclude directories and files. This doesn't seem to work though...

    enhancement 
    opened by kupiqu 17
  • Database Update Sequence

    Database Update Sequence

    Hi Developer, FSearch is a mandotary tool for me but updating database every start is annoying. Is it possible to have a feature like this: "Update database if not updated in one week"

    Thanks

    opened by celikbas 16
  • busy mouse pointer

    busy mouse pointer

    Describe the bug FSearch supports the possibility for double clicking on a folder and then thunar opens with the content of that folder. -> When I use this function I have a "busy mouse pointer" for about half a minute. When I remember correctly: This was not an issue with FSearch 0.1

    To Reproduce Gif-Animaion: Fsearch

    Expected behavior The mouse pointer is busy for about half a second or less.

    Desktop (please complete the following information):

    • OS:MX-Linux 19.4 Xfce (Debian 10 based)
    • How you installed FSearch MX package installer
    • Version 0.2.2
    • Output of localectl status: System has not been booted with systemd as init system (PID 1). Can't operate. Failed to create bus connection: Der Rechner ist nicht aktiv
    bug 
    opened by Golddouble 15
  • [BUG] Error when opening folder in Thunar from within FSearch

    [BUG] Error when opening folder in Thunar from within FSearch

    Describe the bug Folders are not opening from context menu in FSearch.

    To Reproduce Steps to reproduce the behavior:

    1. Run fsearch
    2. Select a file/folder in main window
    3. Right-click > Open Folder (or Ctrl+Return)

    Expected behavior Folder should open in file manager window (I'm using use thunar 4.18.1)

    Screenshots

    Desktop (please complete the following information):

    • OS: EndeavourOS (Xfce 4.18.0)
    • How you installed FSearch: AUR
    • Version: FSearch 0.2.2 (AUR-stable)
    • Output of localectl status:
    System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: u
    

    Additional context Terminal output:

    ERR<45376>: ../src/bin/tools/filemanager/e_fm_cmdline.c:53 fm_open_reply() org.freedesktop.DBus.Error.ServiceUnknown: The name org.enlightenment.FileManager was not provided by any .service files
    ## Copy & Paste the below (until EOF) into a terminal, then hit Enter
    
    eina_btlog << EOF
    /usr/lib/libeina.so.1 0x6d469b307324 0x6d469b2dc000
    /usr/lib/libeina.so.1 0x6d469b2fe861 0x6d469b2dc000
    /usr/lib/libeina.so.1 0x6d469b30b329 0x6d469b2dc000
    /usr/bin/enlightenment_filemanager 0x55a738a53ab 0x55a738a3000
    /usr/lib/libeldbus.so.1 0x6d469b214ac9 0x6d469b206000
    /usr/lib/libdbus-1.so.3 0x6d469ad13bc0 0x6d469acff000
    /usr/lib/libdbus-1.so.3 0x6d469ad18120 0x6d469acff000
    /usr/lib/libeldbus.so.1 0x6d469b21ad4a 0x6d469b206000
    /usr/lib/libecore.so.1 0x6d469b267e63 0x6d469b252000
    /usr/lib/libeo.so.1 0x6d469aea2750 0x6d469ae8e000
    /usr/lib/libeo.so.1 0x6d469aea3e77 0x6d469ae8e000
    /usr/lib/libecore.so.1 0x6d469b2708c0 0x6d469b252000
    /usr/lib/libecore.so.1 0x6d469b270f9d 0x6d469b252000
    /usr/lib/libecore.so.1 0x6d469b27ade9 0x6d469b252000
    /usr/lib/libecore.so.1 0x6d469b274807 0x6d469b252000
    /usr/lib/libecore.so.1 0x6d469b26ce28 0x6d469b252000
    /usr/bin/enlightenment_filemanager 0x55a738a5127 0x55a738a3000
    /usr/lib/libc.so.6 0x6d469b013290 0x6d469aff0000
    /usr/lib/libc.so.6 0x6d469b01334a 0x6d469aff0000
    /usr/bin/enlightenment_filemanager 0x55a738a5205 0x55a738a3000
    EOF
    
    Did you unload the EFM module? Try loading it.
    
    bug 
    opened by notdexterslab 1
  • [BUG] fsearch opens new dolphin session while opening a folder

    [BUG] fsearch opens new dolphin session while opening a folder

    Describe the bug in started to happen after some recent os update. while opening a folder, fsearch opens a duplicate session of a dolphin file manager instead of opening a folder in the new tab of the existing dolphin session.

    To Reproduce

    1. open dolphin fm with few tabs
    2. open fsearch
    3. search for any folder
    4. double click on it

    Expected behavior fsearch should open existing dolphin session and create there a new tab with desired folder

    Screenshots https://i.imgur.com/vviGNIK.mp4

    Desktop (please complete the following information):

    • OS: manjaro plasma

    • How you installed FSearch aur, fsearch-git

    • Version [output of fsearch --version] FSearch 0.3.alpha0 (AUR-devel) tested on aur stable also

    • Output of localectl status System Locale: LANG=en_US.UTF-8 LC_NUMERIC=ru_RU.UTF-8 LC_TIME=ru_RU.UTF-8 LC_MONETARY=ru_RU.UTF-8 LC_PAPER=ru_RU.UTF-8 LC_NAME=ru_RU.UTF-8 LC_ADDRESS=ru_RU.UTF-8 LC_TELEPHONE=ru_RU.UTF-8 LC_MEASUREMENT=ru_RU.UTF-8 LC_IDENTIFICATION=ru_RU.UTF-8 VC Keymap: us X11 Layout: us

    Additional context

    bug 
    opened by soundsbeard 0
  • FSearch opens underneath other windows if Escape is used to close it

    FSearch opens underneath other windows if Escape is used to close it

    If opened, closed with Escape, and opened again, FSearch may open underneath other windows instead of on top of everything.

    To Reproduce

    1. Bind fsearch to a keyboard shortcut (On Gnome in Ubuntu 22.04, I bound it to Ctrl+Alt+O in settings)
    2. Enable "close FSearch on Escape" setting
    3. Open some other windows
    4. Open FSearch, then press Escape
    5. Open FSearch, observe it appears behind other windows

    If for step 4 you press alt+f4 or click the X button, FSearch correctly appears on top of everything in step 5.

    Desktop (please complete the following information):

    • OS: Ubuntu 22.04
    • Ubuntu PPA version
    • Version: kFSearch 0.2.2 (PPA-stable)
    • Output of localectl status
       System Locale: LANG=en_US.UTF-8
           VC Keymap: n/a
          X11 Layout: us
           X11 Model: pc105
    
    bug 
    opened by ComplexPlane 1
  • [Feature request] open file with root rights (for editing it)

    [Feature request] open file with root rights (for editing it)

    Is your feature request related to a problem? Please describe. Sometimes I look for a conf file that lies on the root partition in Linux and I want to edit it. It would be user friendly, if we were able to right click on the search result of FSearch and have the entry "edit with root rights with for example Featherpad".

    Describe alternatives you've considered Until now I use right click "open folder". Thunar opens. In thunar I look again for the file and choose in thunar "edit as root". Which is a bit cumbersome.

    Maybe you can add an option in "settings", so that users, who are afraid of destroying their system by such a possibility, can deselect this possibility. Or it may be by default inactivated, but can be activated in settings.

    What do you think?

    feature_request 
    opened by Golddouble 4
  • Show symbolic link files using a different visual representation

    Show symbolic link files using a different visual representation

    I have a lot of soft symlinks of various files in my folders, so that they can be found from various places while browsing with Nautilus.

    However, they all show up as identical search results in FSearch. There should be some visual distinction to tell them apart from the original, "real" file that the symlinks are pointing.

    Nautilus simply shows an arrow emblem, as you can see in the upper half of this screenshot (in this particular case, it also shows the read-only permission indicator emblem):

    image

    The lower half is how fsearch currently represents the same results.

    Another potential (perhaps simpler to implement) approach would be to make the row 50% opaque (or maybe up to 70% opaque) to denote that it is a secondary result to the original.

    feature_request 
    opened by nekohayo 1
  • Ability to follow system theme (automatic dark / light theme styles switching)

    Ability to follow system theme (automatic dark / light theme styles switching)

    Nowadays there is a standardized way for your app to authoritatively know (without just trying to "guess" whether the current GTK theme is dark or not) what the user's intent is in terms of light/dark themes.

    • Overview here: https://blogs.gnome.org/alexm/2021/10/04/dark-style-preference/
    • Implementation tips here: https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/Dark-Style-Preference

    Most applications already support this with GNOME 42+ and Elementary OS 6, even non-purely-GTK applications such as Firefox. I believe lots of applications on KDE support this standard as well.

    Knowing "what the user actually wishes for" lets your app switch between the two styles in realtime with a clear standardized signal, and if also lets it confidently ship its own harmonized colors/stylesheet for both light/dark scenarios if needed.

    Text-heavy apps can let the user decide if they want the app to remain light (or dark) at all times or if they want it to follow/inherit the light vs dark status from the OS. Simple apps that don't have fancy stylesheets (unlike source code text editors) can simply offer the choice between: "Follow system's preference", "Always light", or "Always dark".

    An example of a commonly used UI for this in GTK and GNOME apps is the screenshot you can see here: https://github.com/mjakeman/extension-manager/issues/218

    Or, if you want to simplify your codebase by reducing settings, you may choose to have the app only follow the system dark/light preference at all times.

    feature_request 
    opened by nekohayo 0
Releases(0.2.2)
  • 0.2.2(Aug 22, 2022)

    • 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!

    Source code(tar.gz)
    Source code(zip)
  • 0.2.1(Aug 17, 2022)

  • 0.2(Aug 15, 2022)

    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 https://github.com/cboxdoerfer/fsearch/pull/293
    • fsearch_window.c get_sort_type_for_name: Add nullptr check by @p0lyh3dron in https://github.com/cboxdoerfer/fsearch/pull/340
    • Add setting to exit the application when Escape is pressed by @mrubli in https://github.com/cboxdoerfer/fsearch/pull/301
    • Fix typos by @ersen0 in https://github.com/cboxdoerfer/fsearch/pull/356
    • Correct a typo in fsearch_list_view.h by @felixonmars in https://github.com/cboxdoerfer/fsearch/pull/373

    New Contributors

    • @mrubli made their first contribution in https://github.com/cboxdoerfer/fsearch/pull/293
    • @p0lyh3dron made their first contribution in https://github.com/cboxdoerfer/fsearch/pull/340
    • @ersen0 made their first contribution in https://github.com/cboxdoerfer/fsearch/pull/356
    • @felixonmars made their first contribution in https://github.com/cboxdoerfer/fsearch/pull/373

    Full Changelog: https://github.com/cboxdoerfer/fsearch/compare/0.1...0.2

    Source code(tar.gz)
    Source code(zip)
  • 0.1.4(Jul 5, 2022)

  • 0.1.3(Jun 21, 2022)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.1.2(Jan 29, 2022)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.1.1(Jan 24, 2022)

  • v0.1(Sep 24, 2021)

    Most significant changes since the last beta release:

    • moved from GtkTreeView to a custom listview widget, which greatly improves memory usage, search performance and works much better with millions of results
    • added a file extension column
    • added sort information to the database index, which greatly improves sort speed
    • added multi-threaded sorting, for faster sort speed
    • added a memory pool to store database entries, which greatly reduces the database load and scan times
    • updated database format, which greatly improves database load and save times
    • added file properties dialog to the result list's context menu
    • added unit testing
    • greatly improved search performance for queries containing UTF8 characters
    • added command line option to set the initial search term
    Source code(tar.gz)
    Source code(zip)
  • 0.1beta2(Apr 27, 2017)

    Translations:

    • Dutch
    • French
    • Greek
    • Lithuanian
    • Portuguese
    • Russion
    • Slovak
    • Spanish

    Many thanks to all the great contributors!

    New features

    • Search: Support of wildcard characters
    • Search: utf8 support
    • Option to exclude certain files with exact matches or based on wildcard expressions
    • 'Open with' menu in right click menu
    • Type ahead search in listview
    • Shortcut to update database (Ctrl+Shift+R)
    • Delete and Move to Trash actions in right click menu
    • Show database update progress in status bar

    Bug fixes

    • Some memory leaks
    • Some buffer overflows
    • and many other issues
    Source code(tar.gz)
    Source code(zip)
  • 0.1beta1(Oct 17, 2016)

    • basic translation support has been added (but will be improved further during beta phase)
    • search doesn't block main thread anymore, which improves responsiveness a lot
    • lots of bug fixes

    NOTE: users of the alpha release deb package should remove it first before installing the beta release, since both packages are in conflict, to do so just do: sudo apt-get remove fsearch-dev

    Source code(tar.gz)
    Source code(zip)
    fsearch_0.1beta1-1_amd64.deb(45.33 KB)
Owner
Christian Boxdörfer
Christian Boxdörfer
PintOS - Group Project for Sharif's CE424 Operating Systems Course (Based on Berkeley's CS162)

GROUP 3 Project Phase 1 (Syscalls and User Programs) and Phase 3 (File System) are in the main branch, while Phase 2 (Scheduling) is in the GHW2 branc

Amirmahdi Namjoo 5 May 12, 2022
A small C library with that portably invokes native file open, folder select and file save dialogs.

Cross platform (Windows, Mac, Linux) native file dialog library with C and C++ bindings, based on mlabbe/nativefiledialog.

Bernard Teo 299 Dec 23, 2022
The MHS Filesystem- A very simple linked-list based file system designed for recoverability and low data redundancy. Public domain filesystem (Version 1)

MHS Filesystem The MHS filesystem. Features: can be modified to work with any size of disk or sector, even non powers of two! Allocation bitmap stored

DMHSW 8 Sep 17, 2022
P1031 low level file i/o and filesystem library for the C++ standard

This is the post-peer-review LLFIO v2 rewrite. You can view its documentation at https://ned14.github.io/llfio/ master branch develop branch CMake das

Niall Douglas 546 Dec 27, 2022
Cross-platform C++11 header-only library for memory mapped file IO

mio An easy to use header-only cross-platform C++11 memory mapping library with an MIT license. mio has been created with the goal to be easily includ

null 1.4k Dec 30, 2022
Lightweight, portable and easy to integrate C directory and file reader

TinyDir Lightweight, portable and easy to integrate C directory and file reader. TinyDir wraps dirent for POSIX and FindFirstFile for Windows. Windows

Cong 703 Jan 2, 2023
Lightweight, portable and easy to integrate C directory and file reader

TinyDir Lightweight, portable and easy to integrate C directory and file reader. TinyDir wraps dirent for POSIX and FindFirstFile for Windows. Windows

Cong 702 Dec 31, 2022
localfuse - File system implemented on Linux using C and libfuse

localfuse - File system implemented on Linux using C and libfuse Use pure C to have a simple file system of your own on the linux system Install and b

null 4 Sep 23, 2021
WineFS is a file system for Persistent Memory (PM) which is aimed at maximizing the performance of memory-mapped applications.

WineFS WineFS is a file system for Persistent Memory (PM) which is aimed at maximizing the performance of memory-mapped applications. WineFS uses a no

UT Systems and Storage Lab 23 Oct 2, 2022
PoC of a native Linux file system to mount container images.

composefs PoC of a native Linux file system to mount container images. It is unfinished and just a few days of work. The idea is to pass a binary blob

Giuseppe Scrivano 0 Dec 8, 2022
C++ implementation of a platform independent endian safe binary file stream

EndianSafeBinaryStream A C++ implementation of a platform independent endian safe binary file stream that can save primitive types and is easily exten

Corbinian Gruber 2 Mar 22, 2022
sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

sbase is a collection of unix tools that are inherently portable across UNIX and UNIX-like systems.

Anton Samokhvalov 1 Nov 1, 2021
Typesense is a fast, typo-tolerant search engine for building delightful search experiences.

Fast, typo tolerant, fuzzy search engine for building delightful search experiences ⚡ ??

Typesense 12k Jan 2, 2023
This C program imitates what an 'ls' command does in UNIX like operating systems.

This C program imitates what an 'ls' command does in UNIX like operating systems. Arguments can be passed to the program to modify and filter the results from the command

Yusuf Ghodiwala 1 Nov 22, 2021
WSServer is a fast, configurable, and extendable WebSocket Server for UNIX systems written in C (C11).

WSServer a C WebSocket Server WSServer is a fast, configurable, and extendable WebSocket Server for UNIX systems written in C (C11). As of version 2.0

Morten Houmøller Nygaard 170 Dec 8, 2022
Read file to console, automatically recognize file encoding, include ansi, utf16le, utf16be, utf8. Currently output ansi as gbk for chinese text search.

rgpre A tool for rg --pre. Read file to console, automatically recognize file encoding, include ansi, utf16le, utf16be, utf8. Currently output ansi as

null 3 Mar 18, 2022
My color picker in GTK, based very heavily on the MS Powertoys color picker

My color picker in GTK, based very heavily on the MS Powertoys color picker

contribuewwt 12 Dec 2, 2022
GTK-based lockscreen for Wayland

gtklock GTK-based lockscreen for Wayland. About gtklock is based on gtkgreet. It uses the wlr-layer-shell and wlr-input-inhibitor Wayland protocols an

Jovan Lanik 138 Dec 7, 2022
Small utility that leverages eBPF to dump the traffic of a unix domain socket

UnixDump UnixDump is a small eBPF powered utility that can be used to dump unix socket traffic. System requirements This project was developed on a Ub

Guillaume Fournier 8 Nov 19, 2022
Another neofetch-like utility but this time it's fast.

SystemFetch Another neofetch-like utility but this time it's fast. Example Speed Here is a table of the time it took to execute all of these programs,

YSU 10 Jul 22, 2021