💾 Archived View for gemi.dev › gemini-mailing-list › 000950.gmi captured on 2023-11-04 at 13:13:27. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2023-12-28)

-=-=-=-=-=-=-

[users] [ANN] telescope -- yet another browser

Omar Polo <op (a) omarpolo.com>

Hello everyone,

During the last 3/4 months I've been working on a yet another Gemini
ncurses client: telescope

=> gemini://telescope.omarpolo.com
=> https://telescope.omarpolo.com

It's obviously a project only for fun, in a very-WIP stage and with lots
of missing pieces, but it's improving and I've reached the point where I
think I can present it to a wider audience.

The main difference between telescope and others (I've only tried tinmop
and amfora as TUI clients) is the Emacs (and w3m) inspired interface:
instead of scrolling a page and typing a number to open a link, you have
a cursor you can move freely around the page.

The default keybindings are heavily inspired from Emacs, but I tried at
least to include some keys familiar to vi(1) users, so hjkl, gg, G, gT
etc. work.  All the keybindings are customizable anyway.

The current list of features is honestly quite short:

  on OpenBSD ofc; will add seccomp/landlock in the future, probably)

while the TODO list is ever-growing!

I know there are various annoyances still (I just fixed the resize
"jump" in the main branch for instance), but as I was saying, it has
now reached a point where I think it's starting to become "usable".  I'd
love to receive feedbacks (and even more patches! :P)

Telescope 0.3 is available on guix, thanks to cage who did the work.
Precompiled binaries for linux amd64 and aarch64 are available from the
site, but it's very easy to compile from source since it only depends on
libevent, libncursesw, libtls and yacc/bison.  It's known to compile and
run on FreeBSD too.

Cheers,

Omar Polo

Link to individual message.

Jonathan McHugh <indieterminacy (a) libre.brussels>

Hi Omar,

Thanks for your work.

Just a quick heads up, your Guix link featured on your HTTPS project 
homepage (I cant access Gemini on this device atm) is broken.

