File and Directory search using Cache. Use a custom gitignore file (.albertignore2/.ulauncherignore) to ignore files and directories from cache, Use Unix style matching (wildcards) to search.
- Specify directories to search
- Specify max depth if you want
- Specify directories and files to skip
gitignorestyle- Works almost like
gitignore - Nested
gitignoresoverride parrent if possible (seetests/template_structureand the.albertignore2files in there).- e.g Ignore all hidden files in parent directory, unignore a hidden directory in a child ignore file.
- Works almost like
- Search files really fast (unless scan index your whole system)
- Search is scored based on
- Unix style matching (preferred over the next one)
- Word matching
- File/Directory depth
- Search is scored based on
- Tweak almost every setting
- Icon Themes
- Scan interval
- Search threshold
- Search character threshold
- Max results returned
Thus extension depends on pathspec.
Install it with:
pip install pathspecOpen Ulauncher go to Extensions > Add extension and paste https://github.com/tchar/ulauncher-albert-files
Similarly to Ulauncher the same dependencies are are required.
To install the extension for Albert run
pip install pathspec
mkdir -p ~/.local/share/albert/org.albert.extension.python/modules/
git clone https://github.com/tchar/ulauncher-albert-files ~/.local/share/albert/org.albert.extension.python/modules/Open albert, enable Python extensions and then enable the Files extension.
You can double click it to open module's location and edit __init__.py to edit your trigger by editing the __trigger__ variable.
The other settings can be editted in the settings.ini
If you ar using Albert open the extension location normally at ~/.local/share/albert/org.albert.extension.python/modules/ulauncher-albert-files/__init__.py and edit the trigger named __triggers__ to change the keyword
The file ~/.local/share/albert/org.albert.extension.python/modules/ulauncher-albert-files/settings.ini contains the settings
The extension can work in albert without keywords if you comment out the __triggers__ option, however if another extension has the keyword you type, Files won't trigger (see relevant issue)
If you are using Ulauncher use the extension preferences.
- Main Options
albert: Under[DEFAULT]- Scan Every Minutes: Interval to scan directories specified (default 2 minutes)
ulauncher:Scan interval in minutesalbert:SCAN_EVERY_MINUTES
- Ignore filename: The filename to use as ignore
ulauncher:Name of ignore filealbert:IGNORE_FILENAME(default .albertignore2)
- Search after Characters: Number of characters to skip before run searching (default 2, if set to 0 searches from first character, excluding keyword)
ulauncher:Characters to start searching afteralbert:SEARCH_AFTER_CHARACTERS
- Search Max Results: Maximum number of results to return (default 5)
ulauncher:Maximum Search Resultsalbert:SEARCH_MAX_RESULTS
- Search theshold: Threshold value to keep or drop result (default 0.5, between 0.0 and 1.0)
ulauncher:Threshold to limit searchesalbert:SEARCH_THRESHOLD
- Icon Theme: The icon theme to use. Can be a path of a folder which contains images of icons named with the extension
[.svg|.png|or any other image]. Built in icon themes are:square-o,classic,high-contrast,vivid. Defaultsquare-oulauncher:Name or Path of icon themealbert:ICON_THEME
- Use built in folder theme: If set to
No/Falseit will try to fetch folder icons based on your gtk icon theme. If set toYes/Trueit will use the built-in folder icons (defaultNo/False)ulauncher:Use built in folder themealbert:USE_BUILT_IN_FOLDER_THEME
- Path options:
ulauncher:Directories to scan, as well as depth: Set a directory to scan in each line of the text area as follows:- Specify directory e.g (
~/) - Optionally specify max depth (5 for example) to scan as (
~/=5)
- Specify directory e.g (
albert: You can view thesettings_example.inifor another example. Specify as many[DIRECTORY]sections you want each starting with prefixDIRECTORYand some number or other character examples:[DIRECTORY1],[DIRECTORY2],[DIRECTORY_A],[DIRECTORY_B]etc. EachDIRECTORYsection should have:PATH=/some/path: An path in your system. You can use tilde (~) for yourhomeDEPTH=: Optionally a depth to scan the aforementioned directory up to. If not set or set to0it will scan
Use your keyword (default ?) and type something to search.
You can use normal matching: ? Downloads or ? A_file
You can use wildcard matching: ? *.png or ? some_file*.pdf
The results are usually fast if you don't scan your whole filesystem
To run tests you need pytest
pip install pytest
pytest
The test runs against a template structured located in tests/template_structure. You can follow the .albertignore2 file along the template_structure to check what is ignored and what not.

