searx-qt

Lightweight desktop application for searx

This document is work in progress; as is the searx-qt project.

Index

About

Summary

searx-qt is a lightweight desktop application that lets you search on public searx instances listed on https://searx.space.

Technically searx-qt is a client application that does magic with the searx API and searx-stats2 it's instances.json

searx

Actual search requests will be made to a server running searx software, there are many public available. We call such servers 'instances'.

If you are not familiar with the searx project; you can checkout their page here: https://asciimoo.github.io/searx/ or https://searx.me/

searx-stats2

The searx-stats2 project lists public searx instances with statistics. The original instance is running at https://searx.space/. This is where searx-qt will request a list with instances when the update button is pressed.

Source

Dependencies

name version license URL
python 3 PSFL https://docs.python.org/3/license.html
requests   Apache 2 http://docs.python-requests.org/en/master/
PyQt5   GPLv3 https://www.riverbankcomputing.com/software/pyqt/intro

Optional for socks proxy support:

name version license URL
pysocks   BSD https://github.com/Anorov/PySocks

Getting started

Install dependencies

Debian / Ubuntu based

Install required dependencies:

# apt update
# apt upgrade
# apt install python3 python3-requests python3-pyqt5

Optional for socks proxy support:

# apt install python3-socks

Arch based

Install required dependencies:

# pacman -Syu python python-requests python-pyqt5

Optional for socks proxy support:

# pacman -S python-pysocks

Installation

TODO

Usage

Settings

images/settings.png

Verify (SSL)

Request will fail on a invalid SSL/TLS certificate.

Leave checked if unsure.

See https://requests.readthedocs.io/en/master/user/advanced/#ssl-cert-verification for a more technical description.

Timeout

Timeout in seconds for a single request.

Leave it at the default value of 10 seconds if unsure.

See https://requests.readthedocs.io/en/master/user/advanced/#timeouts for a more technical description.

Proxy

Here you can set a proxy that will be used for every connection searx-qt makes. Leave the input field blank to use no proxy.

The 'Http' section can be used to proxy plain http:// requests to for example instances without a certificate. The 'Https' section can be used to proxy all https:// requests to instances (including fetching the instances list data from https://searx.space) with a certificate. So you can use a separate proxy for both protocols.

If you use a socks4 or socks5 proxy you probably want to make sure the 'Proxy DNS' checkbox is checked so DNS requests will also go through the proxy. DNS proxy is not available for a http proxy type.

Instances

images/instances.png

A instance is a server running the searx project. Since we want to preform searches to searx instance(s) we need addresses of those instance(s); those will be fetched from https://searx.space/data/instances.json. The instances.json from search.space also contains a lot of other data about the instances it lists which we can use to filter instances based on our preferences.

The interface to manage instances is on the right. This is used to update the instances data with a press on the 'Update' button; filter the instances and browse/use the leftover instances in the instances table.

Update instances table

If searx-qt is used for the first time you will need to update the instances table. There is a 'Update' button between the Filter and the Table that can be used for this. searx-qt will not update this automatically!

It maybe useful to update the instances data so now and then since public instances appear, disappear and their stats change over time.

Instances table

The instances table can be used to browse instances with their data that remain after all filters. The table is also used to set the current instance by left-clicking on one.

Right-clicking in the table opens a context-menu from where you can do the following:

  • Blacklist selected instance(s).
  • Copy selected instance(s) it's/their URL(s).
  • Select All instances (CTRL+A should do the same).
  • Hide or show columns.

The currently used instance should also be visible bottom right in the application it's status-bar.

Filter instances

When a filter is enabled and the instance it's value that is being matched is unknown then it is excluded by default!

Network

Filter instances on network type. Only instances that match one of the checked network types remain.

Require ASN privacy

Excludes instances that use a known MITM reverse proxy service like CloudFlare.

Require IPv6

Exclude instances that don't have at least one IPv6 address.

Version

Include only instances that have a searx version that has been added to this widget. Leave empty to allow all searx version.

Blacklist

Here are the URLs of the instances that have been manually blacklisted listed. There is a button right to each blacklist item to remove it from the blacklist.

You can manually blacklist a instance by right clicking on a instance in the instances table and click 'Add to blacklist'; multiple instances can be blacklisted at once.