Giter Club home page Giter Club logo

angrysearch's Introduction

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

  • lite mode shows only name and path
  • full mode shows also size and date of the last modification, the drawback is that crawling through drives takes roughly twice as long since every file and directory gets additional stats calls

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

  • fast mode - enabled when the checkbox next to the input field is checked
    extremely fast, but no substrings, meaning it would not find "Pirates" or "Whiplash", but it would "Pirates" or "The-Fifth"
  • slow mode - enabled when the checkbox is unchecked, slightly slower but can find substrings, also very litteral with non typical characters
  • regex mode - activated by the F8 key, indicated by orange color background
    slowest search, used for very precise searches using regular expressions, set to case insensitive,
    unlike the previous search modes not entire path is searched, only the filenames/directory names

regex example:

regex in action gif

What you should know:

  • the database is in ~/.cache/angrysearch/angry_database.db
    the config file is in ~/.config/angrysearch/angrysearch.conf
  • it can take ~2 min to index ~1 mil files, depending on hdd/ssd and filesystem - ntfs on linux being much slower. The database might be ~200MB
  • it is not recommended to run as root, there's no reason for it and you might crawl where you would rather not, like Btrfs users going in to snapshots
  • xdg-open is used to open the files based on their mimetype, default applications can be set in ~/.local/share/applications/mimeapps.list or ~/.config/mimeapps.list

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.

  • open terminal in the directory with the release files

  • set install.sh as executable and run it

      chmod +x install.sh
      sudo ./install.sh
    
  • DONE, if you want to see more detailed instruction, here is older version of this readme

optional-dependencies

  • python3-gobject - desktop notifications for automatic update, most DEs have it
  • xdotool - needed if using Thunar or PCmanFM and making use of the config option fm_path_doubleclick_selects

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

  • crontab -l - list cronjobs
  • crontab -e - open text editor so you can enter new cronjob

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

  • On update angrysearch crawls through your file system and creates its database.
    The database has a column containing full path to every file and directory found, another column indicates if the path is to a file or a directory. If full mode is enabled then there are also columns for the last modification date and for the size of files in bytes.

  • When typing in to the search input the path column is searched for the occurrences of typed text and the rows containing them are shown.
    This is unlike other searches which usually look only through names of files/directories not their entire paths. This means that writing books will show all the items with the term "books" somewhere on their path instead of just in the name.
    On typical slow searches this would be too broad of a search with too many results, but the instantaneous nature of angrysearch allows to continue typing until the search is narrow enough.

  • The database uses FTS extension of sqlite for indexing to dramatically improve search speed and get the instantaneous feel - results as you type - fast mode
    Drawback of this indexing is inability to do substring searches, but the checkbox in the top right corner can change this. If it's unchecked it will not use FTS tables and just do regular slower database search query - slow mode

  • In the fast mode quotation marks can be used to make exact searches: 'torrent' would not include "torrents" in the results.

  • angrysearch.py file alone is all that is needed for full functionality. But no special icons or dark theme.

  • Hovering mouse over the update button will show how old is the database.

  • double-click on the items in search results:

    • Name - the first column, opens the file in the application associated with its mimetype using xdg-open
    • Path - the second column, opens the item's location in the file manager
  • Results can be sorted by clicking on column's headers, only the presented results will be sorted, meaning that by default max 500 items. To return to the default sort, sort by path column.

  • Hotkeys

    • F6 ctrl+L alt+D - focus search input
    • Enter in search input- jump to results
    • Enter in search results - open selected item in associated application
    • shift+Enter - open items location
    • Tab - cycle through UI elements
    • shift-Tab - cycle backward through UI elements
    • arrow up arrow down - navigate through search results
    • Esc ctrl+Q - exit the application
  • FTS5 is the new version of the indexing extension of sqlite, most distros don't have it yet and are on FTS4. The systems that do have it get two additional benefits in the fast mode

    • can exclude from search results by using the minus sign: search wav -home would show all paths containing the word wav except the ones also containing home
    • ignorance of diacritic, search for oko would also show results like ôko ókö Okǒ

    To check if FTS5 is available on your system - in update dialog window, hover mouse over the text • creating new database

Configuration:

  • config file location: ~/.config/angrysearch/angrysearch.conf
    You can delete the config file whenever you wish, on the next run/close a new one will be created with the default values.

