1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348 |
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
- <title>Searx-Qt documentation</title>
- <style type="text/css">
- /*
- :Author: CYBERDEViL
- :Contact: cyberdevilnl at protonmail d0t com
- :Copyright: This stylesheet has been placed in the public domain.
- Stylesheet for use with Docutils.
- https://docutils.sourceforge.io/docs/howto/html-stylesheets.html
- */
- /*@import url(html4css1.css);*/
- body {
- max-width: 800px;
- background-color: #161616;
- color: #bcb;
- }
- a {
- color: #11aa11;
- }
- table {
- border: none;
- background-color: #191919;
- }
- tr {
- border: none;
- }
- th {
- border: none;
- text-align: left;
- }
- td {
- border: none;
- border-bottom: 1px solid #114411;
- text-align: left;
- }
- /*indent sections a little*/
- .section {
- margin-left: 12px;
- }
- /*indent section contents a little*/
- p, pre, table {
- margin-left: 12px;
- }
- pre {
- font-family: monospace;
- background-color: #222;
- border: 1px solid #111;
- padding: 5px;
- }
- h1 {
- background-color: #222;
- padding: 6px;
- }
- h1 a {
- color: #fff;
- text-decoration: none;
- }
- h1 a:hover {
- text-decoration: underline;
- }
- img.header {
- max-width: 800px;
- height: auto;
- width: 100%;
- }
- img.align-right {
- clear: right;
- float: right;
- margin-left: 1em
- }
- </style>
- </head>
- <body>
- <div class="document">
- <div class="section" id="searx-qt">
- <h1>Searx-Qt</h1>
- <div class="section" id="desktop-client-application-for-searx-searxng-searx-space">
- <h2>Desktop client application for Searx/SearXNG/searx-space</h2>
- <p>This is documentation for Searx-Qt version 0.6.0-alpha1</p>
- <img alt="Searx-Qt v0.4 screenshot." class="header" src="images/screenshot_0_4a1.png" />
- </div>
- </div>
- <div class="section" id="index-1">
- <span id="index"></span><h1>Index</h1>
- <ul class="simple">
- <li><a class="reference internal" href="#index">Index</a></li>
- <li><a class="reference internal" href="#about">About</a></li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-summary">Summary</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-source">Source</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-license">License</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-dependencies">Dependencies</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-translations">Translations</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#about-contact">Contact</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#getting-started">Getting started</a></li>
- <li><ul class="first">
- <li><a class="reference internal" href="#getting-started-install-dependencies">Install dependencies</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference external" href="getting_started/start_without_install">Start without install</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#getting-started-installation">Installation</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#usage">Usage</a></li>
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-profiles">Profiles</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings">Settings</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings-general">General</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><ul class="first">
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings-connection">Connection</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><ul class="first">
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings-searxng">SearXNG</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><ul class="first">
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings-searxspace">Searx-Space</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><ul class="first">
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-settings-guard">Guard</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-instances">Instances</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#usage-search">Search</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
- <li><ul class="first">
- <li><a class="reference internal" href="#troubleshooting-wontstart">Searx-Qt won't start</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#development">Development</a></li>
- <li><ul class="first">
- <li><a class="reference internal" href="#development-themes">Themes</a></li>
- </ul>
- </li>
- <li><ul class="first">
- <li><a class="reference internal" href="#development-translations">Translations</a></li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="section" id="about-1">
- <span id="about"></span><h1><a class="reference internal" href="#about">About</a></h1>
- <div class="section" id="summary">
- <span id="about-summary"></span><h2><a class="reference internal" href="#about-summary">Summary</a></h2>
- <p>Search with <tt class="docutils literal">Searx</tt>/<tt class="docutils literal">SearXNG</tt> instances without the need for a complex
- web-browser.</p>
- <p>Searx-Qt is a desktop application that lets you search on
- public <tt class="docutils literal">SearXNG</tt> instances listed on <tt class="docutils literal"><span class="pre">https://searx.space</span></tt> (or you
- can add <tt class="docutils literal">Searx</tt> or <tt class="docutils literal">SearXNG</tt> instance urls manually).</p>
- <p>The aim of the project is to preform search operations on <tt class="docutils literal">Searx</tt>/
- <tt class="docutils literal">SearXNG</tt> instances with the use of their API and without the need for a
- complex web-browser. <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> will do the bare minimum of what is
- required to search, no cookies and no javascript. Just render a
- <tt class="docutils literal">Searx</tt>/<tt class="docutils literal">SearXNG</tt> API request to something usefull.</p>
- <p>Unfortunately most public <tt class="docutils literal">SearXNG</tt> instances actively block requests to
- their <tt class="docutils literal"><span class="pre">JSON-API</span></tt>. <em>But don't worry!</em> Thats why there is a option in the
- <a class="reference internal" href="#usage-settings-searxng">SearXNG settings</a> (which is on by default) to
- parse <tt class="docutils literal">HTML</tt> instead, and still no javascript and no cookies.</p>
- <p>Since version <tt class="docutils literal">0.2</tt> it is also possible to manage your own (private?)
- instances with the use of a 'user' profile.</p>
- <div class="section" id="searx">
- <h3>Searx</h3>
- <p>The <tt class="docutils literal">Searx</tt> project is no longer maintained but for now <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt>
- will still support it.</p>
- <ul class="simple">
- <li>API Docs: <a class="reference external" href="https://searx.github.io/searx/dev/search_api.html">https://searx.github.io/searx/dev/search_api.html</a></li>
- <li>Source: <a class="reference external" href="https://github.com/searx/searx">https://github.com/searx/searx</a></li>
- <li>License: AGPL3</li>
- <li>Status: Inactive</li>
- </ul>
- </div>
- <div class="section" id="searxng">
- <h3>SearXNG</h3>
- <ul class="simple">
- <li>API Docs: <a class="reference external" href="https://docs.searxng.org/dev/search_api.html">https://docs.searxng.org/dev/search_api.html</a></li>
- <li>Source: <a class="reference external" href="https://github.com/searxng/searxng">https://github.com/searxng/searxng</a></li>
- <li>License: AGPL3</li>
- <li>Status: Active</li>
- </ul>
- </div>
- <div class="section" id="searx-space">
- <h3>searx-space</h3>
- <p>The <tt class="docutils literal"><span class="pre">searx-space</span></tt> project lists public <tt class="docutils literal">SearXNG</tt> instances with
- statistics. The official instance is running at <tt class="docutils literal"><span class="pre">https://searx.space/</span></tt>.
- This is where <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> will request a list with instances when the update
- button is pressed by default (the <tt class="docutils literal"><span class="pre">searx-space</span></tt> url can be changed in the
- settings).</p>
- <ul class="simple">
- <li>Source: <a class="reference external" href="https://github.com/searxng/searx-space">https://github.com/searxng/searx-space</a></li>
- <li>License: AGPL3</li>
- </ul>
- </div>
- </div>
- <div class="section" id="source">
- <span id="about-source"></span><h2><a class="reference internal" href="#about-source">Source</a></h2>
- <p><a class="reference external" href="https://notabug.org/CYBERDEViL/searx-qt">https://notabug.org/CYBERDEViL/searx-qt</a></p>
- </div>
- <div class="section" id="license">
- <span id="about-license"></span><h2><a class="reference internal" href="#about-license">License</a></h2>
- <ul class="simple">
- <li>GPL3 <a class="reference external" href="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</a></li>
- </ul>
- </div>
- <div class="section" id="dependencies">
- <span id="about-dependencies"></span><h2><a class="reference internal" href="#about-dependencies">Dependencies</a></h2>
- <table border="1" class="docutils">
- <colgroup>
- <col width="16%" />
- <col width="10%" />
- <col width="10%" />
- <col width="63%" />
- </colgroup>
- <thead valign="bottom">
- <tr><th class="head">name</th>
- <th class="head">version</th>
- <th class="head">license</th>
- <th class="head">URL</th>
- </tr>
- </thead>
- <tbody valign="top">
- <tr><td>python</td>
- <td>3</td>
- <td>PSFL</td>
- <td><a class="reference external" href="https://docs.python.org/3/license.html">https://docs.python.org/3/license.html</a></td>
- </tr>
- <tr><td>requests</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>Apache 2</td>
- <td><a class="reference external" href="http://docs.python-requests.org/en/master/">http://docs.python-requests.org/en/master/</a></td>
- </tr>
- <tr><td>jsonschema</td>
- <td>>= 4.10</td>
- <td>MIT</td>
- <td><a class="reference external" href="https://github.com/python-jsonschema/jsonschema">https://github.com/python-jsonschema/jsonschema</a></td>
- </tr>
- <tr><td>PyQt5</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>GPL3</td>
- <td><a class="reference external" href="https://www.riverbankcomputing.com/software/pyqt/intro">https://www.riverbankcomputing.com/software/pyqt/intro</a></td>
- </tr>
- <tr><td>urllib3</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>MIT</td>
- <td><a class="reference external" href="https://urllib3.readthedocs.io/">https://urllib3.readthedocs.io/</a></td>
- </tr>
- <tr><td>beautifulsoup4</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>MIT</td>
- <td><a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/">https://www.crummy.com/software/BeautifulSoup/</a></td>
- </tr>
- </tbody>
- </table>
- <p><strong>Optional</strong>:</p>
- <blockquote>
- <table border="1" class="docutils">
- <colgroup>
- <col width="10%" />
- <col width="12%" />
- <col width="12%" />
- <col width="24%" />
- <col width="42%" />
- </colgroup>
- <thead valign="bottom">
- <tr><th class="head">name</th>
- <th class="head">version</th>
- <th class="head">license</th>
- <th class="head">why</th>
- <th class="head">URL</th>
- </tr>
- </thead>
- <tbody valign="top">
- <tr><td>pysock</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>BSD</td>
- <td>Socks proxy support</td>
- <td><a class="reference external" href="https://github.com/Anorov/PySocks">https://github.com/Anorov/PySocks</a></td>
- </tr>
- <tr><td>pillow</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>BSD</td>
- <td>Thumbnail support</td>
- <td><a class="reference external" href="https://python-pillow.org">https://python-pillow.org</a></td>
- </tr>
- </tbody>
- </table>
- </blockquote>
- <p><strong>Building</strong>:</p>
- <blockquote>
- <table border="1" class="docutils">
- <colgroup>
- <col width="19%" />
- <col width="10%" />
- <col width="10%" />
- <col width="61%" />
- </colgroup>
- <thead valign="bottom">
- <tr><th class="head">name</th>
- <th class="head">version</th>
- <th class="head">license</th>
- <th class="head">URL</th>
- </tr>
- </thead>
- <tbody valign="top">
- <tr><td>gettext</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>GPL</td>
- <td><a class="reference external" href="https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</a></td>
- </tr>
- <tr><td>qt5-dev-tools</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>GPL3</td>
- <td><a class="reference external" href="https://www.riverbankcomputing.com/software/pyqt/intro">https://www.riverbankcomputing.com/software/pyqt/intro</a></td>
- </tr>
- </tbody>
- </table>
- </blockquote>
- <p><strong>Packaging</strong>:</p>
- <blockquote>
- <table border="1" class="docutils">
- <colgroup>
- <col width="24%" />
- <col width="13%" />
- <col width="13%" />
- <col width="51%" />
- </colgroup>
- <thead valign="bottom">
- <tr><th class="head">name</th>
- <th class="head">version</th>
- <th class="head">license</th>
- <th class="head">URL</th>
- </tr>
- </thead>
- <tbody valign="top">
- <tr><td>python-build</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>MIT</td>
- <td><a class="reference external" href="https://github.com/pypa/build">https://github.com/pypa/build</a></td>
- </tr>
- <tr><td>python-installer</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>MIT</td>
- <td><a class="reference external" href="https://github.com/pypa/installer">https://github.com/pypa/installer</a></td>
- </tr>
- <tr><td>python-wheel</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>MIT</td>
- <td><a class="reference external" href="https://pypi.python.org/pypi/wheel">https://pypi.python.org/pypi/wheel</a></td>
- </tr>
- <tr><td>python-setuptools</td>
- <td><ul class="first last simple">
- <li></li>
- </ul>
- </td>
- <td>PSF</td>
- <td><a class="reference external" href="https://pypi.org/project/setuptools/">https://pypi.org/project/setuptools/</a></td>
- </tr>
- </tbody>
- </table>
- </blockquote>
- </div>
- <div class="section" id="translations">
- <span id="about-translations"></span><h2><a class="reference internal" href="#about-translations">Translations</a></h2>
- <p>The default language is English.</p>
- <p>Since version <tt class="docutils literal">0.2</tt> Searx-Qt is able (application-wise, not search results)
- to be fully translated with the use of gettext and <cite>.po .pot</cite> files. However
- the only translation available currently is for the Dutch language. If you
- like to translate Searx-Qt in your language then you can find a example of how
- to do that in the <a class="reference internal" href="#development">development section</a>. Please consider
- opening a PR on <tt class="docutils literal"><span class="pre">https://notabug.org/CYBERDEViL/searx-qt</span></tt> after your
- translation has finished.</p>
- </div>
- <div class="section" id="contact">
- <span id="about-contact"></span><h2><a class="reference internal" href="#about-contact">Contact</a></h2>
- <p>Please open an issue on <tt class="docutils literal"><span class="pre">https://notabug.org/cyberdevil/searx-qt</span></tt>.</p>
- <p>You may also want to see if anyone is online on IRC at <tt class="docutils literal"><span class="pre">#searx-qt</span></tt> at
- <tt class="docutils literal">irc.libera.chat:6697</tt>.</p>
- </div>
- </div>
- <div class="section" id="getting-started-1">
- <span id="getting-started"></span><h1><a class="reference internal" href="#getting-started">Getting started</a></h1>
- <div class="section" id="install-dependencies">
- <span id="getting-started-install-dependencies"></span><h2><a class="reference internal" href="#getting-started-install-dependencies">Install dependencies</a></h2>
- <p><strong>Note:</strong> <tt class="docutils literal"><span class="pre">python-requests</span></tt> is also dependent on <tt class="docutils literal"><span class="pre">python-urllib3</span></tt> ;
- so <tt class="docutils literal"><span class="pre">python-urllib3</span></tt> will be installed with <tt class="docutils literal"><span class="pre">python-requests</span></tt>
- (No need to do a explicit install).</p>
- <div class="section" id="debian-ubuntu-based">
- <h3>Debian / Ubuntu based</h3>
- <p>Install required dependencies:</p>
- <pre class="literal-block">
- # apt update
- # apt upgrade
- # apt install python3 python3-requests python3-pyqt5 gettext \
- qtbase5-dev-tools python3-jsonschema python3-bs4 \
- python3-build python3-installer python3-wheel \
- python3-setuptools
- </pre>
- <p><strong>Optional</strong> for socks proxy support:</p>
- <pre class="literal-block">
- # apt install python3-socks
- </pre>
- <p><strong>Optional</strong> for thumbnail support:</p>
- <pre class="literal-block">
- # apt install python3-pillow
- </pre>
- </div>
- <div class="section" id="arch-based">
- <h3>Arch based</h3>
- <p>Install required dependencies:</p>
- <pre class="literal-block">
- # pacman -Syu python python-requests python-jsonschema python-pyqt5 \
- python-beautifulsoup4 python-build python-installer \
- python-wheel python-setuptools gettext qt5-tools
- </pre>
- <p><strong>Optional</strong> for socks proxy support:</p>
- <pre class="literal-block">
- # pacman -S python-pysocks
- </pre>
- <p><strong>Optional</strong> for thumbnail support:</p>
- <pre class="literal-block">
- # pacman -S python-pillow
- </pre>
- </div>
- </div>
- <div class="section" id="start-without-install-1">
- <span id="getting-started-start-without-install"></span><h2><a class="reference internal" href="#getting-started-start-without-install">Start without install</a></h2>
- <ol class="arabic">
- <li><p class="first">Creating a working directory and <tt class="docutils literal">cd</tt> in to it, you may
- change this to your own preference:</p>
- <pre class="literal-block">
- $ mkdir ~/git
- $ cd ~/git
- </pre>
- </li>
- <li><p class="first">Get the <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> source and <tt class="docutils literal">cd</tt> in to it:</p>
- <pre class="literal-block">
- $ git clone https://notabug.org/cyberdevil/searx-qt
- $ cd searx-qt
- </pre>
- </li>
- <li><p class="first">Compile locales and theme icons:</p>
- <pre class="literal-block">
- $ ./utils/locale_tool.sh -m all
- $ python3 ./utils/themes_tool.py make all
- </pre>
- </li>
- <li><p class="first">Copy <tt class="docutils literal"><span class="pre">searx-qt</span></tt> to current working directory:</p>
- <pre class="literal-block">
- $ cp bin/searx-qt ./
- </pre>
- </li>
- <li><p class="first">Run it :-):</p>
- <pre class="literal-block">
- $ ./searx-qt
- </pre>
- </li>
- </ol>
- </div>
- <div class="section" id="installation">
- <span id="getting-started-installation"></span><h2><a class="reference internal" href="#getting-started-installation">Installation</a></h2>
- <p>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 <tt class="docutils literal">setup.py</tt> directly if you
- know what you are doing.</p>
- <p>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.</p>
- <p><strong>Note:</strong> <a class="reference external" href="https://notabug.org/CYBERDEViL/searx-qt/releases">https://notabug.org/CYBERDEViL/searx-qt/releases</a></p>
- <p><strong>Note:</strong> noticed the <tt class="docutils literal">#</tt> or <tt class="docutils literal">$</tt> before every command? When there is a
- <tt class="docutils literal">$</tt> before the command, it should be run as a regular user. <tt class="docutils literal">#</tt> as root.</p>
- <div class="section" id="debian-based">
- <h3>Debian based</h3>
- <p>The steps below describes how to get a specific version of <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt>; then
- package and install it.</p>
- <ol class="arabic">
- <li><p class="first">Install some dependencies of this method:</p>
- <pre class="literal-block">
- # apt install git wget
- </pre>
- </li>
- <li><p class="first">Creating a working directory and <tt class="docutils literal">cd</tt> in to it, you may
- change this to your own preference:</p>
- <pre class="literal-block">
- $ mkdir ~/git
- $ cd ~/git
- </pre>
- </li>
- <li><p class="first">Cloning the repository and <tt class="docutils literal">cd</tt> in to it:</p>
- <pre class="literal-block">
- $ git clone "https://notabug.org/CYBERDEViL/searx-qt.git" "searx-qt"
- $ cd searx-qt
- </pre>
- </li>
- <li><p class="first">Checkout a specific version:</p>
- </li>
- </ol>
- <blockquote>
- <p><strong>Note:</strong> get a list with available tags (versions) with the
- <tt class="docutils literal">git tag</tt> command.</p>
- <p>Below is a example to checkout version <tt class="docutils literal"><span class="pre">0.6-alpha1</span></tt>:</p>
- <pre class="literal-block">
- $ git checkout 0.6-alpha1
- </pre>
- </blockquote>
- <ol class="arabic" start="5">
- <li><p class="first">Create .deb:</p>
- <pre class="literal-block">
- $ cd distro/debian/searx-qt-this
- $ ../makedeb.sh
- </pre>
- </li>
- <li><p class="first">Install the created package:</p>
- <pre class="literal-block">
- # dpkg -i python3-searx-qt_0.6-alpha1-1_all.deb
- </pre>
- </li>
- </ol>
- </div>
- <div class="section" id="arch-based-1">
- <h3>Arch based</h3>
- <p>For Arch based distributions there is a package available in the AUR;
- <a class="reference external" href="https://aur.archlinux.org/packages/searx-qt/">https://aur.archlinux.org/packages/searx-qt/</a></p>
- <ol class="arabic">
- <li><p class="first">Make sure you have <tt class="docutils literal">git</tt> installed:</p>
- <pre class="literal-block">
- # pacman -S git
- </pre>
- </li>
- <li><p class="first">Creating a working directory and <tt class="docutils literal">cd</tt> in to it, you may change this
- to your own preference:</p>
- <pre class="literal-block">
- $ mkdir ~/pkg
- $ cd ~/pkg
- </pre>
- </li>
- <li><p class="first">Getting the <tt class="docutils literal">PKGBUILD</tt> from Arch AUR:</p>
- <pre class="literal-block">
- $ git clone https://aur.archlinux.org/searx-qt.git
- $ cd searx-qt
- </pre>
- </li>
- <li><p class="first">Build and install Searx-Qt package:</p>
- <pre class="literal-block">
- $ makepkg -si
- </pre>
- </li>
- </ol>
- </div>
- </div>
- </div>
- <div class="section" id="usage-1">
- <span id="usage"></span><h1><a class="reference internal" href="#usage">Usage</a></h1>
- <div class="section" id="profiles">
- <span id="usage-profiles"></span><h2><a class="reference internal" href="#usage-profiles">Profiles</a></h2>
- <img alt="Profiles window" class="align-right" src="images/profiles_window.png" />
- <p>Profiles are useful when you want to have different settings and/or data without
- to having to set it manually every-time. For example you can create a profile
- named <cite>Tor</cite> which has different proxy and stats2 settings then you normal
- profile.</p>
- <dl class="docutils">
- <dt>There are two types of profiles:</dt>
- <dd><ul class="first last simple">
- <li><cite>Stats2</cite> profile</li>
- <li><cite>User</cite> profile</li>
- </ul>
- </dd>
- </dl>
- <p>The profile type names maybe changed to something better, suggestions are
- welcome.</p>
- <p>Create a <cite>Stats2</cite> profile if you wish to get/update a list of Searx-instances
- from a <cite>Searx-Stats2</cite> instance. For example the default <cite>https://searx.space</cite>.</p>
- <p>Create a <cite>User</cite> profile if you wish to add/remove/update your own list with
- Searx-instances.</p>
- <blockquote>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: Profile types cannot be changed after the creation of the profile,</div>
- <div class="line-block">
- <div class="line">but you can add multiple profiles of both types.</div>
- </div>
- </div>
- </blockquote>
- <div class="section" id="creating-new-profile">
- <h3>Creating new profile</h3>
- <p>On first usage of <cite>Searx-Qt</cite> you will need to create a new profile. The <cite>Add</cite>
- button (of the "Profile select" window) will open a dialog to do so.</p>
- <p>There are profile settings presets (Web, Tor, i2p) which you can choose from.
- The Tor preset sets the proxy to <tt class="docutils literal">127.0.0.1:9050</tt> and
- changes the Searx-Stats2 instance url to the onion address. The i2p preset
- sets the proxy to <tt class="docutils literal">127.0.0.1:4444</tt>, it also adds some known
- i2p instances of Searx.</p>
- <blockquote>
- <img alt="Create new profile dialog" src="images/profiles_new.png" />
- </blockquote>
- </div>
- <div class="section" id="deleting-a-profile">
- <h3>Deleting a profile</h3>
- <p>I hope that it is self explanatory that the <cite>Delete</cite> button of the
- "Profile select" window deletes the currently selected profile, it will ask
- for confirmation before doing so.</p>
- <p>It is not possible to delete a active profile (at-least it shouldn't ;-)).</p>
- </div>
- </div>
- <div class="section" id="settings">
- <span id="usage-settings"></span><h2><a class="reference internal" href="#usage-settings">Settings</a></h2>
- <div class="section" id="general">
- <span id="usage-settings-general"></span><h3><a class="reference internal" href="#usage-settings-general">General</a></h3>
- <img alt="images/settings_general.png" class="align-right" src="images/settings_general.png" />
- <div class="section" id="theme">
- <h4>Theme</h4>
- <p>A <tt class="docutils literal">Theme</tt> is a Searx-Qt specific <tt class="docutils literal">stylesheet</tt> and the <tt class="docutils literal">Base style</tt> is a
- Qt theme/style.</p>
- <p>The Searx-Qt specific <tt class="docutils literal">Theme</tt> does override the <tt class="docutils literal">Base style</tt>.</p>
- </div>
- <div class="section" id="cli-output-level">
- <h4>CLI output level</h4>
- <p>The amount of CLI spam can be set here.</p>
- <blockquote>
- <ul class="simple">
- <li><tt class="docutils literal">Info</tt> does print to <tt class="docutils literal">stdout</tt>.</li>
- <li><tt class="docutils literal">Warning</tt> does print to <tt class="docutils literal">stderr</tt>.</li>
- <li><tt class="docutils literal">Debug</tt> does print to <tt class="docutils literal">stderr</tt>.</li>
- <li><tt class="docutils literal">Errror</tt> does print to <tt class="docutils literal">stderr</tt>.</li>
- </ul>
- </blockquote>
- </div>
- <div class="section" id="custom-anchor-commands">
- <h4>Custom anchor commands</h4>
- <p>What happends when you click on a (hyperlink) anchor?
- Normal <tt class="docutils literal">QDesktopServices</tt> wil handle it, it will open the default
- application for the given <tt class="docutils literal">URL</tt>, default meaning what is set
- default in your desktop environment; like the default webbrowser or
- torrent client.</p>
- <p>Maybe you don't run a fancy desktop enviroment that sets those defaults
- or you wish to open a non default application for whatever reasons, then
- these settings are for you.</p>
- </div>
- </div>
- <div class="section" id="connection">
- <span id="usage-settings-connection"></span><h3><a class="reference internal" href="#usage-settings-connection">Connection</a></h3>
- <img alt="images/settings_connection.png" class="align-center" src="images/settings_connection.png" />
- <div class="section" id="verify-ssl">
- <h4>Verify (SSL)</h4>
- <p>Request will fail on a invalid SSL/TLS certificate.</p>
- <p>Leave checked if unsure.</p>
- <p>See
- <a class="reference external" href="https://requests.readthedocs.io/en/master/user/advanced/#ssl-cert-verification">https://requests.readthedocs.io/en/master/user/advanced/#ssl-cert-verification</a>
- for a more technical description.</p>
- </div>
- <div class="section" id="timeout">
- <h4>Timeout</h4>
- <p>Timeout in seconds for a single request.</p>
- <p>Leave it at the default value of 10 seconds if unsure.</p>
- <p>See <a class="reference external" href="https://requests.readthedocs.io/en/master/user/advanced/#timeouts">https://requests.readthedocs.io/en/master/user/advanced/#timeouts</a> for a
- more technical description.</p>
- </div>
- <div class="section" id="receive-limit">
- <h4>Receive limit</h4>
- <blockquote>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: Do not touch if you do not know what this is.</div>
- </div>
- </blockquote>
- <p>The maximum response content size of a request in Kilobytes.</p>
- </div>
- <div class="section" id="chunk-limit">
- <h4>Chunk limit</h4>
- <blockquote>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: Do not touch if you do not know what this is.</div>
- </div>
- </blockquote>
- <p>The maximum chunk size of a request in Kilobytes.</p>
- </div>
- <div class="section" id="proxy">
- <h4>Proxy</h4>
- <p>Here you can set a proxy that will be used for every connection Searx-Qt
- makes.</p>
- <p>The set proxy will apply to both <tt class="docutils literal">HTTP</tt> and <tt class="docutils literal">HTTPS</tt> requests.</p>
- <p>If you use a <tt class="docutils literal">socks4</tt> or <tt class="docutils literal">socks5</tt> 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.</p>
- </div>
- <div class="section" id="user-agents">
- <h4>User-agents</h4>
- <p>What user-agent string should Searx-Qt send?</p>
- <p>After pressing the <cite>Edit</cite> button it will change to a <cite>Save</cite> button, you will
- be able to edit the user-agent ?string(s) Searx-Qt will send. Some notes:</p>
- <ul class="simple">
- <li>One user-agent string per line.</li>
- <li>Set total blank to not send any user-agent string.</li>
- </ul>
- <p>When the <cite>Random</cite> checkbox is checked and there are multiple user-agent
- strings set then Searx-Qt will pick a random user-agent string from the list
- for every request.</p>
- </div>
- <div class="section" id="extra-headers">
- <h4>Extra headers</h4>
- <p>Excluding the <tt class="docutils literal"><span class="pre">User-Agent</span></tt> string, these are the headers <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> will
- send. As well the header key as the value should between double quotes ("),
- the key and the value should be separated by at least one space. <strong>Edit these
- only when you know what you are doing!</strong></p>
- </div>
- </div>
- <div class="section" id="searxng-1">
- <span id="usage-settings-searxng"></span><h3><a class="reference internal" href="#usage-settings-searxng">SearXNG</a></h3>
- <img alt="images/settings_searxng.png" class="align-right" src="images/settings_searxng.png" />
- <div class="section" id="parse-html">
- <h4>Parse HTML</h4>
- <p>When this is enabled <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> will request <tt class="docutils literal">HTML</tt> on search request and
- not make use of the <tt class="docutils literal">SearXNG</tt> <tt class="docutils literal"><span class="pre">JSON-API</span></tt>. The <tt class="docutils literal">HTML</tt> will be parsed and
- turned into a <tt class="docutils literal">JSON</tt> object, what will be processed as usual.</p>
- <p>This is enabled by default.</p>
- </div>
- <div class="section" id="safe-search">
- <h4>Safe Search</h4>
- <p>When this option is enabled it will simply send <tt class="docutils literal">safesearch: "1"</tt> with a
- search requests. It is whatever <tt class="docutils literal">SearXNG</tt> and the search engines it relies
- upon will do with it.</p>
- <p>It is assumed that NSFW results are left out (filtered-out). So when left
- unchecked NSFW content may be returned, and when checked there should be none
- (BUT NO GUARANTEE).</p>
- <p>This is disabled by default.</p>
- </div>
- </div>
- <div class="section" id="searx-space-1">
- <span id="usage-settings-searxspace"></span><h3><a class="reference internal" href="#usage-settings-searxspace">Searx-Space</a></h3>
- <p>Here you can change the URL of the Searx-Stats2 instance you like to use
- for fetching the instances data.</p>
- <blockquote>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: This is only available for a <cite>Stats2</cite> profile type.</div>
- </div>
- </blockquote>
- </div>
- <div class="section" id="guard">
- <span id="usage-settings-guard"></span><span id="usage-instances"></span><h3><a class="reference internal" href="#usage-settings-guard">Guard</a></h3>
- <p>Guard can put instances on a timeout or the blacklist when they are failing
- and is enabled by default.</p>
- <p>When the Guard rules are set properly, searches will be quicker over time
- since failing instances are not used anymore. This reduces the chance of
- requesting a search query to a instance that probably will fail again. Also
- some instances block our request for whatever reason they have, and there is
- no standard response so they all may (and many will) respond differently (Thus
- we can not properly detect when we may use the API and when not).</p>
- <blockquote>
- <ul class="simple">
- <li>It should be obvious that when <tt class="docutils literal">Enable guard</tt> is checked that Guard is enabled, when not checked Guard is disabled.</li>
- <li>When Guard is enabled it is advised to also enable the <tt class="docutils literal">Store log</tt> option so that old failures can be evaluated against new failures after Searx-Qt has been restarted.</li>
- <li>Below the <tt class="docutils literal">Store log</tt> option is a spinbox that defines for how long log entries will be stored (in days).</li>
- <li>A rule defines what a fail is and what should happen with the failing instance.</li>
- </ul>
- </blockquote>
- <img alt="images/settings_guard.png" class="align-right" src="images/settings_guard.png" />
- <div class="section" id="rules">
- <h4>Rules</h4>
- <p>A rule has the following variables:</p>
- <blockquote>
- <ul class="simple">
- <li><tt class="docutils literal">Error Type</tt>, the type of error.</li>
- <li><tt class="docutils literal">Amount</tt> of fails.</li>
- <li><tt class="docutils literal">Timeframe</tt> in which the <tt class="docutils literal">Amount</tt> of fails have to occur.</li>
- <li><tt class="docutils literal">Status</tt>, the HTTP response code. (Only used for the <tt class="docutils literal">WrongStatus</tt> <tt class="docutils literal">Error type</tt>).</li>
- <li><tt class="docutils literal">Destination</tt>, what should happen to the instance? Should Guard put it on
- the blacklist or on a timeout?</li>
- <li><tt class="docutils literal">Duration</tt> in minutes of the timeout. (Only used when <tt class="docutils literal">Destionation</tt> is set to <tt class="docutils literal">Timeout</tt>). When <tt class="docutils literal">Timeout</tt> is used as <tt class="docutils literal">Destination</tt> and this is set to <tt class="docutils literal">0</tt> minutes the instance will be on timeout until Searx-Qt
- has been restarted.</li>
- </ul>
- </blockquote>
- <p>When <tt class="docutils literal">Error type</tt>, <tt class="docutils literal">Amount</tt>, <tt class="docutils literal">Timeframe</tt> and <tt class="docutils literal">Status</tt> are met the rule
- will be triggered and the instance will be put on the <tt class="docutils literal">Destination</tt> for
- <tt class="docutils literal">Duration</tt> amount of time in minutes.</p>
- </div>
- <div class="section" id="log">
- <h4>Log</h4>
- <p>Here you can see failed search requests. Failed search requests will only
- be logged when Guard is enabled.</p>
- <p>It logs as little as possible. The following is logged:</p>
- <blockquote>
- <ul class="simple">
- <li>Date and time.</li>
- <li>Instance url.</li>
- <li>Error Type.</li>
- <li>HTTP status code.</li>
- <li>HTTP content/Error message (for debugging, may contain error message which
- is handy for debugging but also may contain SENSITIVE stuff!)</li>
- </ul>
- </blockquote>
- </div>
- </div>
- </div>
- <div class="section" id="instances">
- <h2><a class="reference internal" href="#usage-instances">Instances</a></h2>
- <img alt="images/instances.png" class="align-right" src="images/instances.png" />
- <p>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).</p>
- <p>The interface to manage instances is on the right.</p>
- <div class="section" id="with-stats2-profile-type">
- <h3>With <cite>Stats2</cite> profile type</h3>
- <p>When your profile is a <cite>Stats2</cite> type, the Searx-instances will be fetched
- from <tt class="docutils literal"><span class="pre">https://searx.space/data/instances.json</span></tt> (or any other set in the
- settings by your preference). The <tt class="docutils literal">instances.json</tt> from <tt class="docutils literal">search.space</tt>
- also contains a lot of other data about the instances it lists (which we can
- use to filter instances based on our preferences).</p>
- <p>When 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!</p>
- <p>It maybe useful to update the instances data so now and then since public
- instances appear, disappear and their stats change over time.</p>
- </div>
- <div class="section" id="with-user-profile-type">
- <h3>With <cite>User</cite> profile type</h3>
- <p>If your profile is a <cite>User</cite> type you will have to add addresses of instances
- manually.</p>
- <p>This can be done by pressing the <cite>Add instance</cite> button right above
- the instances table, a dialog will pop-up asking for the address to add
- (without scheme).</p>
- <p>The scheme (<a class="reference external" href="http://">http://</a> or <a class="reference external" href="https://">https://</a>) can be selected from the combobox.</p>
- <p>There is also a "Update data on add" checkbox, when this is checked
- and <cite>Add</cite> is pressed it will automatically download data from
- <cite>http(s)://your-address/config</cite>. Downloading/updating this data may also be
- done later by right clicking on a (or multiple) Searx-instances in the table
- and pressing <cite>Update selected</cite> from the context-menu that has popped-up.</p>
- </div>
- <div class="section" id="instances-table">
- <span id="usage-instances-table"></span><h3>Instances table</h3>
- <p>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.</p>
- <p>The currently used instance should also be visible bottom right in the
- application it's status-bar.</p>
- <p>Right-clicking in the table opens a context-menu from where you can do
- the following:</p>
- <ul class="simple">
- <li>Whitelist/blacklist selected instance(s).</li>
- <li>Temporary blacklist.</li>
- <li>Copy any column(s) of the selected instance(s) to the clipboard.</li>
- <li>Copy JSON data of the selected instance(s) to the clipboard.</li>
- <li>Select All instances (CTRL+A should do the same).</li>
- <li>Hide or show columns.</li>
- </ul>
- <p>If your profile is a <cite>User</cite> profile the context-menu will have the
- following extra actions:</p>
- <ul class="simple">
- <li>Remove selected instance(s).</li>
- <li>Update selected instance(s).</li>
- </ul>
- </div>
- <div class="section" id="filter-instances">
- <h3>Filter instances</h3>
- <p>When a filter is enabled and the instance it's value that is being
- matched is unknown then it is excluded by default!</p>
- <div class="section" id="network">
- <h4>Network</h4>
- <p>Filter instances on network type. Only instances that match one of the
- checked network types remain.</p>
- </div>
- <div class="section" id="require-asn-privacy">
- <h4>Require ASN privacy</h4>
- <p>Excludes instances that run their server at a known malicious network.
- Like for example CloudFlare, Google, Akamai etc..</p>
- <p>This does not give any guarantee, it only filters <strong>known</strong> privacy
- violators!</p>
- <p>For a full list of known malicious networks (technical):
- <a class="reference external" href="https://github.com/dalf/searx-stats2/blob/master/searxstats/data/asn.py">https://github.com/dalf/searx-stats2/blob/master/searxstats/data/asn.py</a></p>
- </div>
- <div class="section" id="require-ipv6">
- <h4>Require IPv6</h4>
- <p>Exclude instances that don't have at least one IPv6 address.</p>
- </div>
- <div class="section" id="version">
- <h4>Version</h4>
- <p>This has multiple options to filter on Searx/SearXNG versions strings. Both
- semantic versions and date versions are supported.</p>
- <blockquote>
- <ul class="simple">
- <li>[<tt class="docutils literal">Minimum</tt>]
- Include only instances with versions of the set minimum version or higher.</li>
- <li>[<tt class="docutils literal">Invalid</tt>]
- Include instances with a invalid version string.</li>
- <li>[<tt class="docutils literal">Development</tt>]
- Include development versions (git versions).</li>
- <li><ul class="first">
- <li>[<tt class="docutils literal">Dirty</tt>]
- Include SearXNG development versions with uncommited changes.</li>
- </ul>
- </li>
- <li><ul class="first">
- <li>[<tt class="docutils literal">Extra</tt>]
- Include versions with the 'extra' addition, I don't know what this is; so
- TODO.</li>
- </ul>
- </li>
- <li><ul class="first">
- <li>[<tt class="docutils literal">Unknown</tt>]
- Include Searx development versions with unknown changes.</li>
- </ul>
- </li>
- </ul>
- </blockquote>
- </div>
- <div class="section" id="blacklist">
- <h4>Blacklist</h4>
- <p>Here are the URLs of the instances that have been blacklisted, either manually
- or automatically by Guard (when enabled).</p>
- <p>There is a button right to each blacklist item to remove it from the
- blacklist.</p>
- <p>Hovering the remove button or the url of a blacklist item will show a tooltip
- with some more info.</p>
- <p>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.</p>
- <p>Blacklisted instances will be excluded from the table by default.</p>
- </div>
- <div class="section" id="whitelist">
- <h4>Whitelist</h4>
- <p>Here are the URLs of the instances that have been manually whitelisted.
- There is a button right to each whitelist item to remove it from the
- whitelist.</p>
- <p>You can manually whitelist a instance by right clicking on a instance in
- the instances table and click 'Add to whitelist'; multiple instances can
- be whitelisted at once.</p>
- <p>Whitelisted instances will be in the table by default except when they are on
- the timeout list.</p>
- </div>
- <div class="section" id="timeout-1">
- <h4>Timeout</h4>
- <p>This is a temporary blacklist. Instances manually put on a timeout will stay
- here until Searx-Qt is restarted. When Guard is enabled it also may put
- instances here depending on the set rules, those may persist after Searx-Qt is
- restarted depending on the rule(s).</p>
- <p>Hovering the remove button or the url of a timeout item will show a tooltip
- with some more info.</p>
- </div>
- </div>
- </div>
- <div class="section" id="search">
- <span id="usage-search"></span><h2><a class="reference internal" href="#usage-search">Search</a></h2>
- <div class="section" id="search-bar">
- <span id="usage-search-bar"></span><h3>Search bar</h3>
- <img alt="images/search_bar.png" src="images/search_bar.png" />
- <div class="section" id="fallback">
- <span id="usage-search-bar-fallback"></span><h4>Fallback</h4>
- <p>When 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).</p>
- <p>What is fail?</p>
- <ul class="simple">
- <li>Connection errors including timeout.</li>
- <li>Wrong status code (not 200).</li>
- <li>No (usefull) or malformed results returned.</li>
- </ul>
- </div>
- <div class="section" id="random-every">
- <span id="usage-search-random-every"></span><h4>Random every</h4>
- <p>When 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.</p>
- <p>When 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.</p>
- </div>
- <div class="section" id="random-search-button">
- <span id="usage-search-bar-random-search-button"></span><h4>Random search button</h4>
- <p>When pressed it will pick a random instance from the list and preform the
- search request.</p>
- </div>
- <div class="section" id="reload-button">
- <span id="usage-search-bar-reload-button"></span><h4>Reload button</h4>
- <p>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.</p>
- <p>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.</p>
- <p>Dev-note: Probably this behavior should change or the name/icon should
- change to something more fitting.</p>
- </div>
- <div class="section" id="search-button">
- <span id="usage-search-bar-search-button"></span><h4>Search button</h4>
- <p>Preform a search request on the currently selected instance.</p>
- <p>Page number is reset, 'Fallback' and 'Random Every' options are honored.</p>
- </div>
- <div class="section" id="search-query-input">
- <span id="usage-search-bar-search-query-input"></span><h4>Search query input</h4>
- <p>The query you like to search for.</p>
- <p>See <a class="reference external" href="https://searx.github.io/searx/user/search_syntax.html">https://searx.github.io/searx/user/search_syntax.html</a> for what is
- possible.</p>
- <p>It will do a search request on <tt class="docutils literal">enter</tt> key pressed, same behavior as
- when the 'Search button' has been pressed.</p>
- </div>
- </div>
- <div class="section" id="search-options">
- <span id="usage-search-options"></span><h3>Search options</h3>
- <img alt="Search options bar" src="images/search_options.png" />
- <p><strong>NOTE</strong>: 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 as shown in the image below.</p>
- <img alt="Search options context menu" class="align-right" src="images/search_options_rmb.png" />
- <p><strong>NOTE</strong>: Left-click (mouse) on the <tt class="docutils literal">Categories</tt> or <tt class="docutils literal">Engines</tt> label will
- toggle the label collapsed/expanded state, to be able to reduce the height
- when multiple options are selected.</p>
- <p><strong>NOTE</strong>: Right-click (mouse) on <tt class="docutils literal">Categories</tt> or <tt class="docutils literal">Engines</tt> label will open
- a context menu with a option to uncheck all for convenience.</p>
- <div class="section" id="categories">
- <span id="usage-search-options-categories"></span><h4>Categories</h4>
- <img alt="Categories menu" class="align-right" src="images/categories_menu.png" />
- <p>A category is basically a collection of engines. When a category gets checked
- then all the engines it represents will also be checked which in turn will
- filter out all Searx-instances that don't have at least one of the checked
- engines enabled.</p>
- <p>Multiple categories may be selected.</p>
- <p>The default (non-editable) categories will be compiled from categories listed
- in engines. Besides default categories there is also a option to create custom
- categories.</p>
- <img alt="Custom categories window" src="images/custom_categories.png" />
- </div>
- <div class="section" id="engines">
- <span id="usage-search-options-engines"></span><h4>Engines</h4>
- <p>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 <cite>enabled_engines</cite>
- param. You should only get results from engines that are checked.</p>
- <p>If no engine is checked it means that it may return results of any engine
- in the list.</p>
- <p>The list with engines is created with data from the
- <a class="reference internal" href="#usage-instances-table">instances table</a>, so only engines are listed that
- are available from the instances table.</p>
- </div>
- <div class="section" id="period">
- <span id="usage-search-options-period"></span><h4>Period</h4>
- <p>Search period you like results from. Options are <tt class="docutils literal">Last day</tt>,
- <tt class="docutils literal">Last week</tt>, <tt class="docutils literal">Last month</tt> or <tt class="docutils literal">Last year</tt>.</p>
- </div>
- <div class="section" id="language">
- <span id="usage-search-options-language"></span><h4>Language</h4>
- <p>If you want results in a specific language than you can select one here. The
- set language will persist on restart.</p>
- <p>Since Searx-Qt 0.3 there is a option to mark languages a favorites. Favorites
- will appear on the top of the combobox list so you won't have to scroll.</p>
- <p>Adding a language to favorite can be done by hovering the language and
- pressing the spacebar on your keyboard. Removing a favorite works the same,
- hover the favorite language and press the spacebar on your keyboard.</p>
- <blockquote>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: Not all engines have language support and not all engines </div>
- <div class="line-block">
- <div class="line">honor the requested language. Searx-qt does not (yet?) act on </div>
- <div class="line">this.</div>
- </div>
- </div>
- <div class="line-block">
- <div class="line"><strong>NOTE</strong>: When <tt class="docutils literal">Default language</tt> is set that means the default language</div>
- <div class="line-block">
- <div class="line">of the instance.</div>
- </div>
- </div>
- </blockquote>
- </div>
- </div>
- <div class="section" id="search-results">
- <h3>Search results</h3>
- <div class="section" id="find-text-in-results">
- <h4>Find text in results</h4>
- <p>The find widget to search text inside the results can be opened/focused by the
- keyboard shortcut <tt class="docutils literal">Ctrl + F</tt>.</p>
- <p>Shortcuts that may be used while the find text input is activated:</p>
- <blockquote>
- <ul class="simple">
- <li><tt class="docutils literal">Return</tt> to find the next match.</li>
- <li><tt class="docutils literal">Shift + Return</tt> to find the previous match.</li>
- <li><tt class="docutils literal">Escape</tt> to close.</li>
- </ul>
- </blockquote>
- </div>
- </div>
- </div>
- </div>
- <div class="section" id="troubleshooting-1">
- <span id="troubleshooting"></span><h1><a class="reference internal" href="#troubleshooting">Troubleshooting</a></h1>
- <div class="section" id="searx-qt-won-t-start">
- <span id="troubleshooting-wontstart"></span><h2><a class="reference internal" href="#troubleshooting-wontstart">Searx-Qt won't start</a></h2>
- <p>When <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> fails to start the first thing you should try is to run it on
- the <tt class="docutils literal">CLI</tt> and see if there are any error messages.</p>
- <p>When you just updated to a newer version of <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> it can happen that the
- stored profile data is not compatible. <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> should be aware of this and
- notify you when this happend but this is NOT the case yet. So one thing you can
- try is to delete the local <tt class="docutils literal"><span class="pre">Searx-Qt</span></tt> config (usually in
- <tt class="docutils literal"><span class="pre">~/.config/CYBERDEViL/searx-qt/</span></tt>). Sorry for losing your previous config,
- this is still <tt class="docutils literal">TODO</tt>, patches are welcome.</p>
- </div>
- </div>
- <div class="section" id="development-1">
- <span id="development"></span><h1><a class="reference internal" href="#development">Development</a></h1>
- <p><strong>NOTE</strong>: Make sure you are in the Searx-Qt source root (where utils/,
- locales/, searxqt/ etc.. are).</p>
- <p><strong>NOTE</strong>: To run Searx-Qt without need to install:</p>
- <pre class="literal-block">
- # Copy the executable from ./bin to cwd (searx-qt source root)
- cp bin/searx-qt ./
- # Start
- ./searx-qt
- </pre>
- <div class="section" id="themes">
- <span id="development-themes"></span><h2><a class="reference internal" href="#development-themes">Themes</a></h2>
- <div class="section" id="create-new-theme">
- <h3>Create new theme</h3>
- <p>A theme consists of icons, application css and search result/fail css.</p>
- <p>Simple example to create a new theme from the default theme:</p>
- <p><strong>NOTE</strong>: Replace <tt class="docutils literal">your_theme</tt> with the name of your new theme.</p>
- <p><strong>NOTE</strong>: For this example you should know basic CSS.</p>
- <ol class="arabic">
- <li><p class="first">Setup structure for new theme.</p>
- <blockquote>
- <pre class="code literal-block">
- cp -r ./themes/default/ ./themes/your_theme/
- </pre>
- </blockquote>
- </li>
- <li><p class="first">Edit the application style <tt class="docutils literal">./themes/your_theme/style.css</tt>.</p>
- </li>
- <li><p class="first">Edit the css used for failed search result message <tt class="docutils literal">./themes/your_theme/html_fail.css</tt>.</p>
- </li>
- <li><p class="first">Edit the css used for search results <tt class="docutils literal">./themes/your_theme/html_results.css</tt></p>
- </li>
- <li><p class="first">Edit the icons (don't change their size) <tt class="docutils literal"><span class="pre">./themes/your_theme/icons/*.png</span></tt></p>
- </li>
- <li><p class="first">Open <tt class="docutils literal">./themes/your_theme/manifest.json</tt> and change the <tt class="docutils literal">name</tt> variable to the pretty name of your new theme.</p>
- </li>
- <li><p class="first">See if your theme is listed, when not there is a error:</p>
- <pre class="literal-block">
- python ./utils/themes_tool.py list
- </pre>
- </li>
- <li><p class="first">Compile the theme:</p>
- <pre class="literal-block">
- python ./utils/themes_tool.py make your_theme
- </pre>
- </li>
- <li><p class="first">Open Searx-Qt, go to settings, change to your new theme (it should be listed, else there is an error) and test it:</p>
- <pre class="literal-block">
- ./searx-qt
- </pre>
- </li>
- <li><p class="first">Done? :-)</p>
- </li>
- </ol>
- </div>
- </div>
- <div class="section" id="translations-1">
- <span id="development-translations"></span><h2><a class="reference internal" href="#development-translations">Translations</a></h2>
- <p>Searx-Qt will try to find a translation for your system locale and use that
- when found.</p>
- <p>To test translations the system locale should be installed for that language,
- it doesn't have to be set for testing since we can easly override the <tt class="docutils literal">LANG</tt>
- environment variable before executing Searx-Qt.</p>
- <p><strong>NOTE</strong>: The examples below are for a Dutch language translation, you
- should replace <tt class="docutils literal">nl_NL</tt> with the i18n locale ID of the language you whish to
- translate.</p>
- <div class="section" id="create-new-translation">
- <h3>Create new translation</h3>
- <ol class="arabic">
- <li><p class="first">Setup structure for new language:</p>
- <pre class="literal-block">
- # Update the searx-qt.pot template file.
- ./utils/locale_tool.sh -c
- # Create directory structure.
- mkdir -p ./locales/nl_NL/LC_MESSAGES/
- # Copy the template file to our new directory.
- cp ./locales/searx-qt.pot ./locales/nl_NL/LC_MESSAGES/searx-qt.po
- # Check if our new language is found. It should be listed.
- ./utils/locale_tool.sh --list
- </pre>
- </li>
- <li><p class="first">Start working on the translation.</p>
- <p>You can edit the <tt class="docutils literal"><span class="pre">./locales/nl_NL/LC_MESSAGES/searx-qt.po</span></tt> file with a
- text editor or a special editor for translations (that can handle <tt class="docutils literal">.po</tt>
- files like for example Poedit).</p>
- </li>
- <li><p class="first">Compile the translation:</p>
- <pre class="literal-block">
- ./utils/locale_tool.sh -m nl_NL
- </pre>
- </li>
- <li><p class="first">Test the translation:</p>
- <pre class="literal-block">
- # Note: overriding XDG_DATA_HOME only for debugging translations! Themes
- # will not work.
- XDG_DATA_HOME="$(pwd -P)/" LC_ALL=nl_NL.UTF-8 ./searx-qt
- </pre>
- </li>
- </ol>
- </div>
- <div class="section" id="update-existing-translation">
- <h3>Update existing translation</h3>
- <ol class="arabic">
- <li><p class="first">Update files:</p>
- <pre class="literal-block">
- # Update the .pot template file.
- ./utils/locale_tool.sh -c
- # Update the translation it's .po file
- ./utils/locale_tool.sh -u nl_NL
- </pre>
- </li>
- <li><p class="first">Edit the translation:</p>
- <p>You can edit the <tt class="docutils literal"><span class="pre">./locales/nl_NL/LC_MESSAGES/searx-qt.po</span></tt> file with a
- text editor or a special editor for translations (that can handle <tt class="docutils literal">.po</tt>
- files like for example Poedit).</p>
- </li>
- <li><p class="first">Compile the translation:</p>
- <pre class="literal-block">
- ./utils/locale_tool.sh -m nl_NL
- </pre>
- </li>
- <li><p class="first">Test the translation:</p>
- <pre class="literal-block">
- # Note: overriding XDG_DATA_HOME only for debugging translations! Themes
- # will not work.
- XDG_DATA_HOME="$(pwd -P)/" LC_ALL=nl_NL.UTF-8 ./searx-qt
- </pre>
- </li>
- </ol>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>
|