]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blob - doc/index.docbook
Add the handbook.
[PrivacyBrowserPC.git] / doc / index.docbook
1 <?xml version="1.0" ?>
2
3 <!--
4   Copyright 2023 Soren Stoutner <soren@stoutner.com>.
5
6   This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
7
8   Permission is granted to copy, distribute and/or modify this document
9   under the terms of the GNU Free Documentation License, Version 1.3
10   or any later version published by the Free Software Foundation;
11   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
12
13   You should have received a copy of the GNU Free Documentation License
14   along with Privacy Browser PC.  If not, see <http://www.gnu.org/licenses/>. -->
15
16 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
17   <!-- Privacy Browser’s name -->
18   <!ENTITY privacybrowser "<application>Privacy Browser</application>">
19
20   <!-- People. -->
21   <!ENTITY Soren.Stoutner "<personname><firstname>Soren</firstname><surname>Stoutner</surname></personname>">
22   <!ENTITY Soren.Stoutner.mail "<email>soren@stoutner.com</email>">
23
24   <!-- Set the language of this documentation. -->
25   <!ENTITY % English "INCLUDE">
26
27   <!-- Default entries.  May not be needed. -->
28   <!ENTITY i18n-translatable-entity "<application>Translatable Entity</application>">
29   <!ENTITY % addindex "IGNORE">
30 ]>
31
32 <book id="privacybrowser" lang="&language;">
33   <bookinfo>
34     <title>The &privacybrowser; Handbook</title>
35
36     <authorgroup>
37       <author>&Soren.Stoutner; &Soren.Stoutner.mail;</author>
38
39       <!-- Add translators here.  TRANS:ROLES_OF_TRANSLATORS -->
40     </authorgroup>
41
42     <copyright>
43       <year>2016-2017, 2021-2023</year>
44       <holder>&Soren.Stoutner;</holder>
45     </copyright>
46
47     <!-- Documentation license. -->
48     <legalnotice>&FDLNotice;</legalnotice>
49
50     <!-- Last update. -->
51     <date>2023-02-22</date>
52
53     <!-- The version of Privacy Browser this documentation is written for. -->
54     <releaseinfo>&privacybrowser; version 0.1</releaseinfo>
55
56
57     <!-- Abstract about this handbook -->
58     <abstract>
59       <para>
60         &privacybrowser; is a web browser that respects your privacy.
61       </para>
62     </abstract>
63
64     <!-- This is a set of Keywords for indexing by search engines. -->
65     <keywordset>
66       <keyword>KDE</keyword>
67       <keyword>privacy</keyword>
68       <keyword>browser</keyword>
69     </keywordset>
70   </bookinfo>
71
72   <!-- Introduction. -->
73   <chapter id="introduction">
74     <title>Introduction</title>
75
76     <para>
77       &privacybrowser; is currently in an early alpha state.
78       Most of the features are not yet implemented, but I thought it would be useful to publish it so that users can track the progress and submit feedback.
79     </para>
80
81     <para>
82       To distinguish between the Android and the PC version, the website, issue tracker,
83       and code base refer to this version as <ulink url="https://www.stoutner.com/privacy-browser-pc/">Privacy Browser PC</ulink>.
84     </para>
85
86     <para>
87       The best place to discuss the development of Privacy Browser is <ulink url="https://redmine.stoutner.com/projects/privacy-browser-pc/boards">on the forum</ulink>.
88       I also frequently post on my <ulink url="https://fosstodon.org/@privacybrowser">Mastodon account</ulink> regarding the development status.
89     </para>
90
91     <!-- Qt WebEngine. -->
92     <sect1 id="qt-webengine">
93       <title>Qt WebEngine</title>
94
95       <para>
96         Privacy Browser uses <ulink url="https://doc.qt.io/qt-5/qtwebengine-index.html">Qt WebEngine</ulink> to render websites.
97         Qt WebEngine is based on the <ulink url="https://www.chromium.org/blink/">Chromium Blink</ulink> source code.
98         Because Privacy Browser is built on the <ulink url="https://api.kde.org/frameworks/index.html">KDE Framework</ulink>,
99         it currently uses the <ulink url="https://community.kde.org/Schedules/Plasma_6">Qt 5</ulink> packages.
100       </para>
101
102       <para>
103         The current Qt 5 packages are in long-term support mode.
104         From a feature perspective, Qt WebEngine 5.15.x is based on <ulink url="https://wiki.qt.io/QtWebEngine/ChromiumVersions">Chromium 87.0.4280.144</ulink>.
105         Security fixes are backported every few months with <ulink url="https://wiki.qt.io/Qt_5.15_Release#Release_Plan">each release</ulink>.
106       </para>
107     </sect1>
108
109     <!-- Bugs and missing features. -->
110     <sect1 id="bugs-and-missing-features">
111       <title>Bugs and Missing Features</title>
112
113       <para>
114         There is a list of feature requests and known bugs at <ulink url="https://redmine.stoutner.com/projects/privacy-browser-pc/issues">redmine.stoutner.com</ulink>.
115         Users should anticipate that all the current features of <ulink url="https://www.stoutner.com/privacy-browser-android/">Privacy Browser Android</ulink>
116         will also be implemented in Privacy Browser PC.
117         There is no need at this point to create features requests for these as they will be added as I start working on each feature and have a better idea of how they will be implemented.
118         However, each feature that has already been implemented should be bug free.
119         If you discover a bug that is not already documented at <ulink url="https://redmine.stoutner.com/projects/privacy-browser-pc/issues">redmine.stoutner.com</ulink> please add it.
120       </para>
121
122       <para>
123         Below is a list of known prominent bugs or missing features in this alpha release.
124       </para>
125
126       <itemizedlist>
127         <listitem><para>The page zoom is <ulink url="https://redmine.stoutner.com/issues/799">momentarily reset</ulink> every time a new URL is loaded.</para></listitem>
128         <listitem><para>If domain settings change the user agent, loading of the new URL is interrupted and the
129           <ulink url="https://redmine.stoutner.com/issues/821">previous site is reloaded</ulink>.</para></listitem>
130         <listitem><para>Browser <ulink url="https://redmine.stoutner.com/issues/831">error messages are not displayed</ulink> unless JavaScript is enabled.</para></listitem>
131         <listitem><para>Bookmarks are <ulink url="https://redmine.stoutner.com/issues/968">not yet implemented</ulink>.</para></listitem>
132         <listitem><para>Blocklists are <ulink url="https://redmine.stoutner.com/issues/969">not yet implemented</ulink>.</para></listitem>
133       </itemizedlist>
134     </sect1>
135   </chapter>
136
137   <!-- Using Privacy Browser. -->
138   <chapter id="using-privacy-browser">
139     <title>Using &privacybrowser;</title>
140
141     <para>
142       <mediaobject>
143         <imageobject>
144           <imagedata fileref="privacybrowser.png" format="PNG"/>
145         </imageobject>
146         <textobject>
147           <phrase>Screenshot</phrase>
148         </textobject>
149       </mediaobject>
150     </para>
151
152     <!-- JavaScript. -->
153     <sect1 id="javascript">
154       <title>JavaScript</title>
155
156       <para>
157         JavaScript allows web pages to run scripts (programs) on your device. It allows web pages to function more like apps, but it also allows web pages to spy on you.
158         Most of the tracking on the internet does not work when JavaScript is disabled.
159         JavaScript can be toggled by clicking on the privacy shield, which is blue if JavaScript is disabled and red when it is enabled.
160         <inlinemediaobject>
161           <imageobject>
162             <imagedata fileref="javascript.png" format="PNG"/>
163           </imageobject>
164           <textobject>
165             <phrase>JavaScript</phrase>
166           </textobject>
167         </inlinemediaobject>
168       </para>
169     </sect1>
170
171     <!-- Local Storage. -->
172     <sect1 id="local-storage">
173       <title>Local Storage</title>
174
175       <para>
176         <ulink url="https://doc.qt.io/qt-5/qwebenginecookiestore.html#setCookieFilter">Local storage</ulink>
177         in Privacy Browser encompasses cookies, DOM storage, IndexedDB, service workers, and the filesystem API.
178         Local storage can be toggled through an action on the toolbar.
179       </para>
180
181       <!-- Cookies. -->
182       <sect2 id="cookies">
183         <title>Cookies</title>
184
185         <para>
186           <ulink url="https://en.wikipedia.org/wiki/HTTP_cookie">Cookies</ulink>
187           allow websites to store small pieces of information for a specific host that are sent in the HTTP header every time the browser connects to that host.
188           Privacy Browser allows a maximum of <ulink url="http://browsercookielimits.iain.guru/">180 cookies with a maximum size of 4096 bytes per cookie</ulink> to be set per domain.
189           Cookies are often used to track users across the web, particularly third-party cookies (which are completely blocked in Privacy Browser).
190           They are also used as a security mechanism on websites where you log in to identify it is you as you browse from page to page on a site.
191         </para>
192
193         <para>
194           <mediaobject>
195             <imageobject>
196               <imagedata fileref="cookies.png" format="PNG"/>
197             </imageobject>
198             <textobject>
199               <phrase>Cookies</phrase>
200             </textobject>
201           </mediaobject>
202         </para>
203
204         <para>
205           The cookies dialog is opened from <xref linkend="settings-cookies"/>.
206           Durable cookies are shared with all tabs that are opened after they are made durable and are preserved even when Privacy Browser is restarted.
207           This allows users to stay logged in to sites of their choosing. No cookies are durable by default. Making a cookie durable requires specific user interaction.
208         </para>
209
210         <para>
211           All other cookies are specific to the tab where they are created and are destroyed when the tab is closed.
212         </para>
213       </sect2>
214
215       <!-- DOM storage. -->
216       <sect2 id="dom-storage">
217         <title>DOM storage</title>
218
219         <para>
220           <ulink url="https://en.wikipedia.org/wiki/Web_storage">DOM (Document Object Model) storage</ulink>, also knows as web storage, allows web pages to store information on a client device.
221           The storage capacity is larger than for cookies and the data is not automatically sent in the headers with every HTTP request.
222           In Privacy Browser, each website is allowed to store a <ulink url="https://arty.name/localstorage.html">5 MB of data</ulink> in DOM storage.
223           DOM storage requires JavaScript to function, and, in addition, requires an extra toggle to be enabled.
224           In Privacy Browser, DOM storage is limited to the tab where it is created and is destroyed when the tab is closed.
225         </para>
226       </sect2>
227
228       <!-- IndexedDB. -->
229       <sect2 id="indexeddb">
230         <title>IndexedDB</title>
231
232         <para>
233           <ulink url="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API">IndexedDB</ulink>
234           provides web pages with a local database where they can store â€śsignificant amounts of structured data”.
235           There is disagreement on the internet about the maximum size of an IndexedDB database, probably because the various rendering engines keep changing their mind.
236           But it is usually listed at somewhere between 20% and 80% of <emphasis>your entire hard drive</emphasis> with each individual domain limited to some segment of that.
237           IndexedDB requires JavaScript to function.
238           In Privacy Browser, this database is limited to the tab where it is created and is destroyed when the tab is closed.
239         </para>
240       </sect2>
241
242       <!-- Service Workers. -->
243       <sect2 id="service-workers">
244         <title>Service Workers</title>
245
246         <para>
247           <ulink url="https://developer.chrome.com/docs/workbox/service-worker-overview/">Service workers</ulink> are offline JavaScript proxies of a website. They have their own cache that is usually hidden and hard to clear.
248           They were designed by people who want the web browser to become the operating system and run full â€śapps”.
249           In Privacy Browser, service workers are limited to the tab where they are created and are destroyed when the tab is closed.
250         </para>
251       </sect2>
252
253       <!-- Filesystem API. -->
254       <sect2 id="filesystem-api">
255         <title>Filesystem API</title>
256
257         <para>
258           The <ulink url="https://developer.chrome.com/articles/file-system-access/">filesystem API</ulink> grants the browser direct access to the files on your system.
259           Like service workers, the filesystem API is a summarily bad idea thought up by those who want the browser to become an operating system.
260           Even when JavaScript and local storage are enabled, the filesystem API does not work in Privacy Browser.
261         </para>
262       </sect2>
263     </sect1>
264
265     <!-- User Agent. -->
266     <sect1 id="user-agent">
267       <title>User Agent</title>
268
269       <para>
270         The user agent is a text string that is sent as part of every HTTP header that identifies the browser to the web server.
271         Privacy Browser's default user agent is <code>PrivacyBrowser/1.0</code>.
272         Qt WebEngine 5.15.12’s default user agent is <code>Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.12 Chrome/87.0.4280.144 Safari/537.36</code>.
273       </para>
274
275       <para>
276         Over the years user agents have become quite lengthy,
277         partially because they tend to include a <ulink url="https://webaim.org/blog/user-agent-string-history/">brief history of the internet</ulink>.
278         In the modern world they serve almost no good purpose, but some web developers still think they need them so they can send different version of their website to different browsers.
279         Some servers <ulink url="https://www.stoutner.com/user-agent-problems/">refuse to function correctly</ulink> if they don't like the user agent that is sent.
280       </para>
281
282       <para>
283         At some point in the future Privacy Browser will send no user agent by default.
284         Not only is that currently impossible because the Qt WebEngine doesn't allow you to not send a user agent (I will probably have to fork it to enable that functionality),
285         but even web servers that don't care what the user agent is often refuse to send an answer if there is no user agent at all.
286         Getting rid of this relic of the internet is going to take some time and a retraining of common expectations.
287       </para>
288     </sect1>
289
290     <!-- Domain Settings. -->
291     <sect1 id="domain-settings">
292       <title>Domain Settings</title>
293
294       <para>
295         Domain setting make it easy to automatically change JavaScript, local storage, user agent, and other settings when the domain changes.
296         Domain settings for the current domain can be accessed through the domain settings button at the far right of the URL line edit.
297         Domain settings for all domains can be accessed through <xref linkend="settings-domain-settings"/>. When domain settings are active, the URL line edit will have a green background.
298       </para>
299     </sect1>
300   </chapter>
301
302   <!-- Commands. -->
303   <chapter id="commands">
304     <title>Command Reference</title>
305
306     <!-- Main Window. -->
307     <sect1 id="main-window">
308       <title>Main Window</title>
309
310       <!-- File. -->
311       <sect2>
312         <title>File</title>
313
314         <variablelist>
315           <!-- New Tab. -->
316           <varlistentry id="file-new-tab">
317             <term>
318               <menuchoice>
319                 <shortcut>
320                   <keycombo action="simul">&Ctrl;<keycap>T</keycap></keycombo>
321                 </shortcut>
322                 <guimenu>File</guimenu>
323                 <guimenuitem>New Tab</guimenuitem>
324               </menuchoice>
325             </term>
326
327             <listitem>
328               <para>
329                 Create a new tab.
330               </para>
331             </listitem>
332           </varlistentry>
333
334           <!-- New Window. -->
335           <varlistentry id="file-new-window">
336             <term>
337               <menuchoice>
338                 <shortcut>
339                   <keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
340                 </shortcut>
341                 <guimenu>File</guimenu>
342                 <guimenuitem>New Window</guimenuitem>
343               </menuchoice>
344             </term>
345
346             <listitem>
347               <para>
348                 Create a new window.
349               </para>
350             </listitem>
351           </varlistentry>
352
353           <!-- Print. -->
354           <varlistentry  id="file-print">
355             <term>
356               <menuchoice>
357                 <shortcut>
358                   <keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo>
359                 </shortcut>
360                 <guimenu>File</guimenu>
361                 <guimenuitem>Print</guimenuitem>
362               </menuchoice>
363             </term>
364
365             <listitem>
366               <para>
367                 Print the document.
368               </para>
369             </listitem>
370           </varlistentry>
371
372           <!-- Print Preview. -->
373           <varlistentry  id="file-print-preview">
374             <term>
375               <menuchoice>
376                 <shortcut>
377                   <keycombo action="simul">&Ctrl;&Shift;<keycap>P</keycap></keycombo>
378                 </shortcut>
379                 <guimenu>File</guimenu>
380                 <guimenuitem>Print Preview</guimenuitem>
381               </menuchoice>
382             </term>
383
384             <listitem>
385               <para>
386                 Display the print preview dialog.
387               </para>
388             </listitem>
389           </varlistentry>
390
391           <!-- Quit. -->
392           <varlistentry  id="file-quit">
393             <term>
394               <menuchoice>
395                 <shortcut>
396                   <keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
397                 </shortcut>
398                 <guimenu>File</guimenu>
399                 <guimenuitem>Quit</guimenuitem>
400               </menuchoice>
401             </term>
402
403             <listitem>
404               <para>
405                 Quit &privacybrowser;.
406               </para>
407             </listitem>
408           </varlistentry>
409         </variablelist>
410       </sect2>
411
412       <!-- Edit. -->
413       <sect2>
414         <title>Edit</title>
415
416         <variablelist>
417           <!-- Find. -->
418           <varlistentry id="edit-find">
419             <term>
420               <menuchoice>
421                 <shortcut>
422                   <keycombo action="simul">&Ctrl;<keycap>F</keycap></keycombo>
423                 </shortcut>
424                 <guimenu>Edit</guimenu>
425                 <guimenuitem>Find</guimenuitem>
426               </menuchoice>
427             </term>
428
429             <listitem>
430               <para>
431                 Display the find toolbar and focus the find text line edit. If the toolbar is already displayed, the find text line edit is refocused and the text it contains is selected.
432               </para>
433             </listitem>
434           </varlistentry>
435
436
437           <!-- Find Next. -->
438           <varlistentry id="edit-find-next">
439             <term>
440               <menuchoice>
441                 <shortcut>
442                   <keycap>F3</keycap>
443                 </shortcut>
444                 <guimenu>Edit</guimenu>
445                 <guimenuitem>Find Next</guimenuitem>
446               </menuchoice>
447             </term>
448
449             <listitem>
450               <para>
451                 Find the next entry on the page that matches the specified text. This action is only displayed if the find toolbar is visible.
452               </para>
453             </listitem>
454           </varlistentry>
455
456           <!-- Find Previous. -->
457           <varlistentry id="edit-find-previous">
458             <term>
459               <menuchoice>
460                 <shortcut>
461                   <keycombo action="simul">&Shift;<keycap>F3</keycap></keycombo>
462                 </shortcut>
463                 <guimenu>Edit</guimenu>
464                 <guimenuitem>Find Previous</guimenuitem>
465               </menuchoice>
466             </term>
467
468             <listitem>
469               <para>
470                 Find the previous entry on the page that matches the specified text. This action is only displayed if the find toolbar is visible.
471               </para>
472             </listitem>
473           </varlistentry>
474         </variablelist>
475       </sect2>
476
477       <!-- View. -->
478       <sect2>
479         <title>View</title>
480
481         <variablelist>
482           <!-- Refresh. -->
483           <varlistentry id="view-refresh">
484             <term>
485               <menuchoice>
486                 <shortcut>
487                   <keycap>F5</keycap>
488                 </shortcut>
489                 <guimenu>View</guimenu>
490                 <guimenuitem>Refresh</guimenuitem>
491               </menuchoice>
492             </term>
493
494             <listitem>
495               <para>
496                 Reload the website in the current tab.
497               </para>
498             </listitem>
499           </varlistentry>
500
501           <!-- Full Screen Mode. -->
502           <varlistentry id="view-full-screen-mode">
503             <term>
504               <menuchoice>
505                 <shortcut>
506                   <keycombo action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo>
507                 </shortcut>
508                 <guimenu>View</guimenu>
509                 <guimenuitem>Full Screen Mode</guimenuitem>
510               </menuchoice>
511             </term>
512
513             <listitem>
514               <para>
515                 Toggle full screen mode. This performs the same action as <xref linkend="f11"/>.
516               </para>
517             </listitem>
518           </varlistentry>
519         </variablelist>
520       </sect2>
521
522       <!-- Go. -->
523       <sect2>
524         <title>Go</title>
525
526         <variablelist>
527           <!-- Back. -->
528           <varlistentry id="go-back">
529             <term>
530               <menuchoice>
531                 <shortcut>
532                   <keycombo action="simul">&Alt;<keycap>Left</keycap></keycombo>
533                 </shortcut>
534                 <guimenu>Go</guimenu>
535                 <guimenuitem>Back</guimenuitem>
536               </menuchoice>
537             </term>
538
539             <listitem>
540               <para>
541                 Navigate back one step in the current tab’s history. The action is disabled if it is not possible to go back.
542               </para>
543             </listitem>
544           </varlistentry>
545
546           <!-- Forward. -->
547           <varlistentry id="go-forward">
548             <term>
549               <menuchoice>
550                 <shortcut>
551                   <keycombo action="simul">&Alt;<keycap>Right</keycap></keycombo>
552                 </shortcut>
553                 <guimenu>Go</guimenu>
554                 <guimenuitem>Forward</guimenuitem>
555               </menuchoice>
556             </term>
557
558             <listitem>
559               <para>
560                 Navigate forward one step in the current tab’s history. The action is disabled if it is not possible to go forward.
561               </para>
562             </listitem>
563           </varlistentry>
564
565           <!-- Home. -->
566           <varlistentry id="go-home">
567             <term>
568               <menuchoice>
569                 <shortcut>
570                   <keycombo action="simul">&Alt;<keycap>Home</keycap></keycombo>
571                 </shortcut>
572                 <guimenu>Go</guimenu>
573                 <guimenuitem>Home</guimenuitem>
574               </menuchoice>
575             </term>
576
577             <listitem>
578               <para>
579                 Load the home page in the current tab.
580               </para>
581             </listitem>
582           </varlistentry>
583         </variablelist>
584       </sect2>
585
586       <!-- On-The-Fly Settings. -->
587       <sect2>
588         <title>On-The-Fly Settings</title>
589
590         <!-- User Agent. -->
591         <sect3>
592           <title>User Agent</title>
593
594           <variablelist>
595             <!-- Privacy Browser. -->
596             <varlistentry id="user-agent-privacy-browser">
597               <term>
598                 <menuchoice>
599                   <shortcut>
600                     <keycombo action="simul">&Ctrl;&Alt;<keycap>P</keycap></keycombo>
601                   </shortcut>
602                   <guimenu>On-The-Fly Settings</guimenu>
603                   <guisubmenu>User Agent</guisubmenu>
604                   <guimenuitem>Privacy Browser</guimenuitem>
605                 </menuchoice>
606               </term>
607
608               <listitem>
609                 <para>
610                   Use the Privacy Browser user agent for the current tab.
611                 </para>
612               </listitem>
613             </varlistentry>
614
615             <!-- WebEngine Default. -->
616             <varlistentry id="user-agent-webengine-default">
617               <term>
618                 <menuchoice>
619                   <shortcut>
620                     <keycombo action="simul">&Ctrl;&Alt;<keycap>W</keycap></keycombo>
621                   </shortcut>
622                   <guimenu>On-The-Fly Settings</guimenu>
623                   <guisubmenu>User Agent</guisubmenu>
624                   <guimenuitem>WebEngine Default</guimenuitem>
625                 </menuchoice>
626               </term>
627
628               <listitem>
629                 <para>
630                   Use the WebEngine Default user agent for the current tab.
631                 </para>
632               </listitem>
633             </varlistentry>
634
635             <!-- Firefox on Linux. -->
636             <varlistentry id="user-agent-firefox-linux">
637               <term>
638                 <menuchoice>
639                   <shortcut>
640                     <keycombo action="simul">&Ctrl;&Alt;<keycap>F</keycap></keycombo>
641                   </shortcut>
642                   <guimenu>On-The-Fly Settings</guimenu>
643                   <guisubmenu>User Agent</guisubmenu>
644                   <guimenuitem>Firefox on Linux</guimenuitem>
645                 </menuchoice>
646               </term>
647
648               <listitem>
649                 <para>
650                   Use the Firefox on Linux user agent for the current tab.
651                 </para>
652               </listitem>
653             </varlistentry>
654
655             <!-- Chromium on Linux. -->
656             <varlistentry id="user-agent-chromium-linux">
657               <term>
658                 <menuchoice>
659                   <shortcut>
660                     <keycombo action="simul">&Ctrl;&Alt;<keycap>C</keycap></keycombo>
661                   </shortcut>
662                   <guimenu>On-The-Fly Settings</guimenu>
663                   <guisubmenu>User Agent</guisubmenu>
664                   <guimenuitem>Chromium on Linux</guimenuitem>
665                 </menuchoice>
666               </term>
667
668               <listitem>
669                 <para>
670                   Use the Chromium on Linux user agent for the current tab.
671                 </para>
672               </listitem>
673             </varlistentry>
674
675             <!-- Firefox on Windows. -->
676             <varlistentry id="user-agent-firefox-windows">
677               <term>
678                 <menuchoice>
679                   <shortcut>
680                     <keycombo action="simul">&Ctrl;&Alt;&Shift;<keycap>F</keycap></keycombo>
681                   </shortcut>
682                   <guimenu>On-The-Fly Settings</guimenu>
683                   <guisubmenu>User Agent</guisubmenu>
684                   <guimenuitem>Firefox on Windows</guimenuitem>
685                 </menuchoice>
686               </term>
687
688               <listitem>
689                 <para>
690                   Use the Firefox on Windows user agent for the current tab.
691                 </para>
692               </listitem>
693             </varlistentry>
694
695             <!-- Chrome on Windows. -->
696             <varlistentry id="user-agent-chrome-windows">
697               <term>
698                 <menuchoice>
699                   <shortcut>
700                     <keycombo action="simul">&Ctrl;&Alt;&Shift;<keycap>C</keycap></keycombo>
701                   </shortcut>
702                   <guimenu>On-The-Fly Settings</guimenu>
703                   <guisubmenu>User Agent</guisubmenu>
704                   <guimenuitem>Chrome on Windows</guimenuitem>
705                 </menuchoice>
706               </term>
707
708               <listitem>
709                 <para>
710                   Use the Chrome on Windows user agent for the current tab.
711                 </para>
712               </listitem>
713             </varlistentry>
714
715             <!-- Edge on Windows. -->
716             <varlistentry id="user-agent-edge-windows">
717               <term>
718                 <menuchoice>
719                   <shortcut>
720                     <keycombo action="simul">&Ctrl;&Alt;<keycap>E</keycap></keycombo>
721                   </shortcut>
722                   <guimenu>On-The-Fly Settings</guimenu>
723                   <guisubmenu>User Agent</guisubmenu>
724                   <guimenuitem>Edge on Windows</guimenuitem>
725                 </menuchoice>
726               </term>
727
728               <listitem>
729                 <para>
730                   Use the Edge on Windows user agent for the current tab.
731                 </para>
732               </listitem>
733             </varlistentry>
734
735             <!-- Safari on macOS. -->
736             <varlistentry id="user-agent-safari-macOS">
737               <term>
738                 <menuchoice>
739                   <shortcut>
740                     <keycombo action="simul">&Ctrl;&Alt;<keycap>S</keycap></keycombo>
741                   </shortcut>
742                   <guimenu>On-The-Fly Settings</guimenu>
743                   <guisubmenu>User Agent</guisubmenu>
744                   <guimenuitem>Safari on macOS</guimenuitem>
745                 </menuchoice>
746               </term>
747
748               <listitem>
749                 <para>
750                   Use the Safari on macOS user agent for the current tab.
751                 </para>
752               </listitem>
753             </varlistentry>
754
755             <!-- Custom User Agent. -->
756             <varlistentry id="user-agent-custom">
757               <term>
758                 <menuchoice>
759                   <shortcut>
760                     <keycombo action="simul">&Alt;&Shift;<keycap>C</keycap></keycombo>
761                   </shortcut>
762                   <guimenu>On-The-Fly Settings</guimenu>
763                   <guisubmenu>User Agent</guisubmenu>
764                   <guimenuitem>Custom</guimenuitem>
765                 </menuchoice>
766               </term>
767
768               <listitem>
769                 <para>
770                   Use the custom user agent for the current tab. This action is only active if a custom user agent is set in the settings.
771                 </para>
772               </listitem>
773             </varlistentry>
774           </variablelist>
775         </sect3>
776
777         <!-- Zoom. -->
778         <sect3>
779           <title>Zoom</title>
780
781           <variablelist>
782             <!-- Zoom Factor. -->
783             <varlistentry id="on-the-fly-settings-zoom-factor">
784               <term>
785                 <menuchoice>
786                   <shortcut>
787                     <keycombo action="simul">&Ctrl;&Alt;<keycap>Z</keycap></keycombo>
788                   </shortcut>
789                   <guimenu>On-The-Fly Settings</guimenu>
790                   <guimenuitem>Zoom Factor</guimenuitem>
791                 </menuchoice>
792               </term>
793
794               <listitem>
795                 <para>
796                   Display the zoom factor dialog.
797                 </para>
798               </listitem>
799             </varlistentry>
800           </variablelist>
801         </sect3>
802
803         <!-- Search Engine. -->
804         <sect3>
805           <title>Search Engine</title>
806
807           <variablelist>
808             <!-- Mojeek. -->
809             <varlistentry id="search-engine-mojeek">
810               <term>
811                 <menuchoice>
812                   <shortcut>
813                     <keycombo action="simul">&Ctrl;&Shift;<keycap>M</keycap></keycombo>
814                   </shortcut>
815                   <guimenu>On-The-Fly Settings</guimenu>
816                   <guisubmenu>Search Engine</guisubmenu>
817                   <guimenuitem>Mojeek</guimenuitem>
818                 </menuchoice>
819               </term>
820
821               <listitem>
822                 <para>
823                   Use Mojeek as the search engine.
824                 </para>
825               </listitem>
826             </varlistentry>
827
828             <!-- Monocles. -->
829             <varlistentry id="search-engine-monocles">
830               <term>
831                 <menuchoice>
832                   <shortcut>
833                     <keycombo action="simul">&Ctrl;&Shift;<keycap>O</keycap></keycombo>
834                   </shortcut>
835                   <guimenu>On-The-Fly Settings</guimenu>
836                   <guisubmenu>Search Engine</guisubmenu>
837                   <guimenuitem>Monocles</guimenuitem>
838                 </menuchoice>
839               </term>
840
841               <listitem>
842                 <para>
843                   Use Mojeek as the search engine.
844                 </para>
845               </listitem>
846             </varlistentry>
847
848             <!-- MetaGer. -->
849             <varlistentry id="search-engine-metager">
850               <term>
851                 <menuchoice>
852                   <shortcut>
853                     <keycombo action="simul">&Ctrl;&Shift;<keycap>E</keycap></keycombo>
854                   </shortcut>
855                   <guimenu>On-The-Fly Settings</guimenu>
856                   <guisubmenu>Search Engine</guisubmenu>
857                   <guimenuitem>MetaGer</guimenuitem>
858                 </menuchoice>
859               </term>
860
861               <listitem>
862                 <para>
863                   Use MetaGer as the search engine.
864                 </para>
865               </listitem>
866             </varlistentry>
867
868             <!-- Google. -->
869             <varlistentry id="search-engine-google">
870               <term>
871                 <menuchoice>
872                   <shortcut>
873                     <keycombo action="simul">&Ctrl;&Shift;<keycap>G</keycap></keycombo>
874                   </shortcut>
875                   <guimenu>On-The-Fly Settings</guimenu>
876                   <guisubmenu>Search Engine</guisubmenu>
877                   <guimenuitem>Google</guimenuitem>
878                 </menuchoice>
879               </term>
880
881               <listitem>
882                 <para>
883                   Use Google as the search engine.
884                 </para>
885               </listitem>
886             </varlistentry>
887
888             <!-- Bing. -->
889             <varlistentry id="search-engine-bing">
890               <term>
891                 <menuchoice>
892                   <shortcut>
893                     <keycombo action="simul">&Ctrl;&Shift;<keycap>B</keycap></keycombo>
894                   </shortcut>
895                   <guimenu>On-The-Fly Settings</guimenu>
896                   <guisubmenu>Search Engine</guisubmenu>
897                   <guimenuitem>Bing</guimenuitem>
898                 </menuchoice>
899               </term>
900
901               <listitem>
902                 <para>
903                   Use Bing as the search engine.
904                 </para>
905               </listitem>
906             </varlistentry>
907
908             <!-- Yahoo. -->
909             <varlistentry id="search-engine-yahoo">
910               <term>
911                 <menuchoice>
912                   <shortcut>
913                     <keycombo action="simul">&Ctrl;&Shift;<keycap>Y</keycap></keycombo>
914                   </shortcut>
915                   <guimenu>On-The-Fly Settings</guimenu>
916                   <guisubmenu>Search Engine</guisubmenu>
917                   <guimenuitem>Yahoo</guimenuitem>
918                 </menuchoice>
919               </term>
920
921               <listitem>
922                 <para>
923                   Use Yahoo as the search engine.
924                 </para>
925               </listitem>
926             </varlistentry>
927
928             <!-- Custom Search Engine. -->
929             <varlistentry id="search-engine-custom">
930               <term>
931                 <menuchoice>
932                   <shortcut>
933                     <keycombo action="simul">&Ctrl;&Shift;<keycap>C</keycap></keycombo>
934                   </shortcut>
935                   <guimenu>On-The-Fly Settings</guimenu>
936                   <guisubmenu>Search Engine</guisubmenu>
937                   <guimenuitem>Custom</guimenuitem>
938                 </menuchoice>
939               </term>
940
941               <listitem>
942                 <para>
943                   Use the custom search engine. This action is only active if a custom search engine is set in the settings.
944                 </para>
945               </listitem>
946             </varlistentry>
947           </variablelist>
948         </sect3>
949       </sect2>
950
951       <!-- Settings. -->
952       <sect2>
953         <title>Settings</title>
954
955         <variablelist>
956           <!-- Domain Settings. -->
957           <varlistentry id="settings-domain-settings">
958             <term>
959               <menuchoice>
960                 <shortcut>
961                   <keycombo action="simul">&Ctrl;<keycap>D</keycap></keycombo>
962                 </shortcut>
963                 <guimenu>Settings</guimenu>
964                 <guimenuitem>Domain Settings</guimenuitem>
965               </menuchoice>
966             </term>
967
968             <listitem>
969               <para>
970                 Display the domain settings dialog.
971               </para>
972             </listitem>
973           </varlistentry>
974
975
976           <!-- Cookies. -->
977           <varlistentry id="settings-cookies">
978             <term>
979               <menuchoice>
980                 <shortcut>
981                   <keycombo action="simul">&Ctrl;<keycap>;</keycap></keycombo>
982                 </shortcut>
983                 <guimenu>Settings</guimenu>
984                 <guimenuitem>Cookies</guimenuitem>
985               </menuchoice>
986             </term>
987
988             <listitem>
989               <para>
990                 Display the cookies dialog.
991               </para>
992             </listitem>
993           </varlistentry>
994         </variablelist>
995       </sect2>
996
997       <!-- Common Settings and Help Entries. -->
998       <sect2 id="common-settings-help-menus">
999         <title>Common Settings and Help Entries</title>
1000
1001         <para>
1002           &privacybrowser; has many common &kde; <guimenu>Settings</guimenu> and <guimenu>Help</guimenu> menu items.
1003           For more information read the sections about the <ulink url="help:/fundamentals/ui.html#menus-settings">Settings Menu</ulink>
1004           and <ulink url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink>.
1005         </para>
1006       </sect2>
1007
1008       <!-- Other Commands. -->
1009       <sect2>
1010         <title>Other Commands</title>
1011
1012         <variablelist>
1013           <!-- F11. -->
1014           <varlistentry id="f11">
1015             <term>
1016               <command>
1017                 <keycap>F11</keycap>
1018               </command>
1019             </term>
1020
1021             <listitem>
1022               <para>
1023                 Toggle full screen mode. This performs the same action as <xref linkend="view-full-screen-mode"/>.
1024               </para>
1025             </listitem>
1026           </varlistentry>
1027
1028           <!-- Escape. -->
1029           <varlistentry id="escape">
1030             <term>
1031               <command>
1032                 <keycap>&Esc;</keycap>
1033               </command>
1034             </term>
1035
1036             <listitem>
1037               <para>
1038                 Escape runs the first command that applies from the following list.
1039               </para>
1040
1041               <itemizedlist>
1042                 <listitem>
1043                   <para>
1044                     Exit full screen browsing.
1045                   </para>
1046                 </listitem>
1047
1048                 <listitem>
1049                   <para>
1050                     Clear the find text line edit and the find text highlights.
1051                   </para>
1052                 </listitem>
1053
1054                 <listitem>
1055                   <para>
1056                     Hide the find text toolbar.
1057                   </para>
1058                 </listitem>
1059               </itemizedlist>
1060             </listitem>
1061           </varlistentry>
1062         </variablelist>
1063       </sect2>
1064     </sect1>
1065
1066     <!-- Cookies Dialog. -->
1067     <sect1 id="cookies-dialog">
1068       <title>Cookies Dialog</title>
1069
1070       <para>
1071         The cookies dialog is accessed through <xref linkend="settings-cookies"/> (see <xref linkend="cookies"/>).
1072       </para>
1073
1074       <sect2 id="cookies-dialog-commands">
1075         <title>Commands</title>
1076
1077         <variablelist>
1078           <!-- Add Cookie. -->
1079           <varlistentry id="add-cookie">
1080             <term>
1081               <command>
1082                 <keycap>A</keycap>
1083               </command>
1084             </term>
1085
1086             <listitem>
1087               <para>
1088                 Open the add cookie dialog.
1089               </para>
1090             </listitem>
1091           </varlistentry>
1092
1093           <!-- Edit Cookie. -->
1094           <varlistentry id="edit-cookie">
1095             <term>
1096               <command>
1097                 <keycap>E</keycap>
1098               </command>
1099             </term>
1100
1101             <listitem>
1102               <para>
1103                 Open the edit cookie dialog. This command is only valid if a cookie is currently selected.
1104               </para>
1105             </listitem>
1106           </varlistentry>
1107
1108           <!-- Delete Cookies. -->
1109           <varlistentry id="delete-cookies">
1110             <term>
1111               <command>
1112                 <keycap>D</keycap> or <keycap>&Del;</keycap>
1113               </command>
1114             </term>
1115
1116             <listitem>
1117               <para>
1118                 Delete the currently selected cookies. A dialog will confirm the deletion before it is processed.
1119               </para>
1120             </listitem>
1121           </varlistentry>
1122
1123           <!-- Delete All Cookies. -->
1124           <varlistentry id="delete-all-cookie">
1125             <term>
1126               <command>
1127                 <keycap>L</keycap>
1128               </command>
1129             </term>
1130
1131             <listitem>
1132               <para>
1133                 Delete all the cookies. A dialog will confirm the deletion before it is processed.
1134               </para>
1135             </listitem>
1136           </varlistentry>
1137
1138           <!-- Close. -->
1139           <varlistentry id="close-cookies-dialog">
1140             <term>
1141               <command>
1142                 <keycap>C</keycap> or <keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
1143               </command>
1144             </term>
1145
1146             <listitem>
1147               <para>
1148                 Close the cookies dialog.
1149               </para>
1150             </listitem>
1151           </varlistentry>
1152         </variablelist>
1153       </sect2>
1154     </sect1>
1155
1156     <!-- Save Dialog. -->
1157     <sect1 id="save-dialog">
1158       <title>Save Dialog</title>
1159
1160       <para>
1161         The save dialog pops up when a download is initiated.
1162       </para>
1163
1164       <sect2 id="save-dialog-commands">
1165         <title>Commands</title>
1166
1167         <variablelist>
1168           <!-- Save. -->
1169           <varlistentry id="save-dialog-save">
1170             <term>
1171               <command>
1172                 <keycap>S</keycap>
1173               </command>
1174             </term>
1175
1176             <listitem>
1177               <para>
1178                 Save the file.
1179               </para>
1180             </listitem>
1181           </varlistentry>
1182
1183           <!-- Close. -->
1184           <varlistentry id="save-dialog-close">
1185             <term>
1186               <command>
1187                 <keycap>C</keycap> or <keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
1188               </command>
1189             </term>
1190
1191             <listitem>
1192               <para>
1193                 Close the save dialog without saving the file.
1194               </para>
1195             </listitem>
1196           </varlistentry>
1197         </variablelist>
1198       </sect2>
1199     </sect1>
1200   </chapter>
1201
1202   <!-- FAQ. -->
1203   <chapter id="faq">
1204     <title>Questions and Answers</title>
1205
1206     <qandaset id="faqlist">
1207       <qandaentry>
1208         <!-- Why are there no questions. -->
1209         <question>
1210           <para>Why are there no questions?</para>
1211         </question>
1212
1213         <answer>
1214           <para>Because Privacy Browser is so perfectly designed that none have ever been asked. Also, because this is the first release and nobody has had a chance to ask them yet. ;)</para>
1215         </answer>
1216       </qandaentry>
1217     </qandaset>
1218   </chapter>
1219
1220   <!-- Credits. -->
1221   <chapter id="credits">
1222     <title>Credits and License</title>
1223
1224     <para>
1225       Program copyright 2016-2017,2021-2023 Soren Stoutner <ulink url="mailto:soren@stoutner.com">soren@stoutner.com</ulink>.
1226     </para>
1227
1228     <para>
1229       Translators:
1230       <itemizedlist>
1231         <listitem><para>Translations will be added in a future release.</para></listitem>
1232       </itemizedlist>
1233     </para>
1234
1235     <!-- The program license. -->
1236     &underGPL;
1237
1238     <para>
1239       Documentation copyright 2023 Soren Stoutner <ulink url="mailto:soren@stoutner.com">soren@stoutner.com</ulink>.
1240     </para>
1241
1242     <!-- The documentation license. -->
1243     &underFDL;
1244   </chapter>
1245 </book>