It links to version 0.2 (giving a server error on the Guix page^1, whereas 
0.3 is now available (and
=> https://guix.gnu.org/en/packages/telescope-0.3/

I noticed the inputs into the system, nice and lightweight!
=> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/web-browsers.scm#n911

Im looking forward to testing it.

Btw, what your impression of tinmop? I havent tried it yet.

^1 I dont recall the Guix HTTP package page navigating by version number. 
It makes sense I suppose.


====================
Jonathan McHugh
indieterminacy at libre.brussels

July 1, 2021 6:52 PM, "Omar Polo" <op at omarpolo.com> wrote:

> Hello everyone,
> 
> During the last 3/4 months I've been working on a yet another Gemini
> ncurses client: telescope
> 
> => gemini://telescope.omarpolo.com
> => https://telescope.omarpolo.com
> 
> It's obviously a project only for fun, in a very-WIP stage and with lots
> of missing pieces, but it's improving and I've reached the point where I
> think I can present it to a wider audience.
> 
> The main difference between telescope and others (I've only tried tinmop
> and amfora as TUI clients) is the Emacs (and w3m) inspired interface:
> instead of scrolling a page and typing a number to open a link, you have
> a cursor you can move freely around the page.
> 
> The default keybindings are heavily inspired from Emacs, but I tried at
> least to include some keys familiar to vi(1) users, so hjkl, gg, G, gT
> etc. work. All the keybindings are customizable anyway.
> 
> The current list of features is honestly quite short:
> * color and keybindings are customizable
> * history
> * rudimentary bookmark management
> * tabs (on startup reloads the last set of tabs)
> * streaming pages
> * rich set of commands to move around the page
> * splitted in three different process, each one is pledged (this only
> on OpenBSD ofc; will add seccomp/landlock in the future, probably)
> 
> while the TODO list is ever-growing!
> 
> I know there are various annoyances still (I just fixed the resize
> "jump" in the main branch for instance), but as I was saying, it has
> now reached a point where I think it's starting to become "usable". I'd
> love to receive feedbacks (and even more patches! :P)
> 
> Telescope 0.3 is available on guix, thanks to cage who did the work.
> Precompiled binaries for linux amd64 and aarch64 are available from the
> site, but it's very easy to compile from source since it only depends on
> libevent, libncursesw, libtls and yacc/bison. It's known to compile and
> run on FreeBSD too.
> 
> Cheers,
> 
> Omar Polo

Link to individual message.

Jonathan McHugh <indieterminacy (a) libre.brussels>

Hi Omar,

Would you please mind elaborating on this bullet point please?
 ```

  on OpenBSD ofc; will add seccomp/landlock in the future, probably)
 ```

I feels like something I could just nod along to (without really/properly 
understanding) but I suspect it is probably an interesting design concept.

Kind regards,

====================
Jonathan McHugh
indieterminacy at libre.brussels

July 1, 2021 6:52 PM, "Omar Polo" <op at omarpolo.com> wrote:

> Hello everyone,
> 
> During the last 3/4 months I've been working on a yet another Gemini
> ncurses client: telescope
> 
> => gemini://telescope.omarpolo.com
> => https://telescope.omarpolo.com
> 
> It's obviously a project only for fun, in a very-WIP stage and with lots
> of missing pieces, but it's improving and I've reached the point where I
> think I can present it to a wider audience.
> 
> The main difference between telescope and others (I've only tried tinmop
> and amfora as TUI clients) is the Emacs (and w3m) inspired interface:
> instead of scrolling a page and typing a number to open a link, you have
> a cursor you can move freely around the page.
> 
> The default keybindings are heavily inspired from Emacs, but I tried at
> least to include some keys familiar to vi(1) users, so hjkl, gg, G, gT
> etc. work. All the keybindings are customizable anyway.
> 
> The current list of features is honestly quite short:
> * color and keybindings are customizable
> * history
> * rudimentary bookmark management
> * tabs (on startup reloads the last set of tabs)
> * streaming pages
> * rich set of commands to move around the page
> * splitted in three different process, each one is pledged (this only
> on OpenBSD ofc; will add seccomp/landlock in the future, probably)
> 
> while the TODO list is ever-growing!
> 
> I know there are various annoyances still (I just fixed the resize
> "jump" in the main branch for instance), but as I was saying, it has
> now reached a point where I think it's starting to become "usable". I'd
> love to receive feedbacks (and even more patches! :P)
> 
> Telescope 0.3 is available on guix, thanks to cage who did the work.
> Precompiled binaries for linux amd64 and aarch64 are available from the
> site, but it's very easy to compile from source since it only depends on
> libevent, libncursesw, libtls and yacc/bison. It's known to compile and
> run on FreeBSD too.
> 
> Cheers,
> 
> Omar Polo

Link to individual message.

Omar Polo <op (a) omarpolo.com>


Jonathan McHugh <indieterminacy at libre.brussels> writes:

> Hi Omar,
>
> Would you please mind elaborating on this bullet point please?
> ```
> * splitted in three different process, each one is pledged (this only
>   on OpenBSD ofc; will add seccomp/landlock in the future, probably)
> ```
>
> I feels like something I could just nod along to (without 
really/properly understanding) but I suspect it is probably an interesting 
design concept.

Probably I should have use the "privsep" term, but it felt a slightly
exaggeration.

Telescope forks as soon as it can into three processes, each one does
only one thing (conceptually) and they talk via IPC (using imsg from
OpenBSD' libutil in particular).  Furthermore, on OpenBSD, each process
is sandboxed with pledge(2) [0].  It's on my todo-list to do the same
with seccomp on linux, but later, probably around the 1.0.  Seccomp is
very low-level and in general annoying to work with.

This way, for e.g. the `client' process (the only one with the network
access) can't be tricked into reading your ssh keys, because the kernel
would kill it as soon as it tries to open(2).

Modern web browsers also do something similar to this, at least to my
understanding.  (see firefox project electrolysis and fission)

This is usually considered a security technique and while that's true,
I find that it also encourages cleaner code that's simpler to reason
about, when writing C at least.

I wrote more about pledge/seccomp/capsicum here[1]: while the details
regarding the implementation of gmid have changed a bit, the overall
description of the different sandboxes is still relevant :)

Cheers,

Omar Polo

[0]: gemini://gemini.omarpolo.com/cgi/man/pledge or
     https://man.openbsd.org/pledge

[1]: gemini://gemini.omarpolo.com/post/gmid-sandbox.gmi


P.S.: Thanks for noticing the wrong url.  I fixed it in the gemini
      version of the page when the patch for telescope 0.3 was
      committed, but forgot to update it in http-land!

P.P.S: regarding tinmop: it's a very peculiar program -- in a good way.
       It's both a pleroma AND gemini client!  It's a complete client:
       it has subscriptions support, a really cool history completion
       UI, built-in help, IRI support (I haven't tested this one though)
       and so on.  And did I mention that it's also a pleroma client? :D

       I'm a little bit biased though, because both cage and I are
       usually on #gemini-it on libera.chat and talk frequently.  He
       (and the others there) have influenced telescope and I think I
       can say that I did the same with tinmop.

> Kind regards,
>
> ====================
> Jonathan McHugh
> indieterminacy at libre.brussels
>
> July 1, 2021 6:52 PM, "Omar Polo" <op at omarpolo.com> wrote:
>
>> Hello everyone,
>> 
>> During the last 3/4 months I've been working on a yet another Gemini
>> ncurses client: telescope
>> 
>> => gemini://telescope.omarpolo.com
>> => https://telescope.omarpolo.com
>> 
>> It's obviously a project only for fun, in a very-WIP stage and with lots
>> of missing pieces, but it's improving and I've reached the point where I
>> think I can present it to a wider audience.
>> 
>> The main difference between telescope and others (I've only tried tinmop
>> and amfora as TUI clients) is the Emacs (and w3m) inspired interface:
>> instead of scrolling a page and typing a number to open a link, you have
>> a cursor you can move freely around the page.
>> 
>> The default keybindings are heavily inspired from Emacs, but I tried at
>> least to include some keys familiar to vi(1) users, so hjkl, gg, G, gT
>> etc. work. All the keybindings are customizable anyway.
>> 
>> The current list of features is honestly quite short:
>> * color and keybindings are customizable
>> * history
>> * rudimentary bookmark management
>> * tabs (on startup reloads the last set of tabs)
>> * streaming pages
>> * rich set of commands to move around the page
>> * splitted in three different process, each one is pledged (this only
>> on OpenBSD ofc; will add seccomp/landlock in the future, probably)
>> 
>> while the TODO list is ever-growing!
>> 
>> I know there are various annoyances still (I just fixed the resize
>> "jump" in the main branch for instance), but as I was saying, it has
>> now reached a point where I think it's starting to become "usable". I'd
>> love to receive feedbacks (and even more patches! :P)
>> 
>> Telescope 0.3 is available on guix, thanks to cage who did the work.
>> Precompiled binaries for linux amd64 and aarch64 are available from the
>> site, but it's very easy to compile from source since it only depends on
>> libevent, libncursesw, libtls and yacc/bison. It's known to compile and
>> run on FreeBSD too.
>> 
>> Cheers,
>> 
>> Omar Polo

Link to individual message.

Jonathan Lane <tidux (a) sdf.org>

On Thu, Jul 01, 2021 at 06:51:33PM +0200, Omar Polo wrote:
> Hello everyone,
> 
> During the last 3/4 months I've been working on a yet another Gemini
> ncurses client: telescope
> 
> => gemini://telescope.omarpolo.com
> => https://telescope.omarpolo.com
> 
> It's obviously a project only for fun, in a very-WIP stage and with lots
> of missing pieces, but it's improving and I've reached the point where I
> think I can present it to a wider audience.

It looks great!  I like it so far.  The one missing feature that would
let me ditch Amfora completely is local file support.

-- 
tidux at sdf.org
SDF Public Access UNIX System - http://sdf.org

Link to individual message.

---

Previous Thread: [users] Announcing Antenna!

Next Thread: Upload a file to gemlog.blue?