FIM – Linux framebuffer image viewer

(nongnu.org)

88 points | by Mr_Minderbinder 5 hours ago

9 comments

  • aiiotnoodle 4 minutes ago
    A little while ago when I had a free weekend. I decided I would pre-compute some musings of an LLM trapped in a computer, I had a raspberry pi 1 (or maybe b) lieing around that I had a framebuffer screen for. I think it was a non-standard TFT_ILI9325 from Aliexpress.

    The idea is it would display some helplessness comment on the screen like "Help I'm trapped in a computer" etc etc.

    Eventually I got the thing booted with it's original OS image and it was running a custom kernel and had the hardware still attached and worked, but it was very outdated so I decided backup and update it, more of a technical challenge than something practical.

    I gave it a few tries but eventually the screen would stop working, not helped by the thing being quite slow. Updating in place was probably harder than a brand new OS. Eventually I determined that I'd need to build a custom kernel image using a newer version, something I've never done before and for me it was quite difficult and a little before AI had agents and such to help you along.

    I managed to build a custom kernel but the driver for it had been patched out and moved to an optional thing that I had to enable, I was able to build the custom kernel but for some reason the screen wouldn't display anything like it did on the original OS.

    I spent a further few weekends on it working really hard to get this thing to work. Eventually I calmly picked up the screen and intentionally pushed down hard with my thumb breaking the screen irreparably.

    It was destructive yes but the joy I feel even now being free of this frustration is immense.

    I said I would order a newer screen but have yet to do so.

  • lrvick 4 hours ago
    You can also use mplayer with "-fp" to play video on the frambuffer as well.

    I have gone weeks at a time without using a graphical desktop at all thanks to these tools.

    • xattt 2 hours ago
      Do you browse with framebuffer links too? :)
      • lrvick 1 hour ago
        These days I prefer to ask an LLM to just go fetch content for me as much as possible.
      • monsieurbanana 2 hours ago
        -links +lynx
        • yesbabyyes 7 minutes ago
          `links` is a text mode browser which is more capable than `lynx` and which has graphics support through the framebuffer.
    • wazoox 15 minutes ago
      Ah yes, back in 2004/2005 I got an old laptop (Pentium 200 or something like that) for free that wasn't fast enough to reliably read videos with X11, but it worked fine as a movie watching device for my children using mplayer in FB mode :)
    • hkt 4 hours ago
      This is a great tip, do you have others? I've tried to ditch graphical desktop envs and failed pretty miserably on media consumption and browsing before.
      • yonatan8070 50 minutes ago
        I'm curious, what's the motivation for not having a graphical environment at all?
      • redsocksfan45 3 hours ago
        Don't use mplayer for this. Use mpv --vo=gpu --gpu-context=drm

        This gives you hardware acceleration without a desktop environment.

    • antisol 3 hours ago
      yep! and ffplay will detect your situation and run on the framebuffer if that seems appropriate. I'm sure there's arguments to explicitly tell it to do that, but I've never used them :)
  • haunter 1 hour ago
    It can actually be also used for file recovery/discovery, see the last slide

    https://archive.fosdem.org/2023/schedule/event/om_fim/attach...

    >seek a ’magic’ signature in the file after opening it, and try decoding it starting within the range of that signature

  • anthk 4 hours ago
    I think this came with fbgs too; and fbpdf2 it's a better fbpdf (no more slow GhostScript convertings), it just calls poppler/MuPDF libraries.
  • pjmlp 3 hours ago
    More like UNIX and MS-DOS concepts.
  • sylware 5 hours ago
    Should it be DRM nowdays?
    • written-beyond 11 minutes ago
      I shudder when I read DRM after building a embedded display raspberry pi build. There was a problem with Raspberry pi kernel incorrectly detected an HDMI display was connected even though I was trying to display to DSI. The only work around I had was to write a kernel module that would disable HDMI as a possible interface.
    • whizzter 4 hours ago
      I think the framebuffer devices is a least common denominator that is available on even miniscule or emulated hardware whilst anything above thats starts requiring a whole lot more infrastructure.

      And honestly, you don't need much more for an image viewer.

      • antisol 4 hours ago
        This is exactly right - you can get a framebuffer on just about anything, including pretty much any video card made since about 1990, and also more fun things like the little i2c display that your toaster has. No need to restrict relatively simple software like fbi/fim to running on less hardware by using drm.
        • anthk 3 hours ago
          I used to play videos with the framebuffer just fine and read PDF's with fbpdf2, among watching TV with fbtv and the like. I didn't miss nearly anything, as most games under SDL1/2 can render into FB with

                export SDL_VIDEODRIVER=fbcon 
          
          or

                export SDL_VIDEODRIVER=kmsdrm
          
          And tons of games too, such as Supertux2, Crispy Doom, SDLQuake, FreeCiv-SDL...
          • sylware 2 hours ago
            This is what I meant: kmsdrm.
          • antisol 3 hours ago
            another fun one if you're in an exotic situation and don't have a framebuffer (or if you just want to have some fun by making your games to look worse):

            export SDL_VIDEODRIVER=aalib

            unfortunately it's only SDL1, though

            • capitainenemo 1 hour ago
              export SDL_VIDEODRIVER=caca is more usable for games
              • antisol 1 hour ago
                Oh nice! How did I not know it works with caca?!
  • globalnode 3 hours ago
    this wont work with wayland will it? has to be a raw tty?
    • a96 11 minutes ago
      It does say it runs on Gtk or SDL, so I expect it should.

      Though there are also terminal graphics protocols these days. That seems like it would be another neat box to tick.

  • kevinten10 4 hours ago
    [dead]
  • mnkylikeskbd 4 hours ago
    Related to this are the (rather poorly named) kitty terminals graphics protocol: https://sw.kovidgoyal.net/kitty/graphics-protocol/

    Yeah it is playful and all, but telling your colleagues to use "kitty" doesn't sound very professional. You might disagree with this, but that doesn't change the overall perception and general take in corporate world.

    • krautsauer 58 minutes ago
      If we're going the see-also way: sixels. Especially timg for image viewing. I've also played with https://github.com/cptpiepmatz/nu-jupyter-kernel/tree/main/c... which can be neat but the invocation is terribly clunky.
    • bschwindHN 3 hours ago
      Did you just... make a new account just to say the word "kitty" is "unprofessional"?
    • opan 4 hours ago
      The name "kitty" is nothing compared to the attitude and crimes of the dev (destroying bitmap support and telling people to buy new monitors). I will never use, support, or recommend kitty.
      • gbin 3 hours ago
        A crime?! Please people I don't even know what happened here but removing some bitmap support is a crime now for a maintainer of an open source piece of code? You are not happy with the project then where is your fork so we can assign some crimes to you and get out of our way to not recommend it? (Note: I am not affiliated at all with the project and I don't even know what happened but you really need to take a breather, no one forced you to use kitty)
        • opan 3 hours ago
          >where is your fork

          Luckily there are better terminal emulators out there, such as foot, so a fork is not necessary.

      • moritonal 3 hours ago
        Interesting you say the Dev isn't a great person, because I had a hunch when I saw the use of the Lena photo on the front page (https://pursuit.unimelb.edu.au/articles/it-s-time-to-retire-...). It's interesting how small gestures present how someone sees the world.
        • miki_oomiri 3 hours ago
          Man… you guys are ruthless. The dude provides a free tool to use, and used a cute named, have opinions about code, and used the most common used photo on his webpage, and suddenly he gets insulted on a public forum by strangers. He's not perfect. Nobody is. He has opinions, and might not even know about Lenna.

          You people are gross.

          • patates 2 hours ago
            As a reply to this comment:

            > Interesting you say the Dev isn't a great person, because I had a hunch when I saw the use of the Lena photo on the front page

            You say:

            > you guys are ruthless (...) You people are gross.

            I'm not saying you don't have a point. I didn't know enough to be sensitive on the Lena topic once either, and could have been the target of the above comment. So I think, perhaps, those could have been formulated more constructively.

            However, I must say the same for your comment too. Can't we all be friends here? :)

        • hagbard_c 2 hours ago
          Sure, you can 'see' how 'someone sees the world' just by him or her not abiding to the current narrative. You do realise that the 'Lena' image has been the standard image for these purposes for decades and that some people might not consider the (politically charged) crusade to suddenly ban it from all such use as being the most pressing issue?

          I think what you wrote here says more about how you see the world than how Goyal sees it.

          • moritonal 1 hour ago
            You're right my comment was off the cuff but I stand by it's logic. I didn't say Kovid was a terrible person, just not great. Having not done research into him specifically I just noted with the parent that certain qualities such as supposed abrasiveness often overlap with qualities I dislike, like using the Lenna image.

            My point is that using the Lenna image is a signal, just as you rightly point out so is my comment. I know exactly what the image is and is used for. But I also think it's sad that it's politically charged to say using a Playboy image in a literally objectifying fashion as a test-subject by a women who's requested we don't use it is bad.

            It's not a sudden ban, it's been an issue since ~2015. Fun fact I learnt in this, Goyal is totally open to changing it (https://github.com/kovidgoyal/kitty/issues/661), it's simply no-one changed it. I'll see if I can, thanks for the correct call-out.

            • prmoustache 22 minutes ago
              > using a Playboy image

              In all honesty, until I read about that I couldn't have imagined the original was a playboy image. What is really used and we see online is a cropped portrait of a playboy image. I am not even sure that playboy image may have been pornographic. Nudity != porn. What is sure is that cropped portrait is not in any way pornographic.

              So I kind of have difficulties on drawing opinions about that. Surely the model doesn't have any copyright on that photo, rather the photographer/publisher have and apparently nobody has cared. I would not use it today out of empathy given the model would rather not see her image still being used today and how easy it is to replace it. I feel that consent is above copyright laws.

              I have mixed feeling about the argument that the presence of that totally non pornographic portrait would make women feel less welcomed in science. On one hand I would say that if they say so, that could be true. On another hand I would ask if these women really are representative of all women? Does it really matters? Should we avoid posting picture of portraits and stick to animals or still life scenes? And if not why should we avoid only women ones?

            • hagbard_c 1 hour ago
              Using the 'Lena' image is only a signal for those who want to signal something. For most people it is just the standard graphic to use when presenting image processing software. There has been a movement to ban the image but that movement is most likely not nearly so widespread as some people seem to think it is. It wholly depends on which 'bubble' you are in whether using that image is a deadly sin or just daily routine. I suspect Goyal used it in the latter way, not to send some signal to the Image Inquisition.
        • redsocksfan45 3 hours ago
          [dead]
    • debazel 1 hour ago
      Good. More open source tools should be unappealing the the "corporate world". They can fund and pay for their own tooling.
    • roer 4 hours ago
      The graphics protocol might be relevant, but I fail to see how the rest of your comment is.
    • dspillett 3 hours ago
      As much as there are issues people have with kitty's creator/maintainer, which are easy to search for so I'll not reiterate them, choosing a slightly cutesy name is hardly a massively unprofessional act. It isn't like it is called Completely Uncomfortably Named TTY or similar… If you are so uptight that you can't cope with the word “kitty” being used to refer to a protocol, then maybe call it “kay-eye-tee-tee-why” instead?

      > but that doesn't change the overall perception and general take in corporate world.

      It may come as a shock to you, but many don't really care about the feelings of the corporate world, away from our day jobs. Heck, some of us struggle to care in our day jobs! Luckily my corporate overlords and immediate management are not quite so sensitive.

    • Chaosvex 3 hours ago
      Wait until you find out about Git.
      • mnw21cam 2 hours ago
        Yeah, but that one's ok because it's just named after the guy who wrote it.
        • rlopezcc 1 hour ago
          Ah yes, renowned Git Torvalds.