ANGRYsearch

Linux file search, instant results as you type

Attempt at making Linux version of Everything Search Engine because no one else bothered.
Everyone seems to be damn content with searches that are slow, populating results as they go; or are cli based, making it difficult to comfortably make use of the results; or are heavily integrated with a file manager, often limiting search to just home; or are trying to be everything with full-text file's content search.

A similar project worth attention - FSearch

demonstration gif

Done in python 3 using PyQt5 for GUI

Lite mode vs Full mode

angrysearch can be set to two different modes in its config, default being lite

in ~/.config/angrysearch/angrysearch.conf you control the mode with angrysearch_lite being set to true or false

lite version png

Search modes

there are 3 search modes, default being fast

regex example:

regex in action gif

What you should know:

Installation:

xubuntu installation demonstration

Manual installation is easy as there's no compilation with python, process consists of having dependencies, copying files somewhere and setting execution permissions

dependencies - python3-pyqt5, xdg-utils

     you need PyQt5 for python3, for example ubuntu based distros: sudo apt install python3-pyqt5
     most distros have xdg-utils out of the box

Now that you have the dependencies, download the latest release of angrysearch and unpack it somewhere. Along the files there's one called install.sh, it will copy files where they belong and sets correct permissions.

optional-dependencies

Automatic update in the background

notifications png

Among the files there's angrysearch_update_database.py
When this file is run there's no interface, it just crawls through drives and updates the database

Using crontab you can set this file to be executed periodically at chosen intervals, keeping angrysearch up to date with the changes on your system

this cronjob will execute the update every 6 hours

0 */6 * * * /usr/share/angrysearch/angrysearch_update_database.py

crontab does not try to catch up on a job if the PC has been off during scheduled time

notifications setting turns on/off desktop notifications informing about automatic update finishing
conditional_mounts_for_autoupdate can prevent autoupdate from running if set mount points are not present

Desktop notifications from cronjob not always work, so on your distro you might be without them

How it works & additional details:

look in to the database

Configuration:

config file screenshot

dark theme screenshot