1. 65
    1. 7

      nice, this was interesting to read since I’m currently building a rust TUI client for the fediverse that looks & acts a bit like a chat client. I’m currently in the middle of a big refactor since I’ve written it using an actor pattern, but by hand & with OS threads instead of bringing in a proper actor framework like Actix. Thankfully, moving it to Actix has been pretty straightforward so far. Source is at https://gitlab.com/pwoolcoc/fedichat, though note that it isn’t really ready for regular use yet.

      1. 4

        I also have one of those: :) https://github.com/ihabunek/toot/

        I’m finding working with curses in Python to be a bit of a pain though.

        1. 4

          You know blessings?

          1. 2

            I did not, I’ll have a look, thanks.

            I did try urwid and npyscreen but didn’t hit it off with either so fell back to plain curses.

    2. 3

      Thanks for sharing your learnings! This couldn’t have come at a better time, since I’m considering learning Rust by implementing a TUI as well. Don’t ask me for what, I’m embarassed to say, but maybe I’ll share it as well once it reaches a satisfactory state.

      1. 4

        This morning it crossed my mind that I would like a gmail TUI client.

        1. 4

          Lynx used to work before they killed noscript support. :(

          But some other terminal browser may work. browsh comes to mind, although I personally think it’s pretty heavyweight.

          1. 1

            It appears you can still browse gmail without js. I have to use gmail at work, and after disabling js, I can load a 2005-era gmail webpage.

            “You are currently viewing [Company] Mail in basic HTML. Switch to standard view | Set basic HTML as default view”

            1. 3

              Per blog post, they disabled javascript free logins. So you’d have to login with one browser and somehow copy the cookies into lynx and hope it works.

              https://security.googleblog.com/2018/10/announcing-some-security-treats-to.html

              1. 1

                Hmm…It’s still been working for me. I’ve been using the HTML GMail interface through www/links+ (links2 to the linux folk) for a long time. And I can log in with 2FA just fine.

        2. 2

          Oh I fully agree. I can’t be bothered to configure mutt and the other 5 tools you need. Also likely I’d be happy with just the basics but in TUI form.

          (My project is not about that)

        3. 1

          Well, depending on your editor preference, there’s a vim plugin, or you can use emacs’ included email client.

          Alternately, there was a project several years back called sup that aimed to put a gmail-like interface in the terminal, for any mail server. Sup is written in ruby.

          1. 5

            I’m writing a TUI MUA in rust, I haven’t released it yet because it seems my free time is not that much. I have some earlier screenshots in its mockup site: https://meli.delivery

            1. 2

              That does look really promising!

          2. 1

            sup is indeed really good. I can’t remember why exactly I stopped using it.

            EDIT: now I remember: sup is no longer supported (for instance https://github.com/sup-heliotrope/sup/issues/546). There are instructions around to get it to work on an older ruby version (https://wiki.archlinux.org/index.php/sup#Configuration) but sup-config still crashes. Plus it needs offlineimap + mailfilter + msmtpd … that’s a bit too much for my taste

            1. 1

              it’s a turnoff, I want to edit a config with credentials and be done with it.

              1. 1

                Absolutely. If you find that or write that, let me know, I want to try it out.

          3. 1

            interesting.

    3. 1
      frank@yetunde:/var/src/lobsters$ cargo install --path lobsters
      error: no packages found with binaries or examples
      

      Bulding (cargo build) works, installing works when I change the --path parameter to lobsters-cli.

      1. 1

        Thanks. I updated the README.