Blame


1 cc9bf8f2 2021-11-05 op <!doctype html>
2 cc9bf8f2 2021-11-05 op <html lang="en">
3 cc9bf8f2 2021-11-05 op <head>
4 cc9bf8f2 2021-11-05 op <title>Telescope</title>
5 cc9bf8f2 2021-11-05 op <meta charset="utf8">
6 cc9bf8f2 2021-11-05 op <meta name="viewport" content="width=device-width, initial-scale=1">
7 cc9bf8f2 2021-11-05 op <style>
8 cc9bf8f2 2021-11-05 op body {
9 cc9bf8f2 2021-11-05 op font-family: monospace;
10 cc9bf8f2 2021-11-05 op font-size: 14px;
11 cc9bf8f2 2021-11-05 op max-width: 780px;
12 cc9bf8f2 2021-11-05 op margin: 0 auto;
13 cc9bf8f2 2021-11-05 op padding: 20px;
14 cc9bf8f2 2021-11-05 op padding-bottom: 80px;
15 cc9bf8f2 2021-11-05 op }
16 cc9bf8f2 2021-11-05 op
17 cc9bf8f2 2021-11-05 op h1::before {
18 cc9bf8f2 2021-11-05 op content: "# ";
19 cc9bf8f2 2021-11-05 op }
20 cc9bf8f2 2021-11-05 op
21 cc9bf8f2 2021-11-05 op h2 {
22 cc9bf8f2 2021-11-05 op margin-top: 40px;
23 cc9bf8f2 2021-11-05 op }
24 cc9bf8f2 2021-11-05 op
25 cc9bf8f2 2021-11-05 op h2::before {
26 cc9bf8f2 2021-11-05 op content: "## ";
27 cc9bf8f2 2021-11-05 op }
28 cc9bf8f2 2021-11-05 op
29 cc9bf8f2 2021-11-05 op h3::before {
30 cc9bf8f2 2021-11-05 op content: "### ";
31 cc9bf8f2 2021-11-05 op }
32 cc9bf8f2 2021-11-05 op
33 cc9bf8f2 2021-11-05 op blockquote {
34 cc9bf8f2 2021-11-05 op margin: 0;
35 cc9bf8f2 2021-11-05 op padding: 0;
36 cc9bf8f2 2021-11-05 op }
37 cc9bf8f2 2021-11-05 op
38 cc9bf8f2 2021-11-05 op blockquote::before {
39 cc9bf8f2 2021-11-05 op content: "> ";
40 cc9bf8f2 2021-11-05 op }
41 cc9bf8f2 2021-11-05 op
42 cc9bf8f2 2021-11-05 op blockquote p {
43 cc9bf8f2 2021-11-05 op font-style: italic;
44 cc9bf8f2 2021-11-05 op display: inline;
45 cc9bf8f2 2021-11-05 op }
46 cc9bf8f2 2021-11-05 op
47 cc9bf8f2 2021-11-05 op p.link::before {
48 cc9bf8f2 2021-11-05 op content: "→ ";
49 cc9bf8f2 2021-11-05 op }
50 cc9bf8f2 2021-11-05 op
51 cc9bf8f2 2021-11-05 op hr {
52 cc9bf8f2 2021-11-05 op border: 0;
53 cc9bf8f2 2021-11-05 op height: 1px;
54 cc9bf8f2 2021-11-05 op background-color: #222;
55 cc9bf8f2 2021-11-05 op width: 100%;
56 cc9bf8f2 2021-11-05 op display: block;
57 cc9bf8f2 2021-11-05 op margin: 2em auto;
58 cc9bf8f2 2021-11-05 op }
59 cc9bf8f2 2021-11-05 op
60 cc9bf8f2 2021-11-05 op pre {
61 cc9bf8f2 2021-11-05 op overflow: auto;
62 cc9bf8f2 2021-11-05 op }
63 cc9bf8f2 2021-11-05 op
64 cc9bf8f2 2021-11-05 op pre.banner {
65 cc9bf8f2 2021-11-05 op display: flex;
66 cc9bf8f2 2021-11-05 op flex-direction: row;
67 cc9bf8f2 2021-11-05 op justify-content: center;
68 cc9bf8f2 2021-11-05 op }
69 cc9bf8f2 2021-11-05 op
70 cc9bf8f2 2021-11-05 op code, kbd {
71 cc9bf8f2 2021-11-05 op color: #9d109d;
72 cc9bf8f2 2021-11-05 op }
73 cc9bf8f2 2021-11-05 op
74 cc9bf8f2 2021-11-05 op img {
75 cc9bf8f2 2021-11-05 op display: block;
76 cc9bf8f2 2021-11-05 op margin: 0 auto;
77 cc9bf8f2 2021-11-05 op max-width: 100%;
78 cc9bf8f2 2021-11-05 op }
79 cc9bf8f2 2021-11-05 op
80 cc9bf8f2 2021-11-05 op @media (prefers-color-scheme: dark) {
81 cc9bf8f2 2021-11-05 op body {
82 cc9bf8f2 2021-11-05 op background-color: #222;
83 cc9bf8f2 2021-11-05 op color: white;
84 cc9bf8f2 2021-11-05 op }
85 cc9bf8f2 2021-11-05 op
86 cc9bf8f2 2021-11-05 op img {
87 cc9bf8f2 2021-11-05 op filter: brightness(0.65);
88 cc9bf8f2 2021-11-05 op transition: filter 0.2s ease-in-out;
89 cc9bf8f2 2021-11-05 op }
90 cc9bf8f2 2021-11-05 op
91 cc9bf8f2 2021-11-05 op img:hover {
92 cc9bf8f2 2021-11-05 op filter: brightness(1.0);
93 cc9bf8f2 2021-11-05 op }
94 cc9bf8f2 2021-11-05 op
95 cc9bf8f2 2021-11-05 op a {
96 cc9bf8f2 2021-11-05 op color: aqua;
97 cc9bf8f2 2021-11-05 op }
98 cc9bf8f2 2021-11-05 op
99 cc9bf8f2 2021-11-05 op hr {
100 cc9bf8f2 2021-11-05 op background-color: #ddd;
101 cc9bf8f2 2021-11-05 op }
102 cc9bf8f2 2021-11-05 op
103 cc9bf8f2 2021-11-05 op code, kbd {
104 cc9bf8f2 2021-11-05 op color: #ff4cff;
105 cc9bf8f2 2021-11-05 op }
106 cc9bf8f2 2021-11-05 op }
107 cc9bf8f2 2021-11-05 op
108 cc9bf8f2 2021-11-05 op @media (max-width: 400px) {
109 cc9bf8f2 2021-11-05 op pre.banner { font-size: 9px; }
110 cc9bf8f2 2021-11-05 op }
111 cc9bf8f2 2021-11-05 op
112 cc9bf8f2 2021-11-05 op @media (max-width: 500px) {
113 cc9bf8f2 2021-11-05 op pre.banner { font-size: 10px; }
114 cc9bf8f2 2021-11-05 op }
115 cc9bf8f2 2021-11-05 op </style>
116 cc9bf8f2 2021-11-05 op </head>
117 cc9bf8f2 2021-11-05 op <body>
118 cc9bf8f2 2021-11-05 op <header>
119 cc9bf8f2 2021-11-05 op <nav>
120 cc9bf8f2 2021-11-05 op Home | <a href="/gallery/">Gallery</a> | <a href="telescope.1.html">Docs</a>
121 cc9bf8f2 2021-11-05 op </nav>
122 cc9bf8f2 2021-11-05 op </header>
123 cc9bf8f2 2021-11-05 op <pre class="banner"> _______ __
124 cc9bf8f2 2021-11-05 op |_ _|.-----.| |.-----.-----.----.-----.-----.-----.
125 cc9bf8f2 2021-11-05 op | | | -__|| || -__|__ --| __| _ | _ | -__|
126 cc9bf8f2 2021-11-05 op |___| |_____||__||_____|_____|____|_____| __|_____|
127 56274e43 2022-05-25 op |__| v0.8.1</pre>
128 cc9bf8f2 2021-11-05 op <blockquote>
129 cc9bf8f2 2021-11-05 op <p>Telescope is a w3m-like browser for Gemini</p>
130 cc9bf8f2 2021-11-05 op </blockquote>
131 cc9bf8f2 2021-11-05 op <p>
132 cc9bf8f2 2021-11-05 op Telescope is written entirely for fun, as a hobbystic project in
133 cc9bf8f2 2021-11-05 op my free time. As such, it lacks a ton of features you’ll find
134 cc9bf8f2 2021-11-05 op in more mature Gemini browsers, but it also has some unique
135 cc9bf8f2 2021-11-05 op ones.
136 cc9bf8f2 2021-11-05 op </p>
137 cc9bf8f2 2021-11-05 op <p>
138 cc9bf8f2 2021-11-05 op The UI is strongly inspired from Emacs and W3M, so you’ll find
139 cc9bf8f2 2021-11-05 op some familiar concepts, such as the minibuffer or the tabline,
140 cc9bf8f2 2021-11-05 op and the default keybindigs also reflect this, but keys familiar
141 cc9bf8f2 2021-11-05 op for vi and CUA users are also present by default.
142 cc9bf8f2 2021-11-05 op </p>
143 cc9bf8f2 2021-11-05 op <p>
144 cc9bf8f2 2021-11-05 op <a href="https://asciinema.org/a/426862" target="_blank">
145 cc9bf8f2 2021-11-05 op <img src="https://asciinema.org/a/426862.svg" />
146 cc9bf8f2 2021-11-05 op </a>
147 cc9bf8f2 2021-11-05 op </p>
148 cc9bf8f2 2021-11-05 op <h2>Install</h2>
149 cc9bf8f2 2021-11-05 op <p>Some distros provide a package — thanks to the maintainers!</p>
150 cc9bf8f2 2021-11-05 op <a href="https://repology.org/project/telescope/versions">
151 cc9bf8f2 2021-11-05 op <img src="https://repology.org/badge/vertical-allrepos/telescope.svg" alt="Packaging status">
152 cc9bf8f2 2021-11-05 op </a>
153 d9bfe90a 2022-01-13 op <p>Source code and precompiled binaries for linux are available:</p>
154 cc9bf8f2 2021-11-05 op <ul>
155 cc9bf8f2 2021-11-05 op <li>
156 56274e43 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8.1/telescope-0.8.1.tar.gz">
157 56274e43 2022-05-25 op telescope-0.8.1.tar.gz
158 cc9bf8f2 2021-11-05 op </a>
159 cc9bf8f2 2021-11-05 op </li>
160 d9bfe90a 2022-01-13 op <li>
161 d7905c75 2022-07-18 op <a href="https://git.omarpolo.com/?index_page=&path=telescope.git&action=summary">git repository</a>
162 d9bfe90a 2022-01-13 op </li>
163 d9bfe90a 2022-01-13 op <li>
164 d7905c75 2022-07-18 op <a href="https://codeberg.org/op/telescope">Codeberg mirror</a>
165 d7905c75 2022-07-18 op </li>
166 d7905c75 2022-07-18 op <li>
167 d9bfe90a 2022-01-13 op <a href="https://github.com/omar-polo/telescope">GitHub mirror</a>
168 d9bfe90a 2022-01-13 op </li>
169 d9bfe90a 2022-01-13 op <li>
170 c6da5dc9 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8/telescope.amd64">
171 d9bfe90a 2022-01-13 op telescope.amd64
172 d9bfe90a 2022-01-13 op </a>
173 d9bfe90a 2022-01-13 op </li>
174 cc9bf8f2 2021-11-05 op </ul>
175 5deb73b3 2021-11-29 op <p>The dependencies are:</p>
176 cc9bf8f2 2021-11-05 op <ul>
177 cc9bf8f2 2021-11-05 op <li>libncurses</li>
178 cc9bf8f2 2021-11-05 op <li>libevent</li>
179 cc9bf8f2 2021-11-05 op <li>libtls (from either LibreSSL or libretls)</li>
180 cc9bf8f2 2021-11-05 op <li>yacc (or GNU bison)</li>
181 cc9bf8f2 2021-11-05 op </ul>
182 cc9bf8f2 2021-11-05 op <p>Once all the dependencies are installed, building is as easy as:</p>
183 56274e43 2022-05-25 op <pre>$ curl -LO https://github.com/omar-polo/telescope/releases/download/0.8.1/telescope-0.8.1.tar.gz
184 56274e43 2022-05-25 op $ tar xzvf telescope-0.8.1.tar.gz
185 56274e43 2022-05-25 op $ cd telescope-0.8.1
186 cc9bf8f2 2021-11-05 op $ ./configure
187 cc9bf8f2 2021-11-05 op $ make
188 cc9bf8f2 2021-11-05 op $ sudo make install # eventually
189 cc9bf8f2 2021-11-05 op </pre>
190 cc9bf8f2 2021-11-05 op <p>
191 cc9bf8f2 2021-11-05 op A SHA256 file containing the checksums is available. However,
192 cc9bf8f2 2021-11-05 op that only checks for accidental corruption: you can use signify
193 c6da5dc9 2022-05-25 op (<code>SHA256.sig</code> and the public key <code>telescope-0.8.pub</code>).
194 c6da5dc9 2022-05-25 op The hash of the current and next signify public key is also
195 c6da5dc9 2022-05-25 op included in the SHA256.
196 cc9bf8f2 2021-11-05 op </p>
197 cc9bf8f2 2021-11-05 op <ul>
198 cc9bf8f2 2021-11-05 op <li>
199 56274e43 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8.1/SHA256">
200 cc9bf8f2 2021-11-05 op SHA256
201 cc9bf8f2 2021-11-05 op </a>
202 cc9bf8f2 2021-11-05 op </li>
203 cc9bf8f2 2021-11-05 op <li>
204 56274e43 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8.1/SHA256.sig">
205 cc9bf8f2 2021-11-05 op SHA256.sig
206 cc9bf8f2 2021-11-05 op </a>
207 cc9bf8f2 2021-11-05 op </li>
208 cc9bf8f2 2021-11-05 op <li>
209 56274e43 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8.1/telescope-0.8.pub">
210 56274e43 2022-05-25 op telescope-0.8.pub
211 cc9bf8f2 2021-11-05 op </a>
212 cc9bf8f2 2021-11-05 op </li>
213 cc9bf8f2 2021-11-05 op <li>
214 56274e43 2022-05-25 op <a href="https://github.com/omar-polo/telescope/releases/download/0.8.1/telescope-0.9.pub">
215 56274e43 2022-05-25 op telescope-0.9.pub
216 cc9bf8f2 2021-11-05 op </a>
217 cc9bf8f2 2021-11-05 op </li>
218 cc9bf8f2 2021-11-05 op </ul>
219 cc9bf8f2 2021-11-05 op <p>How to verify the signature with signify:</p>
220 56274e43 2022-05-25 op <pre>$ signify -C -p telescope-0.8.1.pub -x SHA256.sig
221 cc9bf8f2 2021-11-05 op Signature Verified
222 56274e43 2022-05-25 op telescope-0.8.1.tar.gz: OK
223 d9bfe90a 2022-01-13 op telescope-0.8.pub: OK
224 c6da5dc9 2022-05-25 op telescope-0.9.pub: OK
225 d9bfe90a 2022-01-13 op telescope.amd64: OK
226 cc9bf8f2 2021-11-05 op </pre>
227 d9bfe90a 2022-01-13 op <h2>Changelog</h2>
228 56274e43 2022-05-25 op <p>0.8.1 “Le Scarpe Volanti” buildfix release — Released May 25, 2022</p>
229 56274e43 2022-05-25 op <ul>
230 56274e43 2022-05-25 op <li>Fix the build on macos. Reported by sikmir, thanks!</li>
231 56274e43 2022-05-25 op </ul>
232 c6da5dc9 2022-05-25 op <p>0.8 “Le Scarpe Volanti” — Released May 25, 2022</p>
233 d9bfe90a 2022-01-13 op <h3>New features</h3>
234 cc9bf8f2 2021-11-05 op <ul>
235 c6da5dc9 2022-05-25 op <li>save and restore scroll position</li>
236 c6da5dc9 2022-05-25 op <li>new command reply-last-input; idea from a conversation with thfr@, thanks!</li>
237 c6da5dc9 2022-05-25 op <li>allow push urls to an already opened telescope session</li>
238 c6da5dc9 2022-05-25 op <li>autocompletions for load-url and load-current-url</li>
239 c6da5dc9 2022-05-25 op <li>new command write-buffer (with alias w)</li>
240 c6da5dc9 2022-05-25 op <li>new command mini-kill-whole-line for the minibuffer</li>
241 c6da5dc9 2022-05-25 op <li>split the minibuffer input into words and try to match out of order</li>
242 bf34c145 2021-11-29 op </ul>
243 d9bfe90a 2022-01-13 op <h3>Improvements</h3>
244 cc9bf8f2 2021-11-05 op <ul>
245 c6da5dc9 2022-05-25 op <li>move aliases at the top of the completions</li>
246 c6da5dc9 2022-05-25 op <li>add alias `open' for load-url; suggested by Florian, thanks!</li>
247 c6da5dc9 2022-05-25 op <li>update emoji-data.txt to 14.0.0</li>
248 c6da5dc9 2022-05-25 op <li>persist the list of visited URLs to the disk</li>
249 c6da5dc9 2022-05-25 op <li>fix builds out-of-tree</li>
250 c6da5dc9 2022-05-25 op <li>correctly mark variables in the manpage so it's possible to jump to them</li>
251 c6da5dc9 2022-05-25 op <li>rework completions selection: the selected entry is *always* the one used. if nothing is selected, the minibuffer content is used instead.</li>
252 c6da5dc9 2022-05-25 op <li>merge the ui and fs processes</li>
253 c6da5dc9 2022-05-25 op <li>rate-limit the update of the download pane</li>
254 cc9bf8f2 2021-11-05 op </ul>
255 d54c55fb 2021-11-29 op <h3>Bug fixes</h3>
256 cc9bf8f2 2021-11-05 op <ul>
257 c6da5dc9 2022-05-25 op <li>fix parsing of invalid link lines</li>
258 c6da5dc9 2022-05-25 op <li>initialize each tab' loadingev timer event</li>
259 c6da5dc9 2022-05-25 op <li>fix the build on recent version of musl</li>
260 d9bfe90a 2022-01-13 op </ul>
261 cc9bf8f2 2021-11-05 op </body>
262 cc9bf8f2 2021-11-05 op </html>