A Gemini Browser
Telescope is a Emacs/w3m-inspired browser for the “small internet”
that supports Gemini, Gopher and Finger.
In features some expected stuff (tabs, bookmarks, history, client
certificates, …) with an UI that’s very much Emacs and w3m inspired,
and a privsep design.
There are still various things missing or, if you prefer, various
things that you can help develop :)
One of the great virtues of Gemini is its simplicity. It means that
writing browsers or server is easy and thus a plethora of those
exists. I myself routinely switch between a couple of them, depending
on my mood.
More browsers means more choice for the users, and more stability for
the protocol too.
However, Telescope was ultimately written for fun, on a whim, just to
play with ncurses, libtls, async I/O and the macros from sys/queue.h
,
but I’d like to finish it into a complete Gemini browser.
Telescope aims to use the “Trust, but Verify (where appropriate)”
approach outlined here:
gemini://thfr.info/gemini/modified-trust-verify.gmi.
The idea is to define three level of verification for a certificate:
Most of the time, the trusted
level is enough, but where is
appropriate users should be able to verify out-of-band the
certificate.
At the moment there is no UI for out-of-band verification though.
Telescope depends on ncursesw, libtls or libretls, yacc/bison and
pkg-config. libgrapheme is an optional dependency:
there’s a bundled copy but it’s recommended to install it with a package
manager if available.
To build execute:
$ ./autogen.sh # only from git checkouts
$ ./configure
$ make
$ sudo make install # eventually
The configure script has optional support for building with libraries
provided by your distribution instead of using the bundled versions:
--with-libbsd
: link with libbsd--with-libimsg
: link with the imsg-compat libraryThe default-editor can be changed at build-time with the following option:
--with-default-editor
: defaults to ed(1)
This is useful for distributions such as Debian, which preferssensible-editor(1)
as a wrapper.
This feature is mostly useful with the mini-edit-external
command intelescope
.
Any form of contribution is appreciated, not only patches or bug
reports: feel free to open an issue or send an email totelescope@omarpolo.com
.
If you have a sample configuration, custom theme, a script or anything
that could be helpful to others, consider adding it to the contrib
directory.
Consider also joining the official
irc channel,#telescope
on libera.chat!
Telescope stores user files according to the XDG Base Directory
Specification by default. The usage and contents of these files
are described in the man page, under “FILES”.
At the moment, only one instance of Telescope can be running at time per
user.
Telescope is distributed under a BSD-style licence. The main code is
either under the ISC or is Public Domain, but some files under compat/
are 3-Clause BSD or MIT. See the first few lines of every file orabout:license
inside telescope for the copyright information.
data/emoji.txt
is copyright © 2022 Unicode, Inc. and distributed
under the UNICODE, Inc license agreement.