I’m not sure this is the right community.

I’ve been hoping for a TUI frontend for Lemmy for a while, but unfortunately none came out and I’ve decided to build a proof of concept on my own.

It’s written in python with pythorhead, blessed and chafa.py and it’s quite janky.

  • LainOfTheWired@lemy.lol
    link
    fedilink
    English
    arrow-up
    17
    ·
    11 months ago

    That looks epic!

    Please add the ability to view images with an external image viewer as I find a lot of social TUI apps seem to lack that.

    Add that and you’re making my ideal Lemmy client

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      10
      ·
      11 months ago

      Thank you, that’s so kind! I’ll probably try to tackle the comments first as they come quite messy from the api, then I’ll probably give the images a go.

      To be honest, I’m hoping this project doesn’t get out of my league too quickly as a have almost no experience with working with apis.

      • KiranWells@pawb.social
        link
        fedilink
        arrow-up
        7
        ·
        11 months ago

        You might look into displaying images in the terminal as well; many modern terminals support showing actual images natively

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      11 months ago

      I went with chafa as it’s terminal agnostic and supports various modes.

      Then again, I’m not really sure a tui frontend needs high quality image rendering. Earlier I even considered going completely 1bit braille or just ASCII just so that the image doesn’t take all of the focus at the expense of the post body.

      As mentioned by another commenter, I believe opening the full image in an external viewer is a much better solution, not to mention easier to implement.

      • djtech@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        A quick research tells me that there aren’t patches for other emulators, but the protocol seems well described, so making those patches is possible. I could also take a look at Alacritty source code and deicide if I could make this project work.

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 months ago

      There is one named neonmodem overdrive but it is buggy.

      It really is buggy, iirc I couldn’t even get it to run properly.

      It also support discourse forums any plan for this?

      I really don’t have any plans (or even a name) for the app, as I’ve just started playing around with pythorhead yesterday. I just hoped posting a prototype or a proof of concept might spark a discussion and maybe inspire someone much more competent than me.

  • Truck_kun@beehaw.org
    link
    fedilink
    English
    arrow-up
    6
    ·
    11 months ago

    I would not recommend working on two GUI’s at once, but if you build it in a way you can use different frameworks for it, the maker of Rich also makes a nice TUI framework API called Textual.

    Here’s some projects made with it for a sample of what it’s usage can look like: https://www.textualize.io/projects/

    I believe it does not use curses at all.

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 months ago

      While complex tuis are definitely not my cup of tea (I prefer cli tools to be simple, otherwise I would probably use a proper gui), I’m really happy that I’m not the only one wishing for a way to access lemmy from the terminal.

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 months ago

      Link returns “This site can’t be reachedThe webpage at https://files.catbox.moe/8g7agm.mp4 might be temporarily down or it may have moved permanently to a new web address.”.

      It seems to be working for me.

      Do you have a github or codeberg link?

      I didn’t think anyone would have interest in it so i haven’t uploaded it. After new year’s I could clean it up a bit and host it on github.

      Maybe we should add it to awesome-lemmy?.

      I think it may be e a bit too early for that. At the current state it supports dynamic fetching of the feed in the background (quite buggy), paginating and displaying long posts and displaying top level comments only. At the current state it’s quite enough for me to enjoy a few (more like a few dozen) posts, but definitely not anywhere close to “awesome”.

    • crunchpaste@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 months ago

      Async programming is really quite hard to wrap your head around. Currently I’m mostly struggling with excessive memory consumption.

      • noctisatrae@beehaw.org
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        11 months ago

        Send help I’m struggling with lifetimes, unbounded channel & implementing EventHandler… <3