config file screenshot

  • angrysearch_lite By default set to true. In the lite mode theres only file name and path, no file size and no last modification date. Less informations but faster crawling through the drives
  • close_on_execute By default set to false. Closes angrysearch after opening a file or a path in a file manager
  • conditional_mounts_for_autoupdate By default empty. Purpose is to hold mount points that should be present when the database is being updated. If a mount is missing, automatic update through crontab will not run, but use system notification dialog to inform that paths set in this settings are not mounted. This prevents overwriting the database when not all drives are present. Values are system mount points, space separated.
  • darktheme By default set to false. If set true dark theme is used for the applications interface, as defined in the qdarkstylesheet.qss, also resource_file.py contains icons for dark theme
  • directories_excluded By default empty. Which directories to be ignored. Just name of the directory will ignore every directory of that name, full path like /var/cache/pacman/pkg/ ignores exactly that single folder, or parent/target for more easily targeting specific folder pacman/pkg. Can be set through program's interface, in the update window. Directory /proc is hard coded to be ignored
  • fast_search_but_no_substring By default set to true. It holds the last set value of the checkbox affecting the speed of search and substrings, see FTS4 in the section above
  • file_manager By default empty. Whatever application/script is put there, it receives the path when the path column is double-clicked. If left empty angrysearch will try to autodetect default file manager using xdg-utils. If one of the following file managers are set/detected: ['dolphin', 'nemo', 'nautilus', 'doublecmd'], the behavior will change slightly, sending to those file managers full path to the file, highlighting the target file when opened in a file manager.
  • fm_path_doubleclick_selects By default set to false. Needs xdotool package, and preferably manually set file manager in config. When set to true, Thunar, PCmanFM and SpaceFM file managers will be able to open containing directory with the file selected
  • icon_theme By default set to adwaita. Which icon theme to use, can be set from program's interface in the update window. There are 6 icon types - folder, file, audio, image, video, text. Did not yet figure out how to get theme of the distro and reliably icon from file's mimetype, so packing icons with the angrysearch is the way
  • notifications By default set to true. Automatic periodic updates that are run on background using crontab will use desktop notification system to inform when crawling is done or if it was aborted because of missing mount points
  • number_of_results By default set to 500. Limit set for searches in the database. Lower number means search results come faster
  • regex_mode By default set to false. Enables regex search mode. F8 key toggles between true/false when running the application
  • row_height By default set to 0 which means default system height. Sets height of the rows in pixels
  • typing_delay By default set to false. If enabled, it introduces 0.2 second delay between the action of typing and searching the database. This will prevent unnecessary database queries when user is typing fast as there is waiting to finish typing. This can improve performance on slower machines, but on modern ones it might negatively affect the feel of instant responsiveness
  • [Last_Run] The applications properties from the last time at the moment when it was closed - window size, position, state

dark theme screenshot

angrysearch's People

Contributors

cryzed avatar dotheevo avatar zdenop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

angrysearch's Issues

Change location of database

Hi!
Is there a way to change the location of database? If not could it be added as an option?
Thanks for this great tool!

add proper `setup.py`

hi I think it would be nice to add a setup.py to allow easy distribution of this software.

voidlinux/void-packages/pull/4865

Error on execution

When running from the terminal, I'm getting the following error

Traceback (most recent call last):
File "/usr/bin/angrysearch", line 19, in
import scandir
File "/opt/angrysearch/scandir.py", line 577, in
scandir_helper = _scandir.scandir_helper
AttributeError: 'module' object has no attribute 'scandir_helper'

No change after reinstalling. I haven't actually run it since the last update, and I can't downgrade, because Arch. I tried messing around a tiny bit with scandir.py, trying to force an exception that looked like it might help, but to no avail.

Crash on a particular search

If I search for google ( - not in regEx mode, and whether or not the check box is enabled - AngrySearch crashes to desktop, i.e. disappears. Perhaps the problem has to do with the database. However, updating the database did not solve the problem.

AngrySearch version: unknown, but I updated the program (as I've done before) via git cloning a few days ago.

Mint 18.2 x64 Cinnamon.

On Linux Mint, progam opens only via the commandline

On my Linux Mint 18 x64 Cinnamon, clicking ANGRYsearch's icon in my application menu does nothing. Running the command associated with that icon produces this:

python3 /usr/share/angrysearch/angrysearch.py
Traceback (most recent call last):
  File "/usr/share/angrysearch/angrysearch.py", line 10, in <module>
    import PyQt5.QtCore as Qc
ImportError: No module named 'PyQt5'

This error is discussed (with reference to programs other than ANGRYsearch) at several places on the web but I did not attempt any of the mooted fixes, for fear of messing up my Python and, thus, my operating system. Please advise! Thanks.
The only way the program will run is via
ANGRYsearch

Also, the applet icon (which appears on my system when I run ANGRYsearch via the commandline) is rather dark against most of my panel backgrounds. Moreover, I see no way to disable the applet / stop this icon appearing.

ANGRYsearch does not start up

I'm on arch and installed the package through AUR,
when I want to start the program from my menu it instantly closes

when running in terminal it gives me:

using qt5ct plugin
autodetected file manager: thunar
Traceback (most recent call last):
File "/usr/share/angrysearch/angrysearch.py", line 1435, in paint
Qw.QStyle.SE_ItemViewItemText, options)
TypeError: subElementRect(self, QStyle.SubElement, QStyleOption, QWidget): not enough arguments
Aborted

Problem with icon

Thank you for your reply to my feature request. Now I've a little problem. The same as this one, but with ANGRYsearch in Ubuntu 14.04 Unity.
zealdocs/zeal#148
It's a little be annoying, because angrysearch icon is always on top of maximize windows covering its left corner.

Feature request

Long time waiting for a equivalent software of Everything. Great job. Now I have working in parallel with both. Everything list string searched found in file name and show name and path. Angrysearch list string searched found in both name and path. Is it possible restrain the string searched to avoid show files that not contain the string in the file name, independently that the string is in path name?
Actually I've listing files "cover.jpg" because the string searched (ie: "Berkeley" is on path

Indicator is invisible or near invisible on many desktop themes in Mint

The panel indicator - or should I call it a system tray icon? - for AngrySearch is near invisible for me. For, on my disto, it is very hard to see, pretty much independent of theme (and I don't really need the indicator). Here are partial screenshots using various themes:

image

image

image

image

I'd be happy with a way simply of disabling the icon; is there a way to do that? I can't find an option in the conf file (or any report of such an option). I apologise if I've overlooked or forgotten something.

A question regarding Instant-Dictionary.

Greetings, DoTheEvo.

I'm sorry for posting an unrelated to this section question, but I've found no other way to contact you.
I have an issue regarding your other creation: Instant-Dictionary for Opera 12 (Opera Presto).
It's by far the best extension I've used in opera, but it has stopped working recently due to an unknown reason. Even an official link is no longer supporting it: https://addons.opera.com/en/extensions/details/instant-dictionary/
Although, it remains in the Google chrome archive: https://chrome.google.com/webstore/detail/instant-dictionary/fcjmbgoamdpbndikpbaoeoidaabejfmd?hl=en
So I have this extension installed right now and it was working perfectly yesterday, but not anymore. Any changes to the settings don't help at all. Is there anything I can do to make it work again? It's an essential part of my work in the browser and it's almost impossible to find an alternative.

And thank you for creating such an amazing tool.

Is Debian 8 supported?

Love the AngrySearch.... been using it in Ubuntu and with your idiot-proof instructions, very simple.

However, using Debian 8 now and have this error when 'attempting to test' (python3 angrysearch.py)

screenshot from 2015-12-22 09 50 53

Installed all just as did on Ubuntu, no error before... Thanks.

Bill

Commenting "require_version('Gtk', '3.0')" makes notifications work in KDE neon (based on Ubuntu 16.04 LTS)

Python3 fails at notification check, even though the libraries for having this working are installed:

# CHECK IF NOTIFICATIONS CAN BE MADE
try:
    from gi import require_version
    require_version('Gtk', '3.0')
    require_version('Notify', '0.7')
    from gi.repository import Notify, GdkPixbuf
    NOTIFY_AVAILABLE = True
except:
    NOTIFY_AVAILABLE = False

I solved the issue by:

  1. Installing libnotify-dev (and its dependency gir1.2-notify-0.7, which were not installed in my system)
  2. Commenting out the requirement for Gtk 3, as it was given me the following error:
require_version('Gtk', '3.0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 106, in require_version
    (namespace, version))
ValueError: Namespace Gtk not available for version 3.0
# CHECK IF NOTIFICATIONS CAN BE MADE
try:
    from gi import require_version
    # require_version('Gtk', '3.0')
    require_version('Notify', '0.7')
    from gi.repository import Notify, GdkPixbuf
    NOTIFY_AVAILABLE = True
except:
    NOTIFY_AVAILABLE = False

Once these two things are considered, notifications appear nicely in Plasma 5. It is likely that these issues also apply to other Ubuntu- (and perhaps Debian-) based distributions.

Drag and drop feature

Hi, you've done a marvelous job.

Any chance of adding drag and drop feature to the result listing? I sometimes use Everything to create playlists and this feature is quite useful.

Huge resource drain

Just now, something start using most of my (dual-core) CPU, and 8 GB of RAM and about 8 GB of swap. My suspect is AngrySearch, for (1) I'd just used it (by entering a very long search string, and then truncating it), (2) when I tried to log out, angrysearch.py was flagged as still running (though I couldn't see it in any task managers). The CPU situation persisted for five minutes, and the RAM and swap situation for longer - namely, until I restarted. (The log-out seemed to hang, so I had to reboot.)

Thanks.

Linux Mint 18 x64 Cinnamon.
AngrySearch 1.01

Typing " causes crash

Hello,
I just tried your program and I must say congrats and thanks for your work! It's the closest thing I've ever seen to a fast and decent windows-style search GUI in GNU/Linux.

That said, I thought it might be possible to search for an explicit filename via "myfilename", but realized a bug when trying it.

To reproduce:

  1. Make sure checkbox is checked
  2. Type "

3) Get this in terminal:

autodetected file manager: thunar
Traceback (most recent call last):
File "/usr/bin/angrysearch", line 57, in run
(self.sql_query, self.number_of_results))
sqlite3.OperationalError: malformed MATCH expression: ["]

[1] 26812 abort (core dumped) angrysearch

Presumably, the program should silently ignore the quotation mark without crashing.

Feature request: search for file extensions . .

. . without the arcania of regular expressions. Or at least something on the information page - here on Github - about how to search by extension via regular expressions.

Thansk for reading this and I apologise if I have overlooked something.

Desktop/Panel Widget

Any plans for a KDE/Gnome 3 widget for the desktop/panel? I think it would be pretty useful to have ANGRYsearch in a form similar to Milou/Baloo.

Example screenshot:
Milou

'Open path' does not work on files when using pcmanfm-qt filemanager

Hello!

I don't know whether this is an AngrySearch problem or a pcmanfm-qt problem but, when using AngrySearch's 'open path' function on a file, and when the file manager is set (globally and within AngrySearch) to pcmanfm-qt, then nothing happens. When the item in question is a folder, though, then 'open path' works. When I used nemo or indeed pcmanfm (the non 'qt' version), 'open with' worked for both folders and files.

AngrySearch version: unknown, but fairly recent, and from github.

Forbidden Characters in Search

Not sure if this is an ANGRYsearch problem or something in the underlying FTS setup but words/filenames including some rather common characters don't appear when searching. A file called "Mom's Recipes.txt" won't appear if you search for "Mom's" as it doesn't seem to like the apostrophe. Works in full mode but not lite.

Thus far I've noticed the following characters don't work: ' - ; : #

Just wondering if these is fixable or if it's a feature of the search methods employed.

'Disk image is malformed' error

$ angrysearch
Traceback (most recent call last):
  File "/usr/bin/angrysearch", line 1688, in <module>
    ui = Gui_MainWindow()
  File "/usr/bin/angrysearch", line 663, in __init__
    self.init_GUI()
  File "/usr/bin/angrysearch", line 894, in init_GUI
    self.show_first_500()
  File "/usr/bin/angrysearch", line 1170, in show_first_500
    (self.set['number_of_results'],))
sqlite3.DatabaseError: database disk image is malformed

Mint 18.1 x64 Cinnamon. Latest Git version of AngrySearch.

But - ah - I could fix the error by deleting the database - thus: rm ~/.cache/angrysearch/angry_database.db.

Upon next run, AngrySearch let me recreate that database by pressing the 'update' button. Still, I thought I'd leave this report here, in case it is of help to any other user.

Help customizing

Hi. Thank you for your useful app! It's very fast indeed. Can you help me customize the theme and icons so it looks the same that FSearch with the "dark theme" option enabled? I'm using Arc Darker theme with Flat Remix icons. Thanks a lot!
screenshot_2017-07-27_02-56-04

Can't open text files from ANGRYsearch results

Hi!
Thanks for this wonderful app. I could install it without problems on my ubuntu 16.04 64bits system (mini.iso)
I have been testing and I can open mp3, jpg or pdf files from the results in ANGRYsearch (double click or right click -Open)
But it doesn't do anything when the file is text/plain.
Can you give me any advice on this?
Thanks in advance.

feature request: add included directories

Would be nice to specify the paths/directories to do database and search.
I mean, the opposite of excluded paths.

and, hey, congratulations for this software! well done!

Opening files does not seem to work on Mint

I've tried for PNG, TXT, PDF and DOCX. Trying to open those files via ANGRY - either by double-clicking the file name, or by right-clicking and selecting 'open' - just opens the folders the files are in.

Both ~/.local/share/applications/mimeapps.list and ~/.config/mimeapps.list exist and are populated on my system. Perhaps there is something wrong with those files.

I have the package, and I reinstalled it to no effect.

My angrysearch.conf file:

[General]
angrysearch_lite=true
conditional_mounts_for_autoupdate=
darktheme=false
directories_excluded=Systemback tmp
fast_search_but_no_substring=true
file_manager=nemo
fm_path_doubleclick_selects=true
icon_theme=paper
notifications=false
number_of_results=500
regex_mode=false
row_height=0
typing_delay=true

How to search additional drives

Hello! Thanks for the great software! Maybe I'm not looking in the right place, but I cannot figure out how to index & search all the drives connected to my machine. Only the system drive is accessible. I have 5 drives installed and would like to index them all. My OS is Ubuntu 16.04.Thanks in advance for your assistance!

Add new icons

Hello,
I was experimenting with icons. I tried to add new, (put instead of bundled ones, or in code add entry), but didn't figure it out. Is there a easy way to do this? I use Lubuntu icons style. It's all what I miss in this outstanding software. Many thanks for reply.
lubuntu_mimeicons.tar.gz

No config file?

I can't find the config file in the location specified in docs ~/.config/angrysearch/angrysearch.conf under Manjaro/Arch Linux. In fact, there is no file containing the string "angry" at all in my ~/ directory.

Here are the files created at installation (from /var/lib/pacman/local/angrysearch-1.0.1-1/files):

%FILES%
usr/
usr/bin/
usr/bin/angrysearch
usr/share/
usr/share/angrysearch/
usr/share/angrysearch/angrysearch.desktop
usr/share/angrysearch/angrysearch.py
usr/share/angrysearch/angrysearch.svg
usr/share/angrysearch/angrysearch_update_database.py
usr/share/angrysearch/qdarkstylesheet.qss
usr/share/angrysearch/resource_file.py
usr/share/angrysearch/scandir.py
usr/share/applications/
usr/share/applications/angrysearch.desktop
usr/share/pixmaps/
usr/share/pixmaps/angrysearch.svg

Support keyboard navigation

Hi,
Can you add some keyboard shortcut to focus the search input, please? Since I can use Tab to select search results, I think having a shortcut to focus back to the search input is a nice little feature.

Fuzzy search

Hi,

This is absolutely great, almost like Everything.
But it's lacking fuzzy search.

Results are tiny on a hiDPI screen

I've got an X1 Carbon with a 2560 x 1440 screen, running Mint Cinnamon with Mint's 'hiDPI' setting enabled. Most programs look fine. Yet the results list in AngrySearch is tiny. I've found the 'row height' option, but that doesn't help.

Error Installing ANGRYsearch from AUR

I use manjaro and when I tried to install angrysearch I got this:

Packages (2) pyqt5-common-5.6-1  python-pyqt5-5.6-1

Total Download Size:    3.61 MiB
Total Installed Size:  27.07 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
 pyqt5-common-5.6-1-x...     6.3 KiB  45.1K/s 00:00 [##########################] 100%
 python-pyqt5-5.6-1-x...     6.3 KiB  43.9K/s 00:00 [##########################] 100%
(2/2) checking keys in keyring                      [##########################] 100%
(2/2) checking package integrity                    [##########################] 100%
error: pyqt5-common: signature from "Felix Yan <[email protected]>" is invalid
:: File /var/cache/pacman/pkg/pyqt5-common-5.6-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] y
error: python-pyqt5: signature from "Felix Yan <[email protected]>" is invalid
:: File /var/cache/pacman/pkg/python-pyqt5-5.6-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] y
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.

Can you fix it ?

Restrict query to subtree

I would like to search just a subtree of all my files, because i know that the file i'm looking for is somewhere "over there"

Feature Request: Include instead of Exclude

Been playing around with ANGRYsearch, loving it so far and glad to see some development on a tool like this so thank you!

I read over the documentation and couldn't find where or how to specify which directories to index. Exclude is an option, but not include? So maybe this is a support request or a feature request.

Single-instance mode

It would be great if ANGRYsearch could check if another instance is running when started and bring that window up instead. Currently I'm using KDE's krunner and it keeps spawning new instances which minimize to the tray when I close them.

I am using Ctrl+Q to close the window, but I rebound this shortcut in KDE's KWin to always close the active window, which triggers the close button behavior of ANGRYsearch, i.e. it just minimizes it to the systemtray.

So either: close the ANGRYsearch instance when clicking the close button manually instead of using Esc or Ctrl+Q (when not manually rebound) or check for another running instance when starting and bring that one to the foreground if found. I think making the close button behavior the same as the one triggered by the Esc and Ctrl+Q shortcuts would make more sense.

The issue is that self.tray_icon keeps the application running, because it isn't closed or still visible after the main window has been closed -- calling hide() on it should cause the main window to automatically get rid of it when it closes. Also ANGRYsearch currently uses three or four different methods to close the application in various ways:

  • sys.exit (triggered by the tray icon's Quit action)
  • sys.exit(app.exec_()) (triggered by main window's keyPressEvent)
    • this doesn't make sense and also causes exit code 255, the application is already running, you don't need to pass in app.exec_() again
  • sys.exit(app.exec_()) (triggered by if-main)
    • this seems correct but returns exit code 134, related?
  • Qc.QCoreApplication.instance().quit() (triggered by middle-click on the tray icon)
    • I'm not sure why you are using this way here

IMHO these should all cause all of the application's windows to close (i.e. use closeEvent properly). The app.exec_() call in if-main should then return properly, and the return code fed into sys.exit(). I'm not sure why Qt's exit code is 134 currently. Is there maybe a reason for all these different ways or is it simply old code? Especially considering that your Esc and Ctrl+Q currently don't even call the logic in your closeEvent method -- i.e. the settings don't get saved. I suggest you change sys.exit(app.exec_()) in keyPressEvent to self.close().

EDIT: I added a pull request with these changes implemented. The return code seems to be 0 most of the time now too.

add options: filter search result options

An option to have the table filtered by folder,or type,or pictures, or video would be immensely valuable.
Something like what is available in catfish.
I have been trying to edit some of the code or table but the PyQt5 for GUI .ui file is not available.

how to exclude multiple directories from search

Hi, from explanation of the parameters in the config file:
"directories_excluded By default empty. Which directories to be ignored. ..."

How to exclude multiple directories from search?
I tried to add other directories in the config file by separating the additional paths by space, semicolon, comma, newline (with directories excluded copied to the next line). None seems to be working.

Could you write a short explanation to clarify please. Thanks and keep up the great work.!

Two suggestions

(1) Exclude the mnt folder by default, so as to avoid index removable media and network-drives,
(2) When user presses 'update', check if the file containing the exclusion list has been modified and, if it has, reload it.

Thanks again for your excellent program - a program that makes me a little less angry.

'close_on_open=false' not honoured

AngrySearch version: cannot determine, but installed a few months ago from Git
Mint 18.3 x64 Cinnamon

angrysearch.conf snippet:

close_on_open=false

Observed behaviour: please see this video.

Feature: Allow use of the same database for many users of the same system.

We run thin clients at work and it would be great to use angrysearch here but it looks like currently each user would have to have their own database (which in our case is about 900MB big). A nice feature would be to have a centralised database so that we don't have to have a separate file per user.

Option to exclude folders is not working, at least as expected

My /home//.config/angrysearch/angrysearch.conf file includes

directories_excluded=/home/Systemback /var/tmp

EDIT: ah. Probably I misunderstood the phrase 'directory names(no slashes)' in your documentation. Should I have just, e.g. 'Systemback'? Yes, that seems to work! Yet, what if I had more than one folder with that name?

and yet results for subfolders of /home/Systemback appear in the search results. Is there some syntax, that I have omitted from my line, that tells the program to exclude all _sub_folders too?

By the way: I did rebuild the index, but it did not solve the problem.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.