Initial import of Dillo
This commit is contained in:
74
doc/Cookies.txt
Normal file
74
doc/Cookies.txt
Normal file
@ -0,0 +1,74 @@
|
||||
Jan 2002, Jörgen Viksell - jorgen.viksell@telia.com,
|
||||
Jorge Arellano Cid --
|
||||
Last update: March 2010
|
||||
|
||||
|
||||
==================
|
||||
Cookies in Dillo
|
||||
==================
|
||||
|
||||
The current specification for cookies is RFC 6265
|
||||
( http://tools.ietf.org/html/rfc6265 ).
|
||||
|
||||
Cookies are handled by a dpi (plugin) which shares them between your
|
||||
instances of Dillo.
|
||||
|
||||
Current cookie limits are: 20 per domain, and 1200 in total.
|
||||
|
||||
When the dpi exits, cookies that you have ACCEPTed are saved to
|
||||
~/.dillo/cookies.txt, and ACCEPT_SESSION cookies are forgotten.
|
||||
The dpi normally exits after a period of inactivity, but you can force it to
|
||||
exit with the command "dpidc stop".
|
||||
|
||||
|
||||
=====================
|
||||
Controlling cookies
|
||||
=====================
|
||||
|
||||
Out of the box, dillo rejects all cookies.
|
||||
|
||||
|
||||
If you want to accept certain cookies, you can specify rules for different
|
||||
domains in the file ~/.dillo/cookiesrc. The syntax looks like:
|
||||
|
||||
#host action
|
||||
DEFAULT DENY
|
||||
fltk.org ACCEPT
|
||||
.host.com ACCEPT_SESSION
|
||||
|
||||
Line 0: Comment line begins with '#'.
|
||||
Line 1: Deny all cookies from all domains not otherwise specified.
|
||||
Line 2: Accept all cookies from fltk.org, and save them to
|
||||
~/.dillo/cookies.txt when the cookies dpi exits.
|
||||
Line 3: Accept all cookies from all subdomains of host.com, but
|
||||
do not save them when the dpi exits.
|
||||
|
||||
|
||||
If you are positive that you will never want any cookies, you can
|
||||
configure/compile Dillo without cookie support. The option is:
|
||||
./configure --disable-cookies
|
||||
|
||||
|
||||
===================
|
||||
Cookies & Privacy
|
||||
===================
|
||||
|
||||
Cookies can be a severe threat to personal privacy. The pages you
|
||||
visit can be tracked, logged, and associated to a personal data-record,
|
||||
allowing the possibility of building a detailed profile of your
|
||||
browsing habits.
|
||||
|
||||
This data is sold to companies that profit from direct use of such
|
||||
information (SPAM, Spying, etc).
|
||||
|
||||
If this data is cross-referenced with other databases, they can end up
|
||||
with more information than you have about yourself.
|
||||
|
||||
Some people may tell you this is "paranoid". But please, take my words
|
||||
as those of someone who has written a web browser, a cookies implementation,
|
||||
and who has deep understanding of HTTP and cookies.
|
||||
|
||||
The dillo project is especially concerned about privacy and security
|
||||
issues. Our advice is to avoid cookies whenever possible and at most set
|
||||
ACCEPT_SESSION to specific, trusted sites. -- You have been warned.
|
||||
|
17
doc/Makefile.am
Normal file
17
doc/Makefile.am
Normal file
@ -0,0 +1,17 @@
|
||||
doc_DATA = user_help.html
|
||||
man_MANS = dillo.1
|
||||
EXTRA_DIST = \
|
||||
README \
|
||||
Cookies.txt \
|
||||
dillo.1.in \
|
||||
user_help.in.html \
|
||||
install.md
|
||||
|
||||
dillo.1: $(srcdir)/dillo.1.in Makefile
|
||||
sed 's%/usr/local%${prefix}%g' < $(srcdir)/dillo.1.in > dillo.1
|
||||
|
||||
# Use .in.html instead of .html.in so it is recognized as HTML.
|
||||
user_help.html: $(srcdir)/user_help.in.html Makefile
|
||||
sed 's/__VERSION__/${VERSION}/g' $(srcdir)/user_help.in.html > $@
|
||||
|
||||
DISTCLEANFILES = dillo.1 user_help.html
|
5
doc/README
Normal file
5
doc/README
Normal file
@ -0,0 +1,5 @@
|
||||
Last update: June 2015
|
||||
|
||||
This directory contains user documentation. Developer documentation is
|
||||
only stored in the Git repository at <https://github.com/dillo-browser/dillo>, in
|
||||
the directory "devdoc", but not part of the tarball.
|
117
doc/dillo.1.in
Normal file
117
doc/dillo.1.in
Normal file
@ -0,0 +1,117 @@
|
||||
.TH dillo 1 "May 28, 2015" "" "USER COMMANDS"
|
||||
.SH NAME
|
||||
dillo \- web browser
|
||||
.SH SYNOPSIS
|
||||
.B dillo
|
||||
.RI [ OPTION ]...
|
||||
.RB [ \-\- ]
|
||||
.RI [ URL | FILE ]...
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
Dillo is a lightweight graphical web browser that aims to be secure.
|
||||
It handles HTTP internally, and FILE, FTP, and
|
||||
DATA URIs are handled through a plugin system (dpi). In addition,
|
||||
.I EXPERIMENTAL
|
||||
HTTPS support can be enabled. Both FTP and Dillo's download manager use the
|
||||
.BR wget (1)
|
||||
downloader.
|
||||
.PP
|
||||
Dillo displays HTML, text, PNG, JPEG, GIF, SVG and WebP files.
|
||||
It handles cookies, HTTP authentication (basic and digest), proxying (basic),
|
||||
and some CSS.
|
||||
.PP
|
||||
Framesets are displayed as links to frames, and there is currently
|
||||
no support for javascript or video.
|
||||
.PP
|
||||
In order to use the hyphenation feature, pattern files from CTAN need to
|
||||
be installed to
|
||||
.IR /usr/local/lib/dillo/hyphenation/ .
|
||||
This can be done with the script
|
||||
.IR dillo-install-hyphenation .
|
||||
Call it with ISO-639-1 language codes as arguments, or without arguments
|
||||
to get more help.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-fullwindow\fR
|
||||
Start in full window mode: hide address bar, navigation buttons, menu, and
|
||||
status bar.
|
||||
.TP
|
||||
\fB\-g\fR, \fB\-geometry \fIGEO\fR
|
||||
Set initial window position where \fIGEO\fR is
|
||||
\fIW\fBx\fIH\fR[{\fB+\-\fR}\fIX\fR{\fB+\-\fR}\fIY\fR].
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Display this help text and exit.
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-local\fR
|
||||
Don't load images or stylesheets, or follow redirections, for these FILEs or
|
||||
URLs. This is intended for use with HTML email.
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-version\fR
|
||||
Display version info and exit.
|
||||
.TP
|
||||
\fB\-x\fR, \fB\-\-xid \fIXID\fR
|
||||
Open first Dillo window in an existing window whose window ID is \fIXID\fR.
|
||||
.SH EXIT STATUS
|
||||
.TP
|
||||
.B 0
|
||||
No error.
|
||||
.TP
|
||||
.B 1
|
||||
Internal error.
|
||||
.TP
|
||||
.B 2
|
||||
Error in command line arguments.
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.BR "HOME " "(or " "HOMEDRIVE " "and " "HOMEPATH " "on Cygwin)"
|
||||
User's home directory.
|
||||
.TP
|
||||
.B http_proxy
|
||||
URL of proxy to send HTTP/HTTPS traffic through.
|
||||
.SH FILES
|
||||
.TP
|
||||
.I dpid
|
||||
Dillo plugin daemon
|
||||
.TP
|
||||
.I dpidc
|
||||
Control program for dpid.
|
||||
.TP
|
||||
.I ~/.dillo/bm.txt
|
||||
User bookmarks
|
||||
.TP
|
||||
.I ~/.dillo/certs/
|
||||
Saved certificates for HTTPS.
|
||||
.TP
|
||||
.I ~/.dillo/cookies.txt
|
||||
Stored cookies
|
||||
.TP
|
||||
.I ~/.dillo/cookiesrc
|
||||
Cookie settings
|
||||
.TP
|
||||
.I ~/.dillo/dillorc
|
||||
Configuration file.
|
||||
.TP
|
||||
.I ~/.dillo/domainrc
|
||||
Rules for cross-domain requests.
|
||||
.TP
|
||||
.I ~/.dillo/dpid_comm_keys
|
||||
Keys used in dpi daemon communication.
|
||||
.TP
|
||||
.I ~/.dillo/dpidrc
|
||||
Contains name of directory containing dpis, and associates
|
||||
dpi files with protocols.
|
||||
.TP
|
||||
.I ~/.dillo/keysrc
|
||||
Keybindings.
|
||||
.TP
|
||||
.I ~/.dillo/style.css
|
||||
User style sheet.
|
||||
.TP
|
||||
.I /usr/local/lib/dillo/hyphenation/
|
||||
Hyphenation pattern files.
|
||||
.SH SEE ALSO
|
||||
.BR wget (1)
|
||||
.PP
|
||||
Dillo website:
|
||||
.B https://dillo-browser.github.io/
|
BIN
doc/dillo.png
Normal file
BIN
doc/dillo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 136 KiB |
220
doc/install.md
Normal file
220
doc/install.md
Normal file
@ -0,0 +1,220 @@
|
||||
# Installing Dillo on Linux
|
||||
|
||||
Dillo is already packaged in many Linux distributions. To use the binary
|
||||
from your distribution check your package manager. Example in Arch
|
||||
Linux:
|
||||
|
||||
```
|
||||
$ sudo pacman -S dillo
|
||||
```
|
||||
|
||||
## Building from source
|
||||
|
||||
Dillo requires FLTK-1.3, if you don't have it (try `fltk-config
|
||||
--version` to check), follow the steps in the FLTK documentation to
|
||||
install it:
|
||||
|
||||
https://www.fltk.org/doc-1.3/intro.html
|
||||
|
||||
Additionally, it is **strongly recommended** that you install a TLS
|
||||
library to browse HTTPS pages. Currently, Dillo supports any of the
|
||||
following libraries:
|
||||
|
||||
- OpenSSL 1.1 or 3
|
||||
- LibreSSL
|
||||
- mbedTLS 2 or 3 (TLSv1.3 is not supported yet)
|
||||
|
||||
If you don't want to use a TLS library, use the configure option
|
||||
`--disable-tls` to disable TLS support. You can use `--disable-openssl`
|
||||
and `--disable-mbedtls` to control the search. By default OpenSSL or
|
||||
LibreSSL is search first, then mbedTLS.
|
||||
|
||||
For Debian, you can use the following command to install the required
|
||||
packages to build Dillo:
|
||||
|
||||
```sh
|
||||
$ sudo apt install gcc g++ autoconf automake make zlib1g-dev \
|
||||
libfltk1.3-dev libssl-dev libc6-dev \
|
||||
libpng-dev libjpeg-dev libwebp-dev
|
||||
```
|
||||
|
||||
If you prefer to use mbedTLS, replace `libssl-dev` with
|
||||
`libmbedtls-dev`.
|
||||
|
||||
To build and install Dillo follow the steps below.
|
||||
|
||||
### From a release
|
||||
|
||||
```sh
|
||||
$ tar jxvf dillo-3.0.5.tar.bz2
|
||||
$ cd dillo-3.0.5
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ ../configure --prefix=/usr/local
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
### From git
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/dillo-browser/dillo.git
|
||||
$ cd dillo
|
||||
$ ./autogen.sh
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ ../configure --prefix=/usr/local
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
## Hyphenation database
|
||||
|
||||
In order to use the hyphenation feature, pattern files from CTAN need to
|
||||
be installed. This can be done with the script
|
||||
`dillo-install-hyphenation`. Call it with ISO-639-1 language codes
|
||||
("en", "es", "de"...) as arguments, or without arguments to get more
|
||||
help.
|
||||
|
||||
## Dpi programs
|
||||
|
||||
These are installed by `make install`. If you don't have root access,
|
||||
copy "dillo" and "dpid" to some directory in your path and install
|
||||
the dpis by running `./install-dpi-local` from the top directory (they
|
||||
will be installed under ~/.dillo).
|
||||
|
||||
# Other systems
|
||||
|
||||
## BSD
|
||||
|
||||
On FreeBSD 14.0 you can install the required dependencies from ports as:
|
||||
|
||||
```
|
||||
$ pkg install -y automake fltk
|
||||
```
|
||||
|
||||
Notice that on BSD systems, some required dependencies like FLTK are
|
||||
available as ports and are installed in /usr/local (instead of /usr).
|
||||
Additionally, the compiler won't look for headers or libraries in
|
||||
/usr/local by default (you can check with $CC -v), however the `$PATH`
|
||||
may include /usr/local/bin, so the binaries may be available but not the
|
||||
headers. Some dependencies like FLTK are searched invoking the
|
||||
`fltk-config` command that inform where to find the headers and
|
||||
libraries for that package.
|
||||
|
||||
Other libraries are searched by attempting to locate the headers and
|
||||
libraries directly. By default, the configure script won't look in
|
||||
non-default paths of the compiler, so to add /usr/local to the search
|
||||
path, invoke the configure script with the following options:
|
||||
|
||||
```
|
||||
$ ./configure CPPFLAGS='-I/usr/local/include' LDFLAGS='-L/usr/local/lib'
|
||||
```
|
||||
|
||||
Note that you'll need GNU make to build Dillo.
|
||||
|
||||
If it crashes or locks at times, use the `--disable-threaded-dns`
|
||||
option, so Dillo uses a single thread for name resolution.
|
||||
|
||||
## Solaris
|
||||
|
||||
Dillo may compile and run OK on Solaris but (please report).
|
||||
Use gmake (a symbolic link make -> gmake works OK).
|
||||
|
||||
Solaris is very inconsistent so you may need to add/remove:
|
||||
|
||||
```
|
||||
-lrt -lposix4
|
||||
```
|
||||
|
||||
at link time.
|
||||
|
||||
## MacOS
|
||||
|
||||
Dillo is now packaged in [Homebrew](https://brew.sh/).
|
||||
|
||||
```
|
||||
$ brew install dillo
|
||||
```
|
||||
|
||||
### Building from source
|
||||
|
||||
To build Dillo on MacOS you would need to get FLTK as well as
|
||||
autoconf and automake if you are building Dillo from the git repository.
|
||||
They are available in the Homebrew package manager:
|
||||
|
||||
```
|
||||
$ brew install autoconf automake fltk@1.3
|
||||
```
|
||||
|
||||
For OpenSSL you can use either 1.1 or 3.X (recommended):
|
||||
|
||||
```
|
||||
$ brew install openssl@1.1
|
||||
$ brew install openssl@3
|
||||
```
|
||||
|
||||
Homebrew installs libraries and headers in different folders depending on the
|
||||
architecture (Intel vs ARM), so you will need to invoke the configure script
|
||||
with the following options so it knows where to search:
|
||||
|
||||
```
|
||||
$ ./configure LDFLAGS="-L`brew --prefix openssl`/lib" CPPFLAGS="-I`brew --prefix openssl`/include"
|
||||
```
|
||||
|
||||
## Windows via Cygwin
|
||||
|
||||
Dillo can be built for Windows (tested on Windows 11) by using the
|
||||
[Cygwin](https://www.cygwin.com/) POSIX portability layer and run with Xorg. You
|
||||
will need the following dependencies to build Dillo with mbedTLS:
|
||||
|
||||
```
|
||||
gcc-core gcc-g++ autoconf automake make zlib-devel mbedtls-devel libfltk-devel
|
||||
libiconv-devel libpng-devel libjpeg-devel libwebp-devel
|
||||
```
|
||||
|
||||
**Note**: Dillo can also be built with OpenSSL (libssl-devel) but there is a
|
||||
[known problem with detached threads](https://github.com/dillo-browser/dillo/issues/172)
|
||||
used by the DNS resolver and OpenSSL that causes a crash. If you use OpenSSL,
|
||||
disable the threaded resolver with `--disable-threaded-dns`.
|
||||
|
||||
You will also need [Xorg](https://x.cygwin.com/docs/ug/cygwin-x-ug.html) to run
|
||||
Dillo graphically:
|
||||
|
||||
```
|
||||
xorg-server xinit
|
||||
```
|
||||
|
||||
You can also install all the dependencies from the command line with:
|
||||
```
|
||||
setup-x86_64.exe -q -P gcc-core,gcc-g++,autoconf,automake,make,zlib-devel,mbedtls-devel,libfltk-devel,libiconv-devel,libpng-devel,libjpeg-devel,libwebp-devel,xorg-server,xinit
|
||||
```
|
||||
|
||||
To build Dillo, follow the usual steps from a Cygwin shell:
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/dillo-browser/dillo.git
|
||||
$ cd dillo
|
||||
$ ./autogen.sh
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ ../configure --prefix=/usr/local
|
||||
$ make
|
||||
$ make install
|
||||
```
|
||||
|
||||
You should be able to find Dillo in the `$PATH` as it should be installed in
|
||||
`/usr/local/bin/dillo`. To run it, you first need to have an [Xorg server
|
||||
running](https://x.cygwin.com/docs/ug/using.html#using-starting), which you can
|
||||
do from a shell:
|
||||
|
||||
```sh
|
||||
$ startxwin
|
||||
```
|
||||
|
||||
And then, from another shell:
|
||||
|
||||
```sh
|
||||
$ export DISPLAY=:0
|
||||
$ dillo
|
||||
```
|
835
doc/user_help.in.html
Normal file
835
doc/user_help.in.html
Normal file
@ -0,0 +1,835 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Dillo User Manual</title>
|
||||
<style>
|
||||
body {
|
||||
background: white;
|
||||
color: black;
|
||||
line-height: 1.5;
|
||||
margin: 3em;
|
||||
font-family: sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
.main {
|
||||
margin: 0 auto; /* won't work on Dillo, yet */
|
||||
max-width: 40em;
|
||||
min-width: 20em;
|
||||
}
|
||||
ul.toc {
|
||||
font-size: 14px;
|
||||
padding: 1em;
|
||||
}
|
||||
ul.toc li {
|
||||
padding: 0px;
|
||||
}
|
||||
h1 {
|
||||
margin-top: 0.25em;
|
||||
margin-bottom: 0.25em
|
||||
}
|
||||
h2 {
|
||||
padding: 0.5em;
|
||||
margin-top: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 1em;
|
||||
}
|
||||
pre {
|
||||
border-left: 4px solid #ccc;
|
||||
padding: 0.5em;
|
||||
background-color: #f8f8f8;
|
||||
font-size: 14px;
|
||||
}
|
||||
ul {
|
||||
margin-left: 0px;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
li {
|
||||
padding: 0.2em;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
th,td {
|
||||
padding: 0.25em;
|
||||
border-spacing: 0px;
|
||||
border-top: solid 1px #ccc;
|
||||
border-bottom: solid 1px #ccc;
|
||||
}
|
||||
th {
|
||||
background-color: #eee;
|
||||
}
|
||||
footer {
|
||||
color: #777;
|
||||
margin: 2em;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="main">
|
||||
<h1>Dillo User Manual</h1>
|
||||
|
||||
<p>Welcome to the user manual of the Dillo browser. The manual is divided into
|
||||
<em>sections</em> but is written in a <em>single page</em> to allow search by
|
||||
keywords. Generated for version __VERSION__.</p>
|
||||
|
||||
<details><!-- Not supported in Dillo, but decays ok -->
|
||||
<summary class="toc">Table of contents:</summary>
|
||||
<ul class="toc">
|
||||
<li><a href="#introduction">Introduction</a></li>
|
||||
<li><a href="#reading">Reading</a>
|
||||
<ul>
|
||||
<li><a href="#basics">Basics</a></li>
|
||||
<li><a href="#scrolling">Scrolling</a></li>
|
||||
<li><a href="#find-text">Find text</a></li>
|
||||
<li><a href="#copy-and-paste">Copy and paste</a></li>
|
||||
<li><a href="#zoom">Zoom</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#navigation">Navigation</a>
|
||||
<ul>
|
||||
<li><a href="#hyperlinks">Hyperlinks</a></li>
|
||||
<li><a href="#history">History</a></li>
|
||||
<li><a href="#location-bar">Location bar</a></li>
|
||||
<li><a href="#web-search">Web search</a></li>
|
||||
<li><a href="#tabs">Tabs</a></li>
|
||||
<li><a href="#bookmarks">Bookmarks</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#privacy-and-network">Privacy and Network</a>
|
||||
<ul>
|
||||
<li><a href="#https">HTTPS</a></li>
|
||||
<li><a href="#cookies">Cookies</a></li>
|
||||
<li><a href="#proxy">Proxy</a></li>
|
||||
<li><a href="#ad-blocking">Ad-blocking</a></li>
|
||||
<li><a href="#downloads">Downloads</a></li>
|
||||
<li><a href="#images-off-mode">Images-off mode</a></li>
|
||||
</ul>
|
||||
<li><a href="#configuration">Configuration</a>
|
||||
<ul>
|
||||
<li><a href="#dillorc">Dillorc</a></li>
|
||||
<li><a href="#cookiesrc">Cookiesrc</a></li>
|
||||
<li><a href="#domainrc">Domainrc</a></li>
|
||||
<li><a href="#style-css">Style.css</a></li>
|
||||
<li><a href="#dpidrc">Dpidrc</a></li>
|
||||
<li><a href="#bm-txt">bm.txt</a></li>
|
||||
<li><a href="#keysrc">Keysrc</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#advanced-usage">Advanced usage</a>
|
||||
<ul>
|
||||
<li><a href="#plugins">Plugins</a></li>
|
||||
<li><a href="#bug-meter">Bug meter</a></li>
|
||||
<li><a href="#keyboard-shortcuts">Keyboard shortcuts</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
|
||||
<h2 id="introduction">Introduction</h2>
|
||||
<p>Dillo is a web browser designed to be fast, use few resources and support
|
||||
slow and unreliable networks on resource-constrained machines. It can load local
|
||||
and remote files via HTTP, HTTPS and FTP. Other protocols like Gemini, Gopher,
|
||||
IPFS and others are available as
|
||||
<a href="#plugins">plugins</a>.</p>
|
||||
|
||||
<p>Dillo supports a subset of HTML 4.01 and CSS 2.1 but it <b>doesn't support
|
||||
JavaScript</b> and only implements some elements of HTML 5 and CSS 3. It also
|
||||
renders plain text documents and images in PNG, JPG, GIF, SVG and WebP
|
||||
formats.</p>
|
||||
|
||||
<h2 id="reading">Reading</h2>
|
||||
<p>In this section we cover the basics to read a web page, scrolling and finding
|
||||
or copying text.</p>
|
||||
<h3 id="basics">Basics</h3>
|
||||
<p>
|
||||
The graphical interface is designed to be used with a mouse or pointing
|
||||
device. At the top of the browser window you have the location bar and the main
|
||||
buttons to control the browser. You can leave the mouse for a brief moment over
|
||||
any part of the menu to show a tooltip with more information.
|
||||
<p>
|
||||
Dillo has <em>context sensitive menus</em>, which are opened with the right mouse
|
||||
button, available on pages, links, images, forms, the Back and Forward buttons,
|
||||
and the bug meter. They show different actions to be performed specific to the
|
||||
element. For example, to save a page you can right-click on the page and select
|
||||
"Save page as...". Or to copy a link URL you can right-click on a link and
|
||||
select "Copy link location".
|
||||
<p>
|
||||
Dillo can hide all panels and use the whole window area to display the page. To
|
||||
switch between modes use the ESC key. You can also choose the control panel size
|
||||
by going to the Tools button and selecting a different one under "Panel size".
|
||||
<p>
|
||||
You can open this manual from Dillo by clicking on the top right "?" button. It
|
||||
doesn't require a network connection.
|
||||
|
||||
<h3 id="scrolling">Scrolling</h3>
|
||||
|
||||
<p>There are several methods to move or scroll the view of the current page.</p>
|
||||
|
||||
<ul>
|
||||
<li>Using the <em>keyboard</em>:
|
||||
<ul>
|
||||
<li>Use the <code>Home</code> or <code>End</code> keys to jump to the top
|
||||
or to the end of a page.</li>
|
||||
<li>Use <code>PgUp</code> or <code>PgDn</code> to advance a whole
|
||||
<em>page</em> (window size) minus one <em>step</em>.</li>
|
||||
<li>Use the arrow keys to move the view a <em>step</em> in that
|
||||
direction.</li>
|
||||
<li>You can also use the <code>Space</code> key as <code>PgDn</code> and
|
||||
<code>b</code> as PgUp.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Using the <em>mouse</em> or <em>pointing device</em>:
|
||||
<ul>
|
||||
<li>Rotate the mouse wheel to move one <em>step</em> in that direction.
|
||||
Hold Shift to move one <em>page</em> instead.
|
||||
<li>Keep the middle button (or mouse wheel button) pressed while
|
||||
dragging to scroll the page precisely.
|
||||
</ul>
|
||||
</li>
|
||||
<li>Using the <em>scrollbar</em>:
|
||||
<ul>
|
||||
<li>Drag the thumb in the scrollbar on the side up or down to scroll the
|
||||
page.
|
||||
<li>Left-click or right-click on the scrollbar above or below the thumb to
|
||||
move one <em>page</em> in that direction.
|
||||
<li>Middle-click on the scrollbar above or below the thumb to jump to that
|
||||
specific position of the page.
|
||||
<li>Click the scrollbar arrows to move the view one <em>step</em> in
|
||||
that direction.
|
||||
<li>Rotate the mouse wheel over the vertical scrollbar to move one
|
||||
<em>page</em> in that direction.
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>You can control the <b>size of a <em>step</em></b> by setting the
|
||||
<code>scroll_step</code> option in the <a href="#dillorc">dillorc</a>
|
||||
configuration file. By default it will scroll 100 pixels per step. The vertical
|
||||
scrollbar can be positioned on the left side setting the
|
||||
<code>scrollbar_on_left</code> option to <code>YES</code>, by default it is on
|
||||
the right side.</p>
|
||||
|
||||
The vertical scrollbar has another mode of operation to navigate full
|
||||
<em>pages</em> that can be enabled by setting the
|
||||
<code>scrollbar_page_mode</code> option to <code>YES</code> or temporarily by
|
||||
holding the Shift key. When this mode is active, left-clicking anywhere on the
|
||||
scrollbar will scroll down one page and right-clicking will scroll up one page.
|
||||
Middle clicking on the scrollbar will move the thumb to that position, which can
|
||||
also be dragged. The Shift key can also be used to temporarily disable this
|
||||
mode if it was enabled in the configuration.
|
||||
|
||||
<h3 id="find-text">Find text</h3>
|
||||
<p>
|
||||
To find text in a document right-click to open the <em>Page menu</em> and select
|
||||
<em>Find text</em> or press <code>Ctrl+F</code> on the keyboard. Then type the
|
||||
substring that you want to find and click Next (or the <code>Enter</code> key).
|
||||
</p>
|
||||
Dillo will scroll the page and highlight found text starting from the top. To
|
||||
find a word (not a substring) use spaces around it to limit the search to
|
||||
matching words only.
|
||||
<p>
|
||||
To close the find bar you can click on the red X on the bottom right or press
|
||||
ESC.
|
||||
|
||||
<h3 id="copy-and-paste">Copy and paste</h3>
|
||||
<p>
|
||||
To copy some text just hold down the left mouse button and move to select the
|
||||
area to copy. To paste, go to the target application and press the middle mouse
|
||||
button.
|
||||
<p>
|
||||
If you want to select more than one screen, hold the mouse left button down and
|
||||
scroll with PgUp, PgDn or the arrow keys.
|
||||
<P>
|
||||
If you want to paste an URL into Dillo, do it on the "clear-URL"
|
||||
button (the "X" next to the <a href="#location-bar">location bar</a>).
|
||||
<p>
|
||||
|
||||
<h3 id="zoom">Zoom</h3>
|
||||
<p>
|
||||
You can increase or decrease the size of the elements of a page by changing the
|
||||
zoom factor. Use <code>Ctrl +</code> to increase the size, <code>Ctrl -</code>
|
||||
to decrease it and <code>Ctrl 0</code> to reset the value to 100%.
|
||||
<p>
|
||||
The initial zoom factor is specified by the <code>zoom_factor</code> option in
|
||||
the <a href="#dillorc">dillorc</a> configuration file. When a new tab or window
|
||||
is opened, the current zoom factor value is inherited.
|
||||
|
||||
<h2 id="navigation">Navigation</h2>
|
||||
This section focuses on how to navigate to other pages by following hyperlinks,
|
||||
using bookmarks, typing or pasting a new URL or using the history.
|
||||
|
||||
<h3 id="hyperlinks">Hyperlinks</h3>
|
||||
|
||||
<p>Hyperlinks (or just links) allow you to navigate to other pages by clicking
|
||||
them. They change the cursor to a hand to indicate that an element can be
|
||||
clicked with the left button:
|
||||
<p style="text-align: center">
|
||||
<img
|
||||
style="border: solid 1px #ddd;"
|
||||
alt="hand shaped cursor"
|
||||
src="data:image/gif;base64,R0lGODlhGAAYAPYAAAAAAAEBAQICAgQEBAcHBx4eHiwsLC8vLzo6Oj09PVZWVldXV1xcXF1dXWlpaWxsbG5uboODg52dnZ6enqCgoKKioqWlpaampqioqKqqqq+vr7S0tLW1tbe3t7u7u7y8vL6+vr+/v8HBwcTExMfHx8jIyMzMzNLS0tPT09jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OLi4uPj4+Tk5OXl5efn5+jo6Onp6erq6uvr6+zs7O7u7u/v7/Hx8fLy8vT09Pb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAYABgAAAfMgEmCg4SFhoeFQUGIjINEIDQ0IESNiDoxCQg0OZWHMUkAAEkunYakoUkqpYWnoidBRIqrrUmRHJEePYuNtJlJmTqRk4y0qKiZm4ZEy6qhLsaiqKSOJioqHCNEodsNzqiqgz0iDgYSOdrb6duphDkgD6EGEer07IM6GTkL9Pyi4IJEYlCg0a1fOnuOXJjbZxAAASLTCEFc2NCAiogSFdJ4QIBfAREDEUGkMMyQwBK7DhGhMUKDhZcwM3A40aNTEB05curMoYPSqp9ADQUCADs=">
|
||||
<p>
|
||||
Links to other pages usually appear in
|
||||
<span style="color:blue; text-decoration: underline">blue and underlined</span>
|
||||
by default and once they are visited they change to
|
||||
<span style="color:purple; text-decoration: underline">purple</span>.
|
||||
However, this is not always the case, so using the mouse cursor shape is the
|
||||
best indicator of a
|
||||
<em><a style="color:black; text-decoration: none" href="#">link</a></em>.
|
||||
<p>
|
||||
When you follow a link by clicking on it, the previous pages will be remembered
|
||||
in case you want to go back to them. Use the Back and Forward buttons on the top
|
||||
bar to navigate among history pages.
|
||||
<p>
|
||||
|
||||
<h3 id="history">History</h3>
|
||||
<p>
|
||||
When you follow several links across different web pages, they are remembered in
|
||||
case you can to go back. Use the "Back" and "Forward" buttons of the panel to go
|
||||
to the previous or next page.
|
||||
<p>
|
||||
You can also right-click on the Back or Forward buttons to open a menu with the
|
||||
list of previous or next pages available, so you can jump directly to them. Use
|
||||
the left button to open them in the current tab or the middle button to open
|
||||
them in a new tab.
|
||||
<p>
|
||||
The <code>,</code> (comma) and <code>.</code> (dot) keys can be used to jump
|
||||
backwards or forward (mnemonic: those keys are usually labeled "<" and
|
||||
">").
|
||||
|
||||
<h3 id="location-bar">Location bar</h3>
|
||||
<p>
|
||||
The location bar on the top displays the URL of the current page loaded and can
|
||||
be used to access other pages by typing the new URL or by pasting it and
|
||||
pressing Enter.
|
||||
<p>
|
||||
The red <b style="color: darkred">x</b>
|
||||
on the left clears the location bar content when left clicked. Then you can type
|
||||
or paste a new address from the clipboard by middle clicking on the location
|
||||
bar.
|
||||
As these two actions are usually performed together, you can simply middle-click
|
||||
on the
|
||||
<b style="color: darkred">x</b>
|
||||
button to go to the URL in the clipboard.
|
||||
<p>
|
||||
You can also select the location bar content from the keyboard by pressing
|
||||
<code>Ctrl+L</code>.
|
||||
|
||||
<h3 id="web-search">Web search</h3>
|
||||
<p>
|
||||
Several search engines are available by pressing the magnifying glass icon next
|
||||
to the location bar or by pressing <code>Ctrl+S</code>. The search engines are
|
||||
configured in <a href="#dillorc">Dillorc</a> with the option
|
||||
<code>search_url</code>. Use it multiple times to define multiple search
|
||||
engines.
|
||||
<p>
|
||||
The location bar can also be used to search the web by using a special prefix
|
||||
for each search engine. For example, the following line:<br>
|
||||
<pre>
|
||||
search_url="dd DuckDuckGo http://duckduckgo.com/lite/?kp=-1&kd=-1&q=%s"
|
||||
</pre>
|
||||
<p>
|
||||
Defines the "DuckDuckGo" search engine with the prefix "<code>dd</code>", so you
|
||||
can type in the location bar "<code>dd dillo browser</code>" to search with
|
||||
DuckDuckGo for the keywords "dillo browser".
|
||||
|
||||
<h3 id="tabs">Tabs</h3>
|
||||
<p>
|
||||
Dillo can open different web pages into tabs. To open a link in a new tab click
|
||||
the middle button instead of the left button. The same applies to buttons to
|
||||
submit a form. A new tab can also be opened from the <code>File</code> menu or
|
||||
using the shortcut <code>Ctrl+T</code>.
|
||||
<p>
|
||||
Press <code>Shift</code> while middle-clicking a link to automatically focus the
|
||||
new tab. If you want this behaviour to be the default, set the following option
|
||||
in the <a href="#dillorc">dillorc</a> configuration file:
|
||||
<pre>
|
||||
focus_new_tab=YES
|
||||
</pre>
|
||||
If this option is set, pressing <code>Shift</code> middle-clicking will instead
|
||||
avoid focusing the new tab.
|
||||
<p>
|
||||
It is also possible to have the middle-click open a window instead of a tab. For
|
||||
this set the option:
|
||||
<pre>
|
||||
middle_click_opens_new_tab=NO
|
||||
</pre>
|
||||
<p>
|
||||
To close a tab press the X button on the top right (only visible with multiple
|
||||
tabs). You can also close the tab by clicking with the right button on the tab
|
||||
label. The middle button can be used instead by setting the option:
|
||||
<pre>
|
||||
right_click_closes_tab=NO
|
||||
</pre>
|
||||
<p>
|
||||
Use the <code>new_tab_page</code> option to control which page is loaded in a
|
||||
newly opened tab, by default is an empty page. To open the
|
||||
bookmarks page set the following line in <a href="#dillorc">dillorc</a>:
|
||||
<pre>
|
||||
new_tab_page="dpi:/bm/"
|
||||
</pre>
|
||||
|
||||
<h3 id="bookmarks">Bookmarks</h3>
|
||||
<p>
|
||||
Dillo can save URLs of web pages as bookmarks so you can open them later. To
|
||||
bookmark the current page, open the <em>Page menu</em> by right-clicking on the
|
||||
page and select "Bookmark this page" (it also works over a link).
|
||||
<p>
|
||||
To see or edit the bookmarks, click on the Bookmarks button on the panel or
|
||||
press <code>Ctrl+B</code>.
|
||||
<p>
|
||||
Bookmarks are handled by a built-in Dillo plugin named <code>bm</code> (read more
|
||||
about plugins in the <a href="#plugins">Plugins section</a>) and are
|
||||
synchronized across all instances of the browser. The list of bookmarks can also
|
||||
be shown by opening the URL <a href="dpi:/bm/"><code>dpi:/bm/</code></a>.
|
||||
<p>
|
||||
The bookmarks are stored in a simple plain text file named <code>bm.txt</code>
|
||||
(see the details of this file in the <a href="#bm-txt">bm.txt section</a>). You
|
||||
can edit the file directly to change the bookmarks.
|
||||
|
||||
<h2 id="privacy-and-network">Privacy and network</h2>
|
||||
|
||||
<p>The default privacy policy in Dillo attempts to keep the user safe from
|
||||
tracking, <em>even if this policy breaks a lot of website functionality</em>. In
|
||||
this section you can add exceptions or relax the configuration at your own risk.
|
||||
|
||||
<h3 id="https">HTTPS</h3>
|
||||
|
||||
<p>Dillo has support for
|
||||
<a href="https://en.wikipedia.org/wiki/HTTPS">HTTPS</a>,
|
||||
allowing secure connections to remote websites. Use the protocol
|
||||
"<code>https:</code>" to specify the use of HTTPS. When a problem is encountered
|
||||
with the remote certificate, a warning dialog explains the details and allows
|
||||
you to choose what to do: continue loading the website or cancel.
|
||||
<p>
|
||||
By default Dillo looks for a TLS library at build time, which can be OpenSSL or
|
||||
mbedTLS. You can see which library is being used by looking at the console when
|
||||
it starts:
|
||||
<pre>
|
||||
$ dillo
|
||||
dillo_dns_init: Here we go! (threaded)
|
||||
TLS library: <u>OpenSSL 3.2.1 30 Jan 2024</u>
|
||||
...
|
||||
</pre>
|
||||
|
||||
<h3 id="cookies">Cookies</h3>
|
||||
<p>
|
||||
Due to privacy concerns, <b>cookies are disabled by default</b> unless
|
||||
explicitly enabled in the configuration.
|
||||
<p>
|
||||
Support for cookies is implemented using a built-in plugin that shares them
|
||||
between several instances of Dillo and follows the
|
||||
<a href="http://tools.ietf.org/html/rfc6265">RFC 6265</a>
|
||||
specification. Current cookie limits are 20 per domain and
|
||||
1200 in total.
|
||||
|
||||
<p>Cookies are configured by the <code>cookiesrc</code> configuration file. See
|
||||
the <a href="#cookiesrc">Cookiesrc section</a> to see how to enable cookies for
|
||||
some domains or accept them by default.</p>
|
||||
|
||||
<h3 id="proxy">Proxy</h3>
|
||||
<p>Dillo can use a HTTP proxy by setting the environment variable
|
||||
<code>http_proxy</code> or the
|
||||
<a href="#dillorc">configuration option</a> with the same name. All HTTP and
|
||||
HTTPS traffic will be sent through the proxy.
|
||||
|
||||
<p><b>Note</b>: Plugins may not implement proxy support.
|
||||
</p>
|
||||
|
||||
<h3 id="ad-blocking">Ad blocking</h3>
|
||||
<p>Dillo has the ability to block content when loading a page based on the domain
|
||||
the embedded content is being loaded from. You can control how Dillo handles
|
||||
automatic requests for resources (like images and style sheets) that aren't at
|
||||
the same domain as the original page.</p>
|
||||
|
||||
<p>See the <a href="#domainrc">domainrc</a> configuration file to find out how to
|
||||
specify which domains are blocked or allowed.</p>
|
||||
|
||||
<h3 id="downloads">Downloads</h3>
|
||||
<p>Downloads are made using
|
||||
<a href="http://www.gnu.org/software/wget/">wget</a>
|
||||
with a <a href="http://www.fltk.org">FLTK</a>-based GUI wrapper, through
|
||||
the <a href="#plugins">Dillo plugin (dpi) framework</a>.
|
||||
If you close the browser window, downloads will continue.</p>
|
||||
|
||||
<h3 id="images-off-mode">Images-off mode</h3>
|
||||
<p>
|
||||
You can browse without images now:
|
||||
<ul>
|
||||
<li>There is an option in the Tools menu to disable automatic image loading.
|
||||
An image's alt text (or <code>[IMG]</code> placeholder) will appear in the
|
||||
page.
|
||||
<li>If you want to load an individual image, left click on its text.
|
||||
<li>You can set "no images" as the default mode in dillorc.
|
||||
</ul>
|
||||
|
||||
<h2 id="configuration">Configuration</h2>
|
||||
|
||||
<p>Dillo has <b>several configuration files</b> that control the behavior of the
|
||||
browser. Each configuration file is searched <em>first</em> in the
|
||||
<a href="file:~/.dillo"><code>~/.dillo</code></a> directory and,
|
||||
<em>if not found</em>, in the default system configuration directory (typically
|
||||
<code>/etc/dillo</code>).</p>
|
||||
|
||||
<p>Most configuration files can include comments by <em>starting</em> a line
|
||||
with the "<code>#</code>" symbol. Their specific syntax is described in the
|
||||
following sections.</p>
|
||||
|
||||
<h3 id="dillorc">Dillorc</h3>
|
||||
|
||||
<p>The main configuration of Dillo is controlled by the
|
||||
<a href="file:~/.dillo/dillorc"><code>dillorc</code></a> file.
|
||||
The list of all available options can be found in the system
|
||||
configuration file, typically
|
||||
<a href="file:/etc/dillo/dillorc"><code>/etc/dillo/dillorc</code></a>. You may
|
||||
want to copy it into
|
||||
<a href="file:~/.dillo/dillorc"><code>~/.dillo/dillorc</code></a>
|
||||
and edit it to suit your needs.</p>
|
||||
|
||||
The file is commented to describe what each option does. The default value for
|
||||
each option as well as other interesting values are also available as comments:
|
||||
<ul>
|
||||
<li>"<code>#option=...</code>" shows the built-in default.</li>
|
||||
<li>"<code># option=...</code>" is an additional example.</li>
|
||||
<li>"<code>option=...</code>" overrides the built-in value.</li>
|
||||
</ul>
|
||||
|
||||
<p>The <code>search_url</code> option can be specified multiple times:
|
||||
<pre>
|
||||
search_url="dd DuckDuckGo (https) https://duckduckgo.com/lite/?kp=-1&q=%s"
|
||||
search_url="Wikipedia http://www.wikipedia.org/w/index.php?search=%s&go=Go"
|
||||
</pre>
|
||||
|
||||
<h3 id="cookiesrc">Cookiesrc</h3>
|
||||
|
||||
<p>Cookies are configured in the
|
||||
<a href="file:~/.dillo/cookiesrc"><code>~/.dillo/cookiesrc</code></a>
|
||||
file by using rules, with one rule per line. The rule syntax is very simple,
|
||||
first specify the <em>host</em> and then the <em>action</em>, separated by
|
||||
white spaces. Comment lines start with <code>#</code> as the first character and
|
||||
the whole line is ignored.
|
||||
<p>
|
||||
The host can be in the form <code>example.com</code> to match only that
|
||||
domain or <code>.example.com</code> to match all subdomains of example.com. The
|
||||
special word <code>DEFAULT</code> specifies the default policy, when no other
|
||||
match occurs.
|
||||
<p>
|
||||
The action can be: <code>DENY</code> to ignore cookies,
|
||||
<code>ACCEPT_SESSION</code> to only accept session cookies but don't save them
|
||||
to disk and <code>ACCEPT</code> to accept and store cookies in disk (this will
|
||||
allow sites to track you over time).
|
||||
<p>
|
||||
When the cookies plugin exits, only the accepted cookies by <code>ACCEPT</code>
|
||||
are saved to
|
||||
<a href="file:~/.dillo/cookies.txt"><code>~/.dillo/cookies.txt</code></a>,
|
||||
and ACCEPT_SESSION cookies are
|
||||
forgotten. The cookies plugin normally exits after a period of inactivity, but
|
||||
you can force it to exit with the command <code>dpidc stop</code>.
|
||||
<p>
|
||||
Here is an example <code>cookiesrc</code> file:
|
||||
<pre>
|
||||
# host action
|
||||
DEFAULT DENY
|
||||
fltk.org ACCEPT
|
||||
.example.com ACCEPT_SESSION
|
||||
</pre>
|
||||
<p> Which is parsed as follows:</p>
|
||||
<ul>
|
||||
<li>Line 1: Comment line begins with <code>#</code>.</li>
|
||||
<li>Line 2: Deny all cookies from all domains not otherwise specified (this is
|
||||
the default).
|
||||
<li>Line 3: Accept all cookies from fltk.org, and save them to disk when the
|
||||
cookie plugin exits.</li>
|
||||
<li>Line 4: Accept all cookies from all subdomains of example.com, but do not
|
||||
save them when the cookie plugin exits.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Dillo is especially concerned about privacy and security issues. Our advice is
|
||||
to <em>avoid cookies whenever possible</em> and at most set ACCEPT_SESSION to
|
||||
<em>specific trusted sites</em>.
|
||||
|
||||
<h3 id="domainrc">Domainrc</h3>
|
||||
|
||||
<p>With the
|
||||
<code>~/.dillo/domainrc</code>
|
||||
file, you can control how Dillo handles automatic requests for resources
|
||||
(like images and style sheets) that aren't at the same domain as the
|
||||
original page.
|
||||
<p>
|
||||
The file contains one rule per line. Comments are specified by starting the line
|
||||
with the <code>#</code> symbol. The default rule is either
|
||||
<code>default accept</code> or <code>default deny</code> and will cause Dillo
|
||||
to, respectively, accept all requests by default or deny all requests by
|
||||
default.
|
||||
<p>
|
||||
Depending on the default rule, the next rules behave as exceptions by denying
|
||||
specific connections or allowing specific connections, respectively.
|
||||
<p>
|
||||
Exceptions to the default rule are written in the format
|
||||
<code>source destination</code>, and match request from the source domain to the
|
||||
destination domain. The source and destination domains can be specified in three
|
||||
ways:
|
||||
<ul>
|
||||
<li>"<code>*</code>" to match any domain</li>
|
||||
<li>"<code>example.com</code>" to match the specific host example.com</li>
|
||||
<li>"<code>.example.com</code>" to match example.com and any of its
|
||||
subdomains</li>
|
||||
</ul>
|
||||
<p>
|
||||
Here is an example:
|
||||
<pre>
|
||||
# Accept all requests by default
|
||||
default accept
|
||||
# But block some ad-sites and trackers from any domain
|
||||
* .doubleclick.net
|
||||
* .googleadservices.com
|
||||
* .quantserve.com
|
||||
</pre>
|
||||
|
||||
<h3 id="style-css">Style.css</h3>
|
||||
|
||||
<p>Custom
|
||||
<a href="https://en.wikipedia.org/wiki/CSS">CSS styles</a> can be placed in the
|
||||
<a href="file:~/.dillo/style.css"><code>~/.dillo/style.css</code></a>
|
||||
file to set default web page styles. To override page styles add the
|
||||
"<code>!important</code>" flag.
|
||||
|
||||
<h3 id="dpidrc">Dpidrc</h3>
|
||||
|
||||
<p>The configuration for <a href="#plugins">plugins</a> is placed in the
|
||||
<a href="file:~/.dillo/dpidrc"><code>~/.dillo/dpidrc</code></a> file.</p>
|
||||
|
||||
<p>Plugins are searched in the <code>~/.dillo/dpi/</code> directory first, and
|
||||
then in the system directory if not found. The <code>dpi_dir</code> option
|
||||
sets the system <code>dpi</code> directory and must be specified once. Here is
|
||||
an example:</p>
|
||||
|
||||
<pre>
|
||||
dpi_dir=/usr/lib/dillo/dpi
|
||||
</pre>
|
||||
|
||||
<p>By default, plugins will receive requests at the URL
|
||||
<code>dpi:/<em>name</em>/</code>, for example bookmarks are available at
|
||||
<a href="dpi:/bm/"><code>dpi:/bm/</code></a>.
|
||||
|
||||
<p>Plugins can also be associated with a protocol (like "<code>file:</code>").
|
||||
When a request is made using the given protocol the associated plugin is used to
|
||||
process the request. The rest of the file assigns a plugin to a protocol, one
|
||||
per line. The syntax is
|
||||
<code>proto.<em>name</em>=<em>path-to-plugin.dpi</em></code>. The path of the
|
||||
plugin is relative to the <code>dpi</code> directory. Here are protocols
|
||||
used by the built-in plugins:</p>
|
||||
|
||||
<pre>
|
||||
proto.file=file/file.dpi
|
||||
proto.ftp=ftp/ftp.filter.dpi
|
||||
proto.data=datauri/datauri.filter.dpi
|
||||
</pre>
|
||||
|
||||
<p>Here (
|
||||
<img alt="red dot"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">
|
||||
) is an example image using the <code>data:</code> protocol used to define a PNG
|
||||
image inline in a HTML document.
|
||||
</p>
|
||||
|
||||
<h3 id="bm-txt">bm.txt</h3>
|
||||
|
||||
<p>Web page URLs can be saved as bookmarks so they can be accessed in the future.
|
||||
Bookmarks are stored in a plain text file located at
|
||||
<a href="file:~/.dillo/bm.txt"><code>~/.dillo/bm.txt</code></a>. The file can be
|
||||
modified by using the
|
||||
<a href="dpi:/bm/">Book button</a>
|
||||
in the toolbar and the context menu on a page or link, but they can also be
|
||||
edited manually. Bookmarks are organized into sections and are given a
|
||||
description (usually the page title).</p>
|
||||
|
||||
<p>The syntax of the <code>bm.txt</code> file is described as follows:</p>
|
||||
|
||||
<p>First, the sections are defined at the beginning, prefixed with a
|
||||
<code>:s<em>N</em>:</code> identifier, along with the description of the
|
||||
section:</p>
|
||||
<pre>
|
||||
:s0: News
|
||||
:s1: Blog
|
||||
</pre>
|
||||
<p>Then every bookmark is added in a single line, by writing the section
|
||||
identifier, the URL and a description:</p>
|
||||
<pre>
|
||||
s0 https://slashdot.org Slashdot
|
||||
s0 https://news.ycombinator.com/ Hacker News
|
||||
s1 https://100r.co/site/log.html 100 Rabbits Log
|
||||
</pre>
|
||||
<p>The <code>bm.txt</code> file is designed to be <em>easily</em> read by humans
|
||||
and is suitable to be kept updated among machines by using a version control
|
||||
tool.
|
||||
|
||||
<h3 id="keysrc">Keysrc</h3>
|
||||
|
||||
<p>The mapping of keys in Dillo is controlled by the
|
||||
<a href="file:~/.dillo/keysrc"><code>~/.dillo/keysrc</code></a> file.
|
||||
The format is "<code>key = action</code>" or
|
||||
"<code><modifier>key = action</code>". Lines that begin with a "#" are comments.
|
||||
The commented-out bindings below show the defaults built into Dillo.
|
||||
|
||||
<ul>
|
||||
<li>Modifiers recognized: Shift, Ctrl, Alt, Meta (on Mac OS X use "Meta" for
|
||||
Command).
|
||||
|
||||
<li>Key names recognized: Backspace, Delete, Down, End, Esc, F1 through
|
||||
F12, Home, Insert, Left, Menu, PageDown, PageUp, Print, Return, Right, Space,
|
||||
Tab, Up.
|
||||
|
||||
<li>Multimedia keys: Back, Favorites, Forward, HomePage, Mail, MediaNext,
|
||||
MediaPlay, MediaPrev, MediaStop, Refresh, Search, Sleep, Stop, VolumeDown,
|
||||
VolumeMute, VolumeUp.
|
||||
</ul>
|
||||
|
||||
<p>If Dillo is running under X11, keys whose names are not recognized can be
|
||||
specified using their keysym value in hexadecimal. Use <code>xev</code> to get
|
||||
the keysym, for example:
|
||||
<pre>
|
||||
0x1008ff27 = forward
|
||||
</pre>
|
||||
|
||||
<p>The action "nop" (no operation) can be used to remove a binding.
|
||||
|
||||
<p>Example file:</p>
|
||||
<pre>
|
||||
# "close-all" closes all tabs/windows and exits.
|
||||
<ctrl>q = close-all
|
||||
|
||||
# "left-tab" and "right-tab" switch to the left/right of the current tab.
|
||||
<ctrl><shift>tab = left-tab
|
||||
|
||||
# Use HJKL to move around
|
||||
k = line-up
|
||||
j = line-down
|
||||
h = left
|
||||
l = right
|
||||
</pre>
|
||||
|
||||
<h2 id="advanced-usage">Advanced usage</h2>
|
||||
|
||||
These sections focus on advanced topics and are recommended for experienced
|
||||
users of Dillo.
|
||||
|
||||
<h3 id="plugins">Plugins</h3>
|
||||
<p>The functionality of Dillo can be extended by using plugins, which can
|
||||
translate other formats to HTML, implement new protocols or provide a custom
|
||||
service.</p>
|
||||
|
||||
<p>Plugins can be written in <em>any programming language</em> and they
|
||||
interact with the browser using the
|
||||
<a href="https://dillo-browser.github.io/old/dpi1.html">DPI protocol</a>. A
|
||||
<a href="https://dillo-browser.github.io/#plugins">list of plugins</a>
|
||||
is available on the Dillo website. Some plugins are just a
|
||||
<a href="https://raw.githubusercontent.com/dillo-browser/dillo-plugin-man/master/man.filter.dpi">few
|
||||
lines of shell script</a>, so you are encouraged to read them to learn how to
|
||||
write your own plugins. Plugins are searched by looking for files that end with
|
||||
the <code>.dpi</code> extension (or <code>.dpi.exe</code> in Windows) in
|
||||
<code>~/.dillo/dpi</code> and <code>dpi_dir</code> (see the
|
||||
<a href="#dpidrc">Dpidrc</a> configuration section).</p>
|
||||
|
||||
<p>There are two types of plugins: <em>filters</em> and <em>servers</em>.
|
||||
Filters are executed for each request like a
|
||||
<a href="https://en.wikipedia.org/wiki/Pipeline_(Unix)">UNIX pipe</a>,
|
||||
they read from the
|
||||
standard input and write to the standard output. The name of filter plugin
|
||||
programs must end in <code>.filter.dpi</code>. On the other hand, servers listen
|
||||
on a socket for new requests. They can process several requests at the same
|
||||
time, preventing the overhead of spawning multiple processes and they can easily
|
||||
share information among requests.</p>
|
||||
|
||||
<p>You can install plugins from any third party, but you should always
|
||||
review the source before running code written by others. To install a new
|
||||
plugin, copy the files to <code>~/.dillo/dpi/<em>name</em>/</code> and
|
||||
then associate the <em>name</em> protocol to the program that must run in
|
||||
the
|
||||
<a href="file:~/.dillo/dpidrc"><code>~/.dillo/dpidrc</code></a> file.
|
||||
Plugins may have other software dependencies required for it to work.</p>
|
||||
|
||||
<p>Here is an example of how to manually install the
|
||||
<a href="https://github.com/dillo-browser/dillo-plugin-gemini">Gemini protocol plugin</a>
|
||||
(it comes with a Makefile that automates the process, so this is not necessary),
|
||||
which is a filter plugin written in shell script:</p>
|
||||
<pre>
|
||||
$ mkdir -p ~/.dillo/dpi/gemini
|
||||
$ cp gemini.filter.dpi ~/.dillo/dpi/gemini/
|
||||
$ chmod +x ~/.dillo/dpi/gemini/gemini.filter.dpi
|
||||
$ echo "proto.gemini=gemini/gemini.filter.dpi" >> ~/.dillo/dpidrc
|
||||
$ dpidc stop
|
||||
</pre>
|
||||
<p>Now, when a request is made to an URL that begins with the
|
||||
<code>gemini:</code> protocol, it will be processed by the
|
||||
<code>gemini/gemini.filter.dpi</code> program, and the output will be displayed
|
||||
by Dillo.</p>
|
||||
|
||||
<h3 id="bug-meter">Bug Meter</h3>
|
||||
<p>
|
||||
Dillo includes a
|
||||
<a href='https://dillo-browser.github.io/old/help/bug_meter.html'>bug meter</a>
|
||||
which shows the number of detected bugs inside the page. The bugs are caught at
|
||||
parsing time, so the error messages also show the line where they occur and
|
||||
provide a hint of what was expected instead.
|
||||
<p>
|
||||
The primary purpose of the bug meter is to help webmasters and page authors to
|
||||
polish the contents of their sites with a view to making them
|
||||
compliant with HTML standards.
|
||||
<p>
|
||||
The bug meter is located at the lower right corner of Dillo. Use the left-click
|
||||
to see the messages, right-click for a menu to open other HTML validators.
|
||||
|
||||
<h3 id="keyboard-shortcuts">Keyboard shortcuts</h3>
|
||||
<p>
|
||||
Most actions can be issued by using a keyboard shortcut. The key bindings can be
|
||||
changed in the
|
||||
<code><a href="file:~/.dillo/keysrc">~/.dillo/keysrc</a></code> file (see the
|
||||
<a href="#keysrc">keysrc</a> section).
|
||||
The list of default bindings is given in the following table.
|
||||
<p>
|
||||
<table>
|
||||
<tr><th>Shortcut <th>Mnemonic <th>Function
|
||||
<tr><td>Ctrl-L <td>Location <td>Enter a new URL
|
||||
<tr><td>Ctrl-F <td>Find <td>Find text
|
||||
<tr><td>Ctrl-S <td>Search <td>Search the web
|
||||
<tr><td>Ctrl-R <td>Reload <td>Reload current page
|
||||
<tr><td>Ctrl-N <td>New <td>New browser window
|
||||
<tr><td>Ctrl-T <td>Tab <td>New tab
|
||||
<tr><td>Ctrl-W <td>Window <td>Quit tab/window
|
||||
<tr><td>Ctrl-O <td>Open <td>Open file
|
||||
<tr><td>Ctrl-U <td> <td>View source
|
||||
<tr><td>Ctrl-B <td>Bookmarks <td>View bookmarks
|
||||
<tr><td>Ctrl-Q <td>Quit <td>Quit dillo
|
||||
<tr><td>Ctrl-+ or Ctrl-= <td>Bigger <td>Zoom in
|
||||
<tr><td>Ctrl-- <td>Smaller <td>Zoom out
|
||||
<tr><td>Ctrl-0 <td>100% <td>Reset zoom to 100%
|
||||
<tr><td>Back or "<b>,</b>" <td>< <td>Previous page
|
||||
<tr><td>Shift-Back or "<b>.</b>" <td>> <td>Next page
|
||||
<tr><td>Alt-F <td>File <td>File menu
|
||||
<tr><td>Ctrl-Tab or<br>
|
||||
Ctrl-PageDown <td>Tab <td>Next tab
|
||||
<tr><td>Ctrl-Shift-Tab or<br>
|
||||
Ctrl-PageUp <td>Tab <td>Previous tab
|
||||
<tr><td>Esc <td>escape <td>Close dialog,
|
||||
Close findbar,<br>
|
||||
Hide/show control panels
|
||||
</table>
|
||||
<footer>
|
||||
<p>This manual has been written in HTML <em>by hand</em> using Vim.<br>
|
||||
If you find any issue, please report it via
|
||||
<a href="https://github.com/dillo-browser/dillo/issues/new">GitHub</a> or
|
||||
<a href="mailto:dillo-dev@mailman3.com">email</a>.
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user