123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531 |
- ********
- searx-qt
- ********
- Lightweight desktop application for searx
- #########################################
- This is documentation for searx-qt version 0.1
- .. _index:
- ******
- Index
- ******
- - `Index <index_>`_
- - `About <about_>`_
- - - `Summary <about/summary_>`_
- - - `Source <about/source_>`_
- - - `License <about/license_>`_
- - - `Dependencies <about/dependencies_>`_
- - `Getting started <getting_started_>`_
- - - `Install dependencies <getting_started/install_dependencies_>`_
- - - `Installation <getting_started/installation_>`_
- - `Usage <usage_>`_
- - - `Settings <usage/settings_>`_
- - - `Instances <usage/instances_>`_
- - - `Search <usage/search_>`_
- .. _about:
- ******
- About
- ******
- .. _about/summary:
- 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 'searx instances'
- or in this document we may refer to just 'instance(s)'.
- If you are not familiar with the searx project; you can checkout their page
- here: https://asciimoo.github.io/searx/ or https://searx.me/
- - API Docs: https://asciimoo.github.io/searx/dev/search_api.html
- - Source: https://github.com/asciimoo/searx
- - License: GPLv3
- searx-stats2
- ------------
- The searx-stats2 project lists public searx instances with statistics. The
- original searx-stats2 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: https://github.com/dalf/searx-stats2
- - License: GPLv3
- .. _about/source:
- Source
- ######
- https://notabug.org/CYBERDEViL/searx-qt
- .. _about/license:
- License
- #######
- - GPLv3
- - https://www.gnu.org/licenses/gpl-3.0.en.html
- .. _about/dependencies:
- 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
- urllib3 - MIT https://urllib3.readthedocs.io/
- ======== ========= ========= =====
- Optional for socks proxy support:
- ======== ========= ========= =====
- name version license URL
- ======== ========= ========= =====
- pysocks - BSD https://github.com/Anorov/PySocks
- ======== ========= ========= =====
- .. _getting_started:
- ****************
- Getting started
- ****************
- .. _getting_started/install_dependencies:
- Install dependencies
- ####################
- Note: ``python-requests`` is also dependent on ``python-urllib3`` ;
- so ``python-urllib3`` will be installed with ``python-requests``
- (No need to do a explicit install).
- 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
- .. _getting_started/installation:
- Installation
- ############
- It is always recommended to let the package-manager of your system
- do the installing of software, so your package-manager will keep
- track of files installed. Only use ``setup.py`` directly if you
- know what you are doing.
- Since searx-qt isn't available in any GNU/Linux distribution (yet?); the
- best option is to create a package for your distribution yourself from the
- latest release. This will also mean that you have to manually update
- searx-qt if there is a new version available.
- Note: https://notabug.org/CYBERDEViL/searx-qt/releases
- Note: noticed the ``#`` or ``$`` before every command? When there is a
- ``$`` before the command, it should be run as a regular user. ``#`` as root.
- Debian based
- ------------
- The steps below describe how to get a specific version of searx-qt; then
- package and install it. This method is available from version
- ``0.1-beta2`` and up.
- 1) Make sure you have ``python3-stdeb`` and ``git`` installed::
- # apt install python3-stdeb git
- 2) Creating a working directory and ``cd`` in to it, you may
- change this to your own preference::
- $ mkdir ~/git
- $ cd ~/git
- 3) Cloning the repository and ``cd`` in to it::
- $ git clone "https://notabug.org/CYBERDEViL/searx-qt.git" "searx-qt"
- $ cd searx-qt
- 4) Checkout a specific version:
- Note: get a list with available tags (versions) with the
- ``git tag`` command.
- Below is a example to checkout version ``0.1-beta2``::
- $ git checkout 0.1-beta2
- 5) Create .deb::
- $ ./utils/gen_deb.sh
- 6) Install the created package::
- # dpkg -i ./deb_dist/python3-searx-qt_0.1-beta2-1_all.deb
- Arch based
- ----------
- For Arch based distributions there is a package available in the AUR;
- https://aur.archlinux.org/packages/searx-qt/
- 1) Make sure you have ``git`` installed::
- # pacman -S git
- 2) Creating a working directory and ``cd`` in to it, you may change this
- to your own preference::
- $ mkdir ~/pkg
- $ cd ~/pkg
- 3) Getting the ``PKGBUILD`` from Arch AUR::
- $ git clone https://aur.archlinux.org/searx-qt.git
- $ cd searx-qt
- 4) Build and install searx-qt package::
- $ makepkg -si
- .. _usage:
- ******
- Usage
- ******
- .. _usage/settings:
- Settings
- ########
- .. image:: images/settings.png
- :align: right
- Connection
- ----------
- 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.
- searx-stats2
- ------------
- Here you can change the URL of the searx-stats2 instance you like to use
- for fetching the instances data.
- .. _usage/instances:
- Instances
- #########
- .. image:: images/instances.png
- :align: right
- A searx 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.
- .. _usage/instances/table:
- 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 run their server at a known malicious network.
- Like for example CloudFlare, Google, Akamai etc..
- This does not give any guarantee, it only filters **known** privacy
- violators!
- For a full list of known malicious networks (technical):
- https://github.com/dalf/searx-stats2/blob/master/searxstats/data/asn.py
- 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 versions.
- Blacklist
- =========
- Here are the URLs of the instances that have been manually blacklisted.
- 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.
- .. _usage/search:
- Search
- ######
- .. _usage/search/bar:
- Search bar
- ------------------------
- .. image:: images/search_bar.png
- .. _usage/search/bar/fallback:
- Fallback
- ========
- If checked it will pick a random instance from the instances table if a
- search request fails one way or another and re-try the same request with
- the freshly picked instance. There is a maximum amount of 10 tries (10
- different instances to try the same request on).
- What is fail?
- - Connection errors including timeout.
- - Wrong status code (not 200).
- - No or malformed results returned.
- .. _usage/search/random_every:
- Random every
- ============
- If checked it will automatically pick a random instance on a search request,
- it will also hide the 'Random search button' because it makes it obsolete.
- If not checked it will do search requests on the same instance unless the
- request fails somehow and 'Fallback' is checked. Exception is when the
- 'Random search button' is used for the search request.
- .. _usage/search/bar/random_search_button:
- Random search button
- ====================
- When pressed it will pick a random instance from the list and preform the
- search request.
- .. _usage/search/bar/reload_button:
- Reload button
- =============
- When pressed it basically preforms a search request without 'Fallback'
- whenever it is enabled or not, it also doesn't reset the page number. So
- it can act as a reload button thus it's name, but it does more.
- Note: When a search argument like the search query, instance URL,
- categories/engines etc. has changed by user interaction it will do the
- request with those changes, that isn't a real reload of the previous
- request.
- Dev-note: Probably this behavior should change or the name/icon should
- change to something more fitting.
- .. _usage/search/bar/search_button:
- Search button
- =============
- Preform a search request on the currently selected instance.
- Page number is reset, 'Fallback' and 'Random Every' options are honored.
- .. _usage/search/bar/search_query_input:
- Search query input
- ==================
- The query you like to search for.
- See https://asciimoo.github.io/searx/user/search_syntax.html for what is
- possible.
- It will do a search request on ``enter`` key pressed, same behavior as
- when the 'Search button' has been pressed.
- .. _usage/search/options:
- Search options
- --------------
- .. image:: images/search_options.png
- Right clicking in (on the picture above) the dark area opens a
- context-menu where you can manage what options you want to be visible or
- not.
- .. _usage/search/options/categories:
- Categories
- ==========
- These are predefined by searx but can vary by instance. Example if
- 'Images' is checked it will only use engines with images enabled. If
- 'Files' is checked it will only use engines with files enabled.
- searx-qt only passes this info to a searx instance with a search request,
- it will not automatically filter the instances table (yet).
- .. _usage/search/options/engines:
- Engines
- =======
- Here you can toggle what search engines should be enabled. It will
- automatically filter out all instances from the instances table that doesn't
- have at least one of the checked engines enabled. The checked engines will
- be send with a search request to a searx instance with the `enabled_engines`
- param. You should only get results from engines that are checked.
- If no engine is checked it means that it may return results of any engine
- in the list, unless one or more of the
- `categories <usage/search/options/categories_>`_ are checked.
- The list with engines is created with data from the
- `instances table <usage/instances/table_>`_, so only engines are listed that
- are available from the instances table.
- .. _usage/search/options/period:
- Period
- ======
- Search period you like results from. Options are ``Last day``,
- ``Last week``, ``Last month`` or ``Last year``.
- .. _usage/search/options/language:
- Language
- ========
- If you want results in a specific language than you can select one here.
|