Blob


1 .\" Copyright (c) 2021 Omar Polo <op@omarpolo.com>
2 .\"
3 .\" Permission to use, copy, modify, and distribute this software for any
4 .\" purpose with or without fee is hereby granted, provided that the above
5 .\" copyright notice and this permission notice appear in all copies.
6 .\"
7 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 .Dd $Mdocdate: August 14 2021$
15 .Dt TELESCOPE 1
16 .Os
17 .Sh NAME
18 .Nm telescope
19 .Nd multi-protocol browser
20 .Sh SYNOPSIS
21 .Nm
22 .Bk -words
23 .Op Fl Chnv
24 .Op Fl c Pa config
25 .Op Ar URL
26 .Ek
27 .Sh DESCRIPTION
28 .Nm
29 is an interactive browser that supports the Finger, Gemini and Gopher
30 protocols.
31 .Nm
32 features tabs, a minibuffer, interactive completions, bookmarks and
33 out-of-band TOFU verification.
34 .Pp
35 The arguments are as follows:
36 .Bl -tag -width xxxxxxxxxxxxx
37 .It Fl C , Fl -colors
38 Show all available colors and exit.
39 .It Fl c Pa config
40 Specify an alternative configuration file.
41 By default
42 .Pa $HOME/.telescope/config
43 is loaded.
44 .It Fl h , Fl -help
45 Display version and usage.
46 .It Fl n
47 Configtest mode.
48 Only check the configuration file for validity.
49 .It Fl v , Fl -version
50 Display version.
51 .El
52 .Sh UI CONCEPTS
53 .Nm
54 interface is divided into four areas: the tabline, the body, the
55 modeline and the echoarea/minibuffer.
56 .Pp
57 The tabline is always at the top of the screen and displays the tabs
58 separated by a vertical line.
59 When there are more tabs than the size of the window allow to display,
60 the characters
61 .Sq \&<
62 or
63 .Sq \&>
64 are shown at the start/end of the tabline to indicate that there are
65 more tabs in that direction.
66 .Pp
67 The body occupies the majority of the visible area.
68 It contains the current page and optionally a side window.
69 .Pp
70 The modeline is the second to last row of the screen.
71 It shows some information about the page: a spinner when the page is
72 loading, the trust level, the document type, the scroll offset and the
73 URL.
74 .Pp
75 The echoarea is usually the last line of the screen.
76 Messages are often showed there, and link addresses too.
77 The echoarea is also used to obtain input from the user.
78 When commands like
79 .Ic swiper
80 or
81 .Ic link-select
82 are invoked, the minibuffer area grows to show possible completions.
83 .Sh TOFU
84 .Nm
85 aims to use the
86 .Dq Trust, but Verify Pq where appropriate
87 approach for
88 TOFU
89 .Pq Dq Trust On First Use .
90 The idea is to define three level of verification for a certificate:
91 .Bl -tag -width 12m
92 .It untrusted
93 .Pq Sq \&!
94 the server fingerprint does NOT match the stored value.
95 .It trusted
96 .Pq Sq v
97 the server fingerprint matches the store one.
98 .It verified
99 .Pq Sq V
100 the fingerprint matches and has been verified out-of-band.
101 .El
102 .Pp
103 The trust level of the page is indicated in the modeline with the
104 indicated character.
105 .Pp
106 Most of the time the
107 .Dq trusted
108 level is enough, but where is appropriate users should be able to
109 verify out-of-band the certificate.
110 .Pp
111 At the moment, there is no built-in support for an out-of-band
112 verification though.
113 .Sh SUPPORTED PROTOCOLS
114 The following protocols are supported:
115 .Bl -tag -width gemini://
116 .It about:
117 About pages are
118 .Nm
119 internal page.
120 See about:about for a list of all these pages.
121 .It file://
122 File types know to
123 .Nm ,
124 such as .gmi, .gemini, .txt, .md, .markdown, .diff or .patch, can be
125 viewed inside the application.
126 Types of local files are detected solely based on the file extension.
127 On some systems, such as
128 .Ox ,
129 only files inside special directories
130 .Pq like Pa /tmp No or Pa ~/Downloads
131 are available.
132 .It finger://
133 Finger URLs are interpreted as follows:
134 .Bl -bullet -compact
135 .It
136 the host is determined by the host name portion of the URL
137 .It
138 if the user portion of the URL is provided, it's interpreted as the
139 user to finger, otherwise the path component will be used
140 .El
141 thus
142 .Lk finger://user@hostname
143 and
144 .Lk finger://hostname/user
145 are treated as the same URL.
146 .It gemini://
147 Gemini is fully supported, with the exception of client-certificates.
148 .It gopher://
149 Gopher support is limited to items type 0, 1 and 7.
150 All text is assumed to be encoded in UTF-8 (or ASCII).
151 .El
152 .Pp
153 User-entered URLs, given as argument on the command line or entered
154 with
155 .Ic load-url ,
156 are intepreted with a simple heuristic:
157 .Bl -bullet -compact
158 .It
159 if it's a proper absolute URL then use it as-is,
160 .It
161 if it starts with
162 .Dq ./
163 or
164 .Dq /
165 assume it's a file:// URL,
166 .It
167 otherwise assume it's a Gemini URL.
168 .El
169 .Sh DEFAULT KEY BINDINGS
170 The default key bindings are very similar to GNU Emacs, but care has
171 been taken to include also bindings familiar for
172 .Xr vi 1
173 and
174 .Dq CUA
175 users.
176 In the following examples, C-x means Control-x, M-x means Meta-x,
177 where the Meta key may be either a special key on the keyboard or the
178 ALT key; otherwise ESC followed by the key X works as well, and C-M-x
179 means to press the key X together with both Control and Meta.
180 .Pp
181 Keys are usually a single character, like
182 .Sq p
183 or
184 .Sq n ,
185 but some special keys are accepted as well.
186 .Pp
187 .Bl -tag -width 16m -offset indent -compact
188 .It <up>
189 Up arrow
190 .It <down>
191 Down arrow
192 .It <left>
193 Left arrow
194 .It <right>
195 Right arrow
196 .It <prior>
197 Previous page/Page up
198 .It <next>
199 Next page/Page down
200 .It <home>
201 Home
202 .It <end>
203 End
204 .It <f0> thru <f63>
205 Function keys
206 .It del or backspace
207 Backspace
208 .It esc
209 Escape
210 .It space or spc
211 Space
212 .It enter or ret
213 Enter
214 .It tab
215 Tab
216 .It backtab
217 Depends on the configuration of the terminal emulator; usually shift
218 tab.
219 .El
220 .Ss GNU Emacs-like keys
221 .Bl -tag -width xxxxxxxxxxxx -offset indent -compact
222 .It C-p
223 previous-line
224 .It C-n
225 next-line
226 .It C-f
227 forward-char
228 .It C-b
229 backward-char
230 .It M-{
231 backward-paragraph
232 .It M-}
233 forward-paragraph
234 .It C-a
235 move-beginning-of-line
236 .It C-e
237 move-end-of-line
238 .It M-v, M-space
239 scroll-up
240 .It C-v, space
241 scroll-down
242 .It M-<
243 beginning-of-buffer
244 .It M->
245 end-of-buffer
246 .It C-x C-c
247 kill-telescope
248 .It C-g
249 clear-minibuf
250 .It M-x
251 execute-extended-command
252 .It C-c {
253 dec-fill-column
254 .It C-c }
255 inc-fill-column
256 .It C-c p
257 previous-heading
258 .It C-c n
259 next-heading
260 .It >
261 load-url
262 .It <
263 load-current-url
264 .It C-x C-f
265 load-url
266 .It C-x M-f
267 load-current-url
268 .It C-x o
269 other-window
270 .It C-x t 0
271 tab-close
272 .It C-x t 1
273 tab-close-other
274 .It C-x t 2
275 tab-new
276 .It C-x t o
277 tab-next
278 .It C-x t O
279 tab-previous
280 .It C-x t m
281 tab-move
282 .It C-x t M
283 tab-move-to
284 .It B, C-M-b
285 previous-page
286 .It F, C-M-f
287 next-page
288 .It <f7> a
289 bookmark-page
290 .It <f7> <f7>
291 list-bookmarks
292 .It C-z
293 suspend-telescope
294 .El
295 .Ss Xr vi 1 Ns -like keys
296 .Bl -tag -width xxxxxxxxxxxx -offset indent -compact
297 .It k
298 previous-line
299 .It j
300 next-line
301 .It l
302 forward-char
303 .It h
304 backward-char
305 .It {
306 backward-paragraph
307 .It }
308 forward-paragraph
309 .It ^
310 move-beginning-of-line
311 .It $
312 move-end-of-line
313 .It K
314 scroll-line-up
315 .It J
316 scroll-line-down
317 .It g g
318 beginning-of-buffer
319 .It G
320 end-of-buffer
321 .It g D
322 tab-close
323 .It g N
324 tab-new
325 .It g t
326 tab-next
327 .It g T
328 tab-previous
329 .It g M-t
330 tab-move
331 .It g M-T
332 tab-move-to
333 .It H
334 previous-page
335 .It L
336 next-page
337 .It q
338 kill-telescope
339 .It ESC
340 clear-minibuf
341 .It :
342 execute-extended-command
343 .El
344 .Ss CUA-like keys
345 .Bl -tag -width xxxxxxxxxxxx -offset indent -compact
346 .It <up>
347 previous-line
348 .It <down>
349 next-line
350 .It <right>
351 forward-char
352 .It <left>
353 backward-char
354 .It <home>
355 move-beginning-of-line
356 .It <end>
357 move-end-of-line
358 .It <prior>
359 scroll-up
360 .It <next>
361 scroll-down
362 .It C-w
363 tab-close
364 .It C-t
365 tab-new
366 .It M-<prior>
367 tab-previous
368 .It M-<next>
369 tab-next
370 .It M-<left>
371 previous-page
372 .It M-<right>
373 next-page
374 .It <f5>
375 reload-page
376 .It r
377 reload-page
378 .El
379 .Ss Neither Emacs nor vi specific
380 .Bl -tag -width xxxxxxxxxxxx -offset indent -compact
381 .It <f1>
382 toggle-help
383 .It enter
384 push-button
385 .It M-enter
386 push-button-new-tab
387 .It M-tab
388 previous-button
389 .It backtab
390 previous-button
391 .It tab
392 next-button
393 .It M-t
394 tab-select
395 .It \&[
396 tab-previous
397 .It \&]
398 tab-next
399 .It M-l
400 link-select
401 .It M-/
402 swiper
403 .El
404 .Ss Minibuffer-specific keys
405 .Bl -tag -width xxxxxxxxxxxx -offset indent -compact
406 .It enter
407 mini-complete-and-exit
408 .It C-g
409 mini-abort
410 .It ESC
411 mini-abort
412 .It C-d
413 mini-delete-char
414 .It del
415 mini-delete-backward-char
416 .It backspace
417 mini-delete-backward-char
418 .It C-h
419 mini-delete-backward-char
420 .It C-b
421 backward-char
422 .It C-f
423 forward-char
424 .It <left>
425 backward-char
426 .It <right>
427 forward-char
428 .It C-e
429 move-end-of-line
430 .It C-a
431 move-beginning-of-line
432 .It <end>
433 move-end-of-line
434 .It <home>
435 move-beginning-of-line
436 .It C-k
437 mini-kill-line
438 .It M-p
439 mini-previous-history-element
440 .It M-n
441 mini-next-history-element
442 .It C-p
443 previous-completion
444 .It C-n
445 next-completion
446 .It <up>
447 previous-completion
448 .It <down>
449 next-completion
450 .It tab
451 insert-current-candidate
452 .It M-<
453 mini-goto-beginning
454 .It M->
455 mini-goto-end
456 .El
457 .Sh INTERACTIVE COMMANDS
458 Follows the documentation for the interactive commands.
459 These commands can be bound to a key or executed with
460 .Ic execute-extended-command .
461 .Ss Movement commands
462 .Bl -tag -width execute-extended-command -compact
463 .It Ic backward-char
464 Move point one character backward.
465 .It Ic backward-paragraph
466 Move point one paragraph backward.
467 .It Ic beginning-of-buffer
468 Move point to the beginning of the buffer.
469 .It Ic end-of-buffer
470 Move point to the end of the buffer.
471 .It Ic forward-char
472 Move point one character forward.
473 .It Ic forward-paragraph
474 Move point one paragraph forward.
475 .It Ic insert-current-candidate
476 Copy the current selection text as minibuffer input.
477 .It Ic move-beginning-of-line
478 Move point at the beginning of the current (visual) line.
479 .It Ic move-end-of-line
480 Move point at the end of the current (visual) line.
481 .It Ic next-button
482 Move point to the next link.
483 .It Ic next-completion
484 Select the next completion.
485 .It Ic next-heading
486 Move point to the next heading.
487 .It Ic next-line
488 Move point to the next (visual) line, in the same column if possible.
489 .It Ic previous-button
490 Move point to the previous link.
491 .It Ic previous-completion
492 Select the previous completion.
493 .It Ic previous-heading
494 Move point to the previous heading.
495 .It Ic previous-line
496 Move point to the previous (visual) line.
497 .El
498 .Ss Bookmark-related commands
499 .Bl -tag -width execute-extended-command -compact
500 .It Ic bookmark-page
501 Save a page in the bookmark file.
502 It preloads the minibuffer with the current URL.
503 .It Ic list-bookmarks
504 Load the bookmarks page.
505 .El
506 .Ss Tab-related commands
507 .Bl -tag -width execute-extended-command -compact
508 .It Ic tab-close
509 Close the current tab.
510 .It Ic tab-close-other
511 Close all tabs but the current one.
512 .It Ic tab-move
513 Move the current tab after the next one, wrapping around if
514 needed.
515 .It Ic tab-move-to
516 Move the current tab before the previous one, wrapping around if needed.
517 .It Ic tab-new
518 Open a new tab.
519 .It Ic tab-next
520 Focus next tab, wrapping around eventually.
521 .It Ic tab-previous
522 Focus the previous tab, wrapping around eventually.
523 .It Ic tab-select
524 Switch to a tab using the minibuffer.
525 .El
526 .Ss Misc commands
527 .Bl -tag -width execute-extended-command -compact
528 .It Ic clear-minibuf
529 Clear the echo area.
530 .It Ic dec-fill-column
531 Decrement fill-column by two.
532 .It Ic execute-extended-command
533 Execute an internal command.
534 .It Ic kill-telescope
535 Quit
536 .Nm .
537 .It Ic inc-fill-column
538 Increment fill-column by two.
539 .It Ic link-select
540 Select and visit a link using the minibuffer.
541 .It Ic load-current-url
542 Edit the current URL.
543 .It Ic load-url
544 Prompt for an URL.
545 .It Ic next-page
546 Go forward in the page history.
547 .It Ic olivetti-mode
548 Toggle olivetti mode (i.e. horizontal centering of the lines of the
549 window.)
550 .It Ic other-window
551 Select the other window.
552 .It Ic previous-page
553 Go backward in the page history.
554 .It Ic push-button
555 Follow link at point, or toggle the visibility of the following
556 preformatted block if called when the cursor is on the heading of the block.
557 .It Ic push-button-new-tab
558 Follow link at point in a new tab.
559 .It Ic redraw
560 Redraw the screen, useful if some background program messed up the
561 display.
562 .It Ic reload-page
563 Reload the current page.
564 .It Ic scroll-down
565 Scroll down by one visual page.
566 .It Ic scroll-line-down
567 Scroll down by one line.
568 .It Ic scroll-line-up
569 Scroll up by one line.
570 .It Ic scroll-up
571 Scroll up by one visual page.
572 .It Ic suspend-telescope
573 Suspend the current
574 .Nm
575 session.
576 .It Ic swiper
577 Jump to a line using the minibuffer.
578 .It Ic toc
579 Jump to a heading using the minibuffer.
580 .It Ic toggle-help
581 Toggle side window with help about available keys and their associated
582 interactive command.
583 .It Ic toggle-pre-wrap
584 Toggle the wrapping of preformatted blocks.
585 .El
586 .Ss Minibuffer commands
587 .Bl -tag -width execute-extended-command -compact
588 .It Ic mini-abort
589 Abort the current minibuffer action.
590 .It Ic mini-complete-and-exit
591 Complete the current minibuffer action.
592 .It Ic mini-delete-backward-char
593 Delete the character before the point.
594 .It Ic mini-delete-char
595 Delete the character after the point.
596 .It Ic mini-goto-beginning
597 Select the first completion, if any.
598 .It Ic mini-goto-end
599 Select the last completion, if any.
600 .It Ic mini-kill-line
601 Delete from point until the end of the line.
602 .It Ic mini-next-history-element
603 Load the previous history element.
604 .It Ic mini-previous-history-element
605 Load the next history element.
606 .El
607 .Ss Aliases
608 The following aliases are available during
609 .Ic execute-extended-command :
610 .Bl -tag -width 16m -compact
611 .It Ic tabn
612 .Ic tab-next
613 .It Ic tabnew
614 .Ic tab-new
615 .It Ic tabp
616 .Ic tab-previous
617 .It Ic q No and Ic wq
618 .Ic kill-telescope
619 .El
620 .Sh CONFIGURATION FILE
621 During the startup,
622 .Nm
623 reads the configuration file at
624 .Pa ~/.telescope/config
625 or the one given with the
626 .Fl c
627 flag.
628 .Pp
629 .Nm
630 will also load a file called
631 .Pa config-TERM ,
632 where
633 .Dq TERM
634 is the name of the terminal type
635 .Pq i.e. the TERM environment variable ,
636 if it exists.
637 .Pp
638 The format of the configuration file is fairly flexible.
639 The current line can be extended over multiple ones using a
640 backslash
641 .Pq Sq \e .
642 Comments can be put anywhere in the file using a hash mark
643 .Pq Sq # ,
644 and extend to the end of the current line, but backslashes can't be
645 used to extend comments over multiple lines.
646 .Pp
647 The following constructs are available:
648 .Bl -tag -width Ds
649 .It Ic bind Ar map Ar key Ar cmd
650 Bind
651 .Ar key
652 to the function
653 .Ar cmd
654 in the keymap
655 .Ar map .
656 Valid values for map are
657 .Dq global-map
658 .Pq i.e. when the user is viewing a page
659 and
660 .Dq minibuffer-map
661 .Pq i.e. when the minibuffer has the focus.
662 .Ar key
663 follows the same syntax described in
664 .Sx DEFAULT KEY BINDINGS
665 and all the possible functions are listed in
666 .Sx INTERACTIVE COMMANDS .
667 .It Ic proxy Ar proto Ic via Ar url
668 Use
669 .Ar url
670 as proxy for all URLs with
671 protocol
672 .Ar proto .
673 .Ar url
674 must be a Gemini URI without path, query and fragment component.
675 .It Ic set Ar opt No = Ar val
676 Set the option
677 .Ar opt
678 to the value
679 .Ar val .
680 Valid options are:
681 .Pp
682 .Bl -tag -width twelveletters -compact
683 .It autosave
684 .Pq integer
685 If greater than zero, save the session after the specified amount of
686 seconds after some events happens
687 .Pq new or closed tabs, visited a link ...
688 Defaults to 20.
689 .It dont-wrap-pre
690 .Pq integer
691 If nonzero, don't wrap preformatted blocks.
692 Defaults to 0.
693 .It emojify-link
694 .Pq integer
695 If nonzero, when the text of a link starts with an emoji followed by a
696 space, use that emoji as line prefix.
697 Defaults to 1.
698 .It enable-colors
699 .Pq integer
700 If nonzero, enable colours.
701 Defaults to 0 if
702 .Ev NO_COLORS
703 is set, 1 otherwise.
704 .It fill-column
705 .Pq integer
706 If greater than zero, lines of text will be formatted in a way that
707 don't exceed the given number of columns.
708 Defaults to 80.
709 .It hide-pre-blocks
710 .Pq integer
711 If nonzero, hide by default the body of the preformatted blocks.
712 Defaults to zero.
713 .Ic push-button
714 can be used to toggle the visibility per-block.
715 .It hide-pre-closing-line
716 .Pq integer
717 If nonzero, hide the closing line of preformatted blocks.
718 Defaults to 0.
719 .It hide-pre-context
720 .Pq integer
721 If nonzero, hide the start and end line of the preformatted blocks.
722 If both hide-pre-context and hide-pre-blocks are nonzero, preformatted
723 blocks are irremediably hidden.
724 Defaults to zero.
725 .It new-tab-url
726 .Pq string
727 URL for the new tab page.
728 Defaults to
729 .Dq about:new .
730 .It olivetti-mode
731 .Pq integer
732 If nonzero, enable
733 .Ic olivetti-mode
734 Defaults to 1.
735 .It set-title
736 .Pq integer
737 If nonzero, set the terminal title to the page title.
738 Defaults to 1.
739 .El
740 .It Ic style Ar name Ar option
741 Change the styling of the element identified by
742 .Ar name .
743 Multiple options may be specified within curly braces.
744 Valid style identifiers are:
745 .Bl -tag -width line.compl.current -compact -offset Ds
746 .It line
747 the area outside the lines in the body of the page.
748 .It line.compl
749 the completions.
750 .It line.compl.current
751 the current completion.
752 .It line.help
753 text in the *Help* buffer.
754 .It line.text
755 text lines.
756 .It line.link
757 link lines.
758 .It line.title1..3
759 headings
760 .It line.item
761 item lines.
762 .It line.quote
763 quotes.
764 .It line.pre.start
765 the heading of a preformatted block.
766 .It line.pre
767 the content of a preformatted block.
768 .It line.pre.end
769 the closing line of a preformatted block.
770 .It minibuffer
771 the minibuffer.
772 .It modeline
773 the modeline.
774 .It tabline
775 the tabline.
776 .It tabline.tab
777 the non-focused tabs.
778 .It tabline.current
779 the focused tab.
780 .El
781 .Pp
782 Valid options are:
783 .Bl -tag -width Ds
784 .It Ic attr Ar prefix Oo Ar line Oo Ar trail Oc Oc
785 Sets the text attributes.
786 If only one value is given,
787 .Ar line
788 and
789 .Ar trail
790 default to that; if two values are given then
791 .Ar trail
792 defaults to
793 .Ar prefix .
794 Each attribute is a comma-separated list of keywords:
795 .Bl -tag -width underline -compact -offset Ds
796 .It Ic normal
797 no attributes.
798 .It Ic standout
799 best highlighting mode for the terminal.
800 .It Ic underline
801 underlines the text.
802 .It Ic reverse
803 reverses background/foreground colors.
804 .It Ic blink
805 makes the text blinking.
806 .It Ic dim
807 half bright.
808 .It Ic bold
809 extra bright or bold.
810 .El
811 .Pp
812 Only the style identifiers with the
813 .Dq line.
814 prefix accept up to three attributes.
815 The other will only use the first one given.
816 .It Ic bg Ar prefix Oo Ar line Oo Ar trail Oc Oc
817 Sets the background color.
818 Follows the same behaviour as
819 .Ic attr
820 regarding the optional parameters.
821 The colour is one of black, red, green, yellow, blue,
822 magenta, cyan and white; colour0 to colour255
823 .Pq or color0 to color255
824 from the 256-colour set;
825 default for the default colour.
826 .It Ic fg Ar prefix Oo Ar line Oo Ar trail Oc Oc
827 Sets the foreground color.
828 It behaves just like
829 .Ic bg .
830 .It Ic prefix Ar prfx Op Ar cont
831 Sets the prefix for the current line type to
832 .Ar prfx
833 and
834 .Ar cont
835 as the prefix for the continuation lines
836 .Pq i.e. when a long line gets wrapped.
837 If
838 .Ar cont
839 is not given its value will be the same of
840 .Ar prfx .
841 .El
842 .El
843 .Sh ENVIRONMENT
844 When
845 .Nm
846 is started, it inspects the following environment variables:
847 .Bl -tag -width NO_COLORS
848 .It Ev HOME
849 The user's login directory.
850 .It Ev NO_COLORS
851 To decide whether to use colors or not.
852 The content of the variable doesn't matter.
853 .It Ev TERM
854 The user's terminal name.
855 .El
856 .Sh FILES
857 .Bl -tag -width Ds -compact
858 .It Pa ~/.telescope/bookmarks.gmi
859 Bookmarks file.
860 .It Pa ~/.telescope/config
861 Default configuration file.
862 .It Pa ~/.telescope/known_hosts
863 Hash of the certificates for all the known hosts.
864 Each line contains three fields: hostname with optional port number,
865 hash of the certificate and a numeric flag.
866 .It Pa ~/.telescope/lock
867 Lock file used to prevent multiple instance of
868 .Nm
869 from running at the same time.
870 .It Pa ~/.telescope/pages/about_*.gmi
871 Overrides for built-in about: pages.
872 .It Pa ~/.telescope/session
873 The list of tabs from the last session.
874 Every line identifies a tab and contains three space-separated fields:
875 the full URL, a comma-separated list of attributes and the cached
876 title.
877 Is written by
878 .Ic kill-telescope
879 and loaded during startup.
880 .El
881 .Sh EXAMPLES
882 It's possible to browse
883 .Dq the small web
884 .Pq i.e. simple websites
885 by using programs like the duckling-proxy by defining a proxy in
886 .Pa ~/.telescope/config :
887 .Bd -literal -offset indent
888 proxy http via "gemini://127.0.0.1:1965"
889 proxy https via "gemini://127.0.0.1:1965"
890 .Ed
891 .Pp
892 To load
893 .Nm
894 without any configuration
895 .Bd -literal -offset indent
896 telescope -c /dev/null
897 .Ed
898 .Sh AUTHORS
899 .An -nosplit
900 The
901 .Nm
902 program was written by
903 .An Omar Polo Aq Mt op@omarpolo.com .
904 .Sh BUGS
905 There's no UI for out-of-band certificates validation.