FTS desktop file search with previews
Iet uz failu
Albert S e76988ee77 shared: SandboxedProcessor: Enable fallback for non-landlock systems
Unless it's a processor that does not need fs access, this would
fail on systems without landlock, so we must fallback to
chroot() etc. again.
2022-06-09 10:04:48 +02:00
cli cli: CommandAdd: Set keepGoing, Remove verbose for now 2022-06-06 09:34:37 +02:00
gui gui: ipc sandbox: Restrict sandbox further 2022-06-09 10:04:48 +02:00
shared shared: SandboxedProcessor: Enable fallback for non-landlock systems 2022-06-09 10:04:48 +02:00
submodules submodules: exile.h: Update 2022-06-09 10:04:48 +02:00
.gitignore Add .gitignore 2022-06-07 00:00:54 +02:00
.gitmodules Switch to exile.h 2022-01-01 17:58:52 +01:00
CHANGELOG.md Release: v0.2 2022-06-07 00:01:35 +02:00
CONTRIBUTING.md Begin CONTRIBUTING.md 2022-06-06 14:49:34 +02:00
HACKING.md shared/gui: Add LOOQS_DISABLE_SANDBOX env to allow disabling sandboxing 2022-06-06 23:23:07 +02:00
LICENSE add LICENSE 2022-04-24 20:07:25 +02:00
looqs.desktop looqs.desktop: Remove absolute path to binary 2022-06-06 15:55:21 +02:00
looqs.pro Rename qss.pro to looqs.pro 2021-06-12 15:14:10 +02:00
looqs.svg rename icon to looqs.svg 2022-06-06 15:55:21 +02:00
README.md Release: v0.2 2022-06-07 00:01:35 +02:00
USAGE.md Begin USAGE.md 2022-06-06 14:49:17 +02:00

looqs - Full-text search with previews for your files

looqs is a tool that creates a full-text search index for your files. It allows you to look at previews where your search terms have been found, as shown in the screenshots below.

Screenshots

The screenshots in this section may occasionally be slightly outdated, but they are usually recent enough to get an overall impression of the current state of the GUI.

Preview

looqs allow you to look inside files. It marks what you have searched for.

Screenshot looqs Screenshot looqs search fstream

Results list

Classic results list

Just enter what you want to find, it will search paths and file content. Screenshot looqs results

Searching with filters

You can be more specific to get what you want with filters

Filters (long form) Screenshot looqs results

Filters (short form)

There is no need to write the long form of filters. There are also booleans available

Screenshot looqs results

Current status

Last version: 2022-06-07, v0.2

Please see Changelog for a human readable list of changes.

Goals and principles

  • Find & Preview. Instead of merely telling you where your search phrase has been found, it should also render the corresponding portion/pages of the documents and highlight the searched words.
  • No daemons. As some other desktop search projects are prone to have annoying daemons running that eat system resources away, this solution should make do without daemons where possible.
  • Easy setup. Similarly, there should be no need for heavy-weight databases. Instead, looqs tries to squeeze out the most from simple approaches. In particular, it relies on sqlite.
  • GUI & CLI. Provide CLI interfaces and GUI interfaces
  • Sandboxing. As reading and rendering lots of formats naturally opens the door for security bugs, those tasks are offloaded to small, sandboxed sub-processes to mitigate the effect of exploited vulnerabilities.

Features

  • GUI, CLI interface
  • Indexing of file path and some metadata.
  • Indexing of file file content for FTS search. Currently: .pdf, odt, docx, plaintext.
  • Preview of file formats: Currently: .pdf, plaintext
  • Highlight searched terms.
  • Quickly open PDF viewer or text editor at location of preview
  • Search filters

Supported platforms

Linux (on amd64) is currently the main focus. Currently, I don't plan on supporting anything else and the sandboxing architecture does not make it likely. I suppose a version without sandboxing might be conceivable for other platforms, but I have no plans or resources to actively target anything but Linux at this point.

Licence

GPLv3.

Contributing

Please see the Contribution guidelines file.

Documentation

Please see USAGE.md for the user manual. There is also HACKING.md with more technical information.

Build

Ubuntu 21.10/22.04

To build on Ubuntu and Debian, clone the repo and then run:

git submodule init
git submodule update
sudo apt install build-essential qtbase5-dev libpoppler-qt5-dev libuchardet-dev libquazip5-dev
qmake
make

The GUI is located in gui/looqs-gui, the binary for the CLI is in cli/looqs

Packages

At this point, looqs is not in any official distro package repo, but I maintain some packages.

Ubuntu 21.10/22.04

Latest release can be installed using apt from the repo.

# First, obtain key, assume it's trusted.
wget -O- https://repo.quitesimple.org/repo.quitesimple.org.asc  | gpg --dearmor > repo.quitesimple.org-keyring.gpg
cat repo.quitesimple.org-keyring.gpg | sudo tee -a /usr/share/keyrings/repo.quitesimple.org.gpg > /dev/null

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/repo.quitesimple.org.gpg] https://repo.quitesimple.org/debian/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/quitesimple.list
sudo apt-get update
sudo apt-get install looqs

Other distros

I'll probably add a package for voidlinux at some point and maybe will provide a Gentoo ebuild. However, I would appreciate help for others distros. If you create a package, let me know!

As for distro-agnostic packages, I will also take a look into appimage / flatpak etc. and/or maybe just provide a self-contained archive.