2022-05-31 10:48:00 +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
2022-04-24 15:51:58 +02:00
search terms have been found, as shown in the screenshots below.
2018-01-03 09:40:13 +01:00
2021-06-12 14:57:26 +02:00
## Screenshots
2022-06-06 14:50:05 +02:00
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.
2022-04-14 16:54:46 +02:00
### Preview
2022-06-06 17:11:20 +02:00
looqs allow you to look inside files. It marks what you have searched for.
2022-06-06 14:50:05 +02:00
2022-04-14 16:54:46 +02:00
![Screenshot looqs ](https://garage.quitesimple.org/assets/looqs/orwell.png )
![Screenshot looqs search fstream ](https://garage.quitesimple.org/assets/looqs/fstream_write.png )
2022-06-06 14:50:05 +02:00
### Results list
#### Classic results list
2022-06-06 17:11:20 +02:00
Just enter what you want to find, it will search paths and file content.
2022-06-06 14:50:05 +02:00
![Screenshot looqs results ](https://garage.quitesimple.org/assets/looqs/looqs_diary.png )
#### Searching with filters
You can be more specific to get what you want with filters
**Filters (long form)**
![Screenshot looqs results ](https://garage.quitesimple.org/assets/looqs/opearting_systems_looqs.png )
**Filters (short form)**
There is no need to write the long form of filters. There are also booleans available
![Screenshot looqs results ](https://garage.quitesimple.org/assets/looqs/looqs_beatles_marley.png )
2022-04-14 16:54:46 +02:00
## Current status
2022-06-14 17:41:07 +02:00
Last version: 2022-06-14, v0.3
2022-04-14 16:54:46 +02:00
2022-06-06 14:50:05 +02:00
Please see [Changelog ](CHANGELOG.md ) for a human readable list of changes.
2020-08-24 22:18:49 +02:00
2021-08-11 21:05:39 +02:00
## Goals and principles
2021-06-12 14:57:26 +02:00
* **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.
2022-04-24 15:51:58 +02:00
* **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.
2022-06-06 14:50:05 +02:00
* **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.
2020-08-24 21:50:39 +02:00
* **GUI & CLI**. Provide CLI interfaces and GUI interfaces
2021-08-11 21:05:39 +02:00
* **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.
2020-08-24 22:52:52 +02:00
2022-06-06 17:11:20 +02:00
## Features
2022-06-06 14:50:05 +02:00
- 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
2022-04-14 16:54:46 +02:00
## Supported platforms
2022-04-24 15:51:58 +02:00
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
2022-06-06 14:50:05 +02:00
GPLv3.
2022-04-24 15:51:58 +02:00
### Contributing
2022-06-06 17:11:20 +02:00
Please see the [Contribution guidelines ](CONTRIBUTING.md ) file.
2022-06-06 14:50:05 +02:00
## Documentation
Please see [USAGE.md ](USAGE.md ) for the user manual. There is also [HACKING.md ](HACKING.md ) with more technical information.
2022-04-24 15:51:58 +02:00
2022-04-14 16:54:46 +02:00
2021-06-12 14:57:26 +02:00
## Build
2022-04-24 15:51:58 +02:00
### Ubuntu 21.10/22.04
2022-06-06 14:50:05 +02:00
2022-06-06 17:11:20 +02:00
To build on Ubuntu and Debian, clone the repo and then run:
2020-04-28 16:59:42 +02:00
```
2022-04-24 15:51:58 +02:00
git submodule init
git submodule update
2021-06-12 14:57:26 +02:00
sudo apt install build-essential qtbase5-dev libpoppler-qt5-dev libuchardet-dev libquazip5-dev
2020-04-28 16:59:42 +02:00
qmake
make
```
2022-06-20 23:21:37 +02:00
### Void
```
# as root
xbps-install qt5-devel poppler-qt5-devel quazip-qt5-devel uchardet-devel gcc make
# as user
git submodule init
git submodule update
qmake
make
```
2022-06-06 14:50:05 +02:00
The GUI is located in `gui/looqs-gui` , the binary for the CLI is in `cli/looqs`
2022-04-24 15:51:58 +02:00
2022-06-06 17:11:20 +02:00
## 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
```
2022-04-24 15:51:58 +02:00
2022-06-06 17:11:20 +02:00
### 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!
2020-08-24 22:18:49 +02:00
2022-06-06 17:11:20 +02:00
As for distro-agnostic packages, I will also take a look into appimage / flatpak etc. and/or maybe just provide a self-contained archive.