[HN Gopher] Foot - A fast, lightweight and minimalistic Wayland ...
       ___________________________________________________________________
        
       Foot - A fast, lightweight and minimalistic Wayland terminal
       emulator
        
       Author : gjvc
       Score  : 134 points
       Date   : 2023-09-23 13:20 UTC (9 hours ago)
        
 (HTM) web link (codeberg.org)
 (TXT) w3m dump (codeberg.org)
        
       | souvlakee wrote:
       | Last opening for me was Rio terminal, faster then WezTerm.
        
         | dizhn wrote:
         | Rio looks decent. Far fewer features than wezterm though.
         | Although unlike foot, it does have tabs. wez also supports x11.
        
       | WD-42 wrote:
       | Unfortunately there is no support for ligatures. A good
       | programming font like fira or source code pro makes for such a
       | quality of life improvement. At least easier on the eyes.
       | 
       | It seems that many terminal emulators can't or won't support
       | them, because they are hard to render properly.
       | 
       | Sticking to wezterm for now.
        
         | pkulak wrote:
         | In the age of Vim being a full IDE, these kinds of things only
         | become more important.
        
       | ayoisaiah wrote:
       | This certainly looks interesting. I've been using Kitty for a
       | while and it works great and supports so many features. It would
       | be nice to see how it compares to Foot in terms of speed. I'm
       | also curios about Ghostty, the in-progress (but currently
       | private) terminal from Mitchell Hashimoto.
       | 
       | https://mitchellh.com/ghostty
        
       | Piraty wrote:
       | here's a good read about terminal emulators, including speed
       | benchmarks and discussing security aspects:
       | https://lwn.net/Articles/749992/ https://lwn.net/Articles/751763/
        
       | ignorethefacts wrote:
       | Foot has an opt-in server mode so that if you are used to running
       | multiple terminals at once, you can save a little memory. Great
       | for a low-end device. Of course, if the server is closed/crashes,
       | you lose all the client terminals which can be annoying.
        
       | chrsw wrote:
       | It's minimalistic but it supports animated gifs?
        
         | ploum wrote:
         | This is sixel. It's kind of a standard and supported by a
         | growing number of terminals, including xterm (but you need the
         | VT-340 profile).
         | 
         | This is also really useful. I use it in Offpunk to display
         | pictures when browsing the web.
        
       | BaculumMeumEst wrote:
       | I love this terminal but it had a lot of flickering issues when I
       | would run it on sway with nvidia drivers. Ended up just going
       | back to xorg, I use kitty there.
        
         | [deleted]
        
       | Topgamer7 wrote:
       | My only complaint is that double clicking links only selects up
       | until the //
        
       | NooneAtAll3 wrote:
       | > if you pronounce the foo part of foot the same way you
       | pronounce foobar, then foot sounds a lot like the Swedish word
       | fot
       | 
       | wait... foo in foobar isn't pronounced like foo in foot??
        
         | seanthemon wrote:
         | It is. Surely it is, right?
        
         | lambda wrote:
         | What is your native language, and if English, what dialect?
         | 
         | For me, the "foo" in "foobar" has the same vowel as "toot",
         | which is different than "foot". Do "toot" and "foot" rhyme for
         | you.
         | 
         | I speak American English, from Boston/New England but without a
         | strong Boston accent.
        
       | kookamamie wrote:
       | > I'm bad at names.
       | 
       | Lame excuse. Try at least.
        
       | cout wrote:
       | As someone who has dabbled in terminal emulation (I was the
       | maintainer of Console Telnet for Win32 twenty years ago), I have
       | respect for someone who takes the time to optimize a terminal
       | emulator by building a fast parser and being careful with screen
       | updates.
       | 
       | That used to be the only way to make a graphical program fast,
       | but these days hardware is so fast you can render an entire scene
       | before the next screen refresh and still have cycles to spare. As
       | long as you initiate rendering early enough, it's hard to go much
       | faster.
       | 
       | I'm curious how foot compares to older fast terminal emulators
       | such as Eterm, xterm, and rxvt. I think libvte is neat (anyone
       | can write a terminal app now) but is it resulted in terribly slow
       | programs like gnome terminal. Before that terminal emulators
       | tended to be much faster -- they had to be, because hardware was
       | so much more limited.
        
         | doublepg23 wrote:
         | It's interesting you call out GNOME Terminal, it's always been
         | my favorite terminal.
        
         | arghwhat wrote:
         | Being fast is not just about hitting the deadline for 60fps or
         | more. Ingestion performance (cat /dev/urandom), startup time
         | and overall latency are also important factors.
         | 
         | There are a few terminal emulators that are fast enough that
         | further optimization is mostly for the heck of it...
         | 
         | And ugh, gnome terminal. The internet explorer of terminal
         | emulators, only used to install foot and alacritty.
        
         | jampekka wrote:
         | I don't think I've ever encountered a problem where terminal
         | emulation would be too slow. What I do have encountered are
         | terminal emulators that go bonkers and require some arcane
         | configuration magic to figure out what to emulate.
         | 
         | GNOME terminal works and looks pleasant to boot. In fact it
         | works so well that I almost never think of it although I use it
         | all the time.
        
           | jeffbee wrote:
           | > I don't think I've ever encountered a problem where
           | terminal emulation would be too slow.
           | 
           | You don't notice it until you get into a situation where the
           | terminal (emulator) insists on showing you everything flying
           | by, instead of just skipping to the end, in which situation
           | you may be waiting a really long time. Some emulators also
           | cannot deal with, say, 1 million lines of scrollback and
           | searching.
        
             | jampekka wrote:
             | That I've encountered a few times but tail or less deals
             | with it fine.
        
               | spookie wrote:
               | It really depends on what you're doing frankly, sometimes
               | you cannot use tail or less. Unfortunately.
        
         | chungy wrote:
         | libvte is a big reason that GNOME Terminal tends to be faster
         | than competing terminal emulators, including xterm and rxvt.
         | One of VTE's tricks is that it doesn't bother painting the
         | screen if the contents are going to be overwritten in the next
         | frame anyway; you can scroll through megabytes of data in
         | fractions of a second this way.
         | 
         | The idea that it's slow, that's new to me.
        
           | audidude wrote:
           | I've heard various things about VTE over the years including:
           | 
           | 1. They "like" xterm because i get value out of screen
           | tearing and feeling like they can catch what is scrolling by
           | (even though it's literally seconds slower) 2. They don't
           | like the 40 fps cap it currently has because it predates
           | reliable access to vertical sync information in applications.
           | 3. They are using the GTK 4 port which draws with cairo and
           | uploads surface data on every frame update.
           | 
           | The patches I put together for VTE this week (while having
           | some down time with Covid) address a portion of that by
           | making it render fonts/rectangles/emoji/etc on the GPU using
           | GTK's OpenGL renderer (which I also wrote a large portion
           | of).
        
           | rascul wrote:
           | I have a 655MB file with 1.5 million lines of lorem ipsum. I
           | timed a cat in several terminal emulators. For this simple
           | test, gnome-terminal beat xterm a little bit but wasn't
           | anywhere close to the rest:                 foot
           | 0m9.410s       alacritty        0m16.881s       konsole
           | 0m36.737s       gnome-terminal   1m1.096s       xterm
           | 1m16.919s
           | 
           | Foot has an page that explains when and why it's fast, and
           | also when it's not, compared to alacritty.
           | 
           | https://codeberg.org/dnkl/foot/wiki/Performance
        
             | audidude wrote:
             | Glad this Termkit prototype work is right on track then.
             | Generated a 655MB lorem text file and it came out at
             | 0m8.186s.
        
           | zajio1am wrote:
           | I think this does almost every terminal, including rxvt (with
           | the notable exception of Linux console).
        
         | DiabloD3 wrote:
         | rxvt used to be my go-to terminal, but it was only fast in the
         | era where we had actual 2D hardware. That era ended, oh, like
         | 15 years ago? Ish? On the AMD side, Radeon GCN 1.0 (think 7970)
         | came out 12 years ago, and that was their first card that
         | entirely removed 2D hardware (which means all 2D ops are
         | handled by optimized shaders; in Linux, that'd be handled by
         | glamor); but wasn't the first gen of AMD that was in the
         | process of removing 2D, and nvidia was about a gen behind every
         | step on that.
         | 
         | Between then and now, I ended up trying every emulator. The
         | libvte ones tended to be slow, buggy, and missing features
         | (although, nowadays, it's sorta cleaned up its act, but not
         | entirely). The terminal community has been able to write three
         | emulators that make for good urxvt replacements: alacritty,
         | wezterm, and kitty.
         | 
         | Foot seems like its trying to join those three, but it's lack
         | of other-OS support (since it's focusing on being, purely, the
         | best possible Wayland terminal) kind of holds it back (unless
         | you're only using Linux, then obviously this doesn't apply to
         | you).
        
       | jeffbee wrote:
       | I appreciate that their benchmarks are executed in a peak-
       | optimized build. But, it leaves open the question of whether
       | anyone actually enjoys that peak performance, because all the
       | users install it from unoptimized distro packages.
        
         | Arnavion wrote:
         | https://gitlab.archlinux.org/archlinux/packaging/packages/fo...
         | 
         | https://gitlab.alpinelinux.org/alpine/aports/-/blob/e5873544...
         | 
         | https://salsa.debian.org/birger/foot/-/blob/13017bc992f66cc5...
        
           | jeffbee wrote:
           | Very cool. It must be a credit to the developer for
           | contributing an easy-to-use PGO target.
        
         | [deleted]
        
       | qudat wrote:
       | Been using `foot` for a year plus at this point. No issues, works
       | great, very happy!
        
         | ta988 wrote:
         | Same here works well, but I am eyeing others for image support
         | at some point.
        
           | fbdab103 wrote:
           | What is your workflow where you use images in the terminal?
        
           | ta988 wrote:
           | So i lokked a bit more and the sixel support seems to be
           | decently good in foot (and i need something that works in
           | tmux) you can even play doom or videos at 30fps
           | https://codeberg.org/dnkl/foot/issues/481
        
           | lordgrenville wrote:
           | This made me curious about image support in the emulator I
           | use (iTerm2), and I learned that it has these cool
           | utilities[0] that (inter alia) add aliases for imgcat and
           | imgls, which are exactly what they sound like.
           | 
           | [0]https://iterm2.com/documentation-utilities.html
        
           | kitotik wrote:
           | Foot has sixel[0] support. Is there more robust image support
           | in Kitty and others?
           | 
           | [0] https://en.m.wikipedia.org/wiki/Sixel
        
           | ireallywantthat wrote:
           | Use kitty. Works great for me.
        
       | aquova wrote:
       | I've been using Foot for a while now, having switched to it from
       | Alacritty. I like it. I don't really require much from my
       | terminal other than for it to "feel" snappy and to have some
       | cosmetic customization, and from my own playing around, it does
       | both well.
        
         | pkulak wrote:
         | You sound like a fellow Sway user. I switched too for a bit, as
         | it's the new blessed terminal, but I had a couple glitches in a
         | TUI app and switched back. Not really sure what I could have
         | really gained by switching. They are both great.
        
         | SamuelAdams wrote:
         | I tried it for a week or so on Ashai. It was super fast.
         | However the lack of tab support ended up being a dealbreaker.
         | Multiple instances are ok, but I prefer tabs at the top of my
         | application.
        
           | SushiHippie wrote:
           | I suppose foot works best with a tiling window manager, it's
           | also very often the default with swaywm
        
           | all2 wrote:
           | It depends on what you want to manage your tabs. For example,
           | a good tiling window manager will handle tabbing for you. In
           | i3 Meta-w will swap into tabbed mode.
        
       | znpy wrote:
       | Honest question: as somebody using the terminal mostly for things
       | like ssh, screen and emacs in screen... why should i care about
       | terminal speed?
        
         | stonogo wrote:
         | Setting aside the fact that it's no fun waiting around when you
         | accidentally cat a gigabyte log file to stdout, a more
         | efficient terminal has two main advantages: it runs better on
         | low-end hardware, and it uses less power to do the same job. If
         | you have a fast computer and don't care about battery life,
         | there's no real reason to switch.
        
         | GuB-42 wrote:
         | A faster terminal feels better. It is the kind of things that
         | are hard to point out but enough to feel the difference side by
         | side.
         | 
         | I definitely noticed it when I switched from terminator to
         | kitty.
         | 
         | Now the race of which one will cat a large file the fastest is
         | a bit pointless, but it should be fast enough not to add more
         | than a frame of latency for regular use.
        
       | dundarious wrote:
       | When I used a Raspberry Pi 4 with 64bit kernel+userspace and
       | Wayland (sway), foot was the only native terminal that didn't eat
       | up lots of CPU. I presume some kind of OpenGL vs OpenGL ES issue.
        
       | throwaway02y wrote:
       | I'd love to use Wayland all the time, and we are almost there,
       | but just so many quirks everywhere (especially with outdated
       | Electron apps).
        
         | bravetraveler wrote:
         | It really is nice once managed - it's hard to explain, but
         | everything is very _smooth_. I would guess the display
         | synchronization /mixed refresh rate support is to thank.
         | 
         |  _Some_ Electron-based things and Steam are the main holdouts I
         | 've noticed.
         | 
         | I suspect the Electron things at-large will be sorted out
         | before Steam... they simply need to rebase while Valve has to
         | modernize their libraries _(ie: vgui)_
        
           | c-hendricks wrote:
           | Steam recently underwent a large GUI refresh, vgui has
           | officially been retired.
        
             | bravetraveler wrote:
             | That's just one I could name from memory - if you run _'
             | xlsclients'_ you'll still see Steam isn't Wayland.
             | 
             | I was _very_ hopeful that the redesign would be sufficient;
             | it was not.
             | 
             | Thank you for the information, though - important to be
             | current
        
       | anotherhue wrote:
       | I enjoy foot very much in conjunction with sway.
        
       | ta988 wrote:
       | There was this comment in another submission today that is worth
       | a read on why some terminals are faster on some tasks and not
       | others https://news.ycombinator.com/item?id=37623669
        
       | eddythompson80 wrote:
       | Tbh, I never ventured outside of Konsole. Never felt I was
       | missing something or was limited by performance or anything
       | beyond what the stock Konsole offered.
        
         | mxuribe wrote:
         | I feel the same...and often, when i feel that, then maybe i'm
         | not the target audience for said tool/app.? (Which is not bad
         | either way, simply that as good as the tool/app. might be, its
         | just not for me.)
        
         | zokier wrote:
         | Konsole is decent if you are running kde, but I'd guess
         | majority of people don't
        
           | eddythompson80 wrote:
           | That makes me sad :/
           | 
           | Though now that you mention it, I recall running Tilix back
           | when I used to run gnome. It's been quite a few years.
        
             | grayhatter wrote:
             | it makes you sad that different people do things
             | differently from you?
        
               | coldtea wrote:
               | Why wouldn't it? Obviously when you chose a way to do
               | things you also believe it's the best, which is why you
               | chose it.
        
               | dartos wrote:
               | I don't think that all my choices are always the best
               | choices for everyone.
               | 
               | Sometimes I don't even think they're the best for me, but
               | I try anyway.
        
               | eddythompson80 wrote:
               | No, it makes me sad that I wish more people learned about
               | how awesome kde is.
        
               | stouset wrote:
               | I used KDE and absolutely loathed it.
               | 
               | Admittedly this was fifteen years ago, but I was blown
               | away by the developers' inability to make any actual
               | design decisions, instead punting literally everything to
               | a mountain of configuration options.
               | 
               | Case in point, the taskbar system clock. There were no
               | fewer than _six full tabs_ of options to customize its
               | behavior, including the ability to use Swatch Internet
               | Time. Everything else bought into this philosophy too, to
               | the point where I have to believe its users spend more
               | time configuring it than actually doing anything useful
               | or productive.
               | 
               | Hard pass.
        
               | pridkett wrote:
               | Kids today will never know the awesomeness and
               | terribleness of Swatch Internet Time. I remember when
               | they gave a bunch of money to CNN and for a brief period
               | the time listed on articles was Swatch Internet Time.
               | 
               | Late 90s and early 2000s were strange.
        
               | coldtea wrote:
               | I wish we had remote meetings, even annoucements, and
               | other such stuff still noted in an "internet time" like
               | that.
        
               | stouset wrote:
               | What's wrong with UTC?
        
               | coldtea wrote:
               | That aside from the tz name, it looks like regular time
               | in a regular timezone (where you or the other person
               | recides), so it's equally easy to confuse.
               | 
               | "Oh, you meant 11:00 UTC, not 11:00 Berlin time, ooops!".
        
               | chungy wrote:
               | KDE still has this mentality, though they try to somewhat
               | sweep it under the rug. Toolbars aren't overflowing
               | anymore... usually. But the menus and dialogs still have
               | those hundreds of options and it definitely gives a
               | feeling that the developers can't commit to decisions
               | themselves.
               | 
               | Really, KDE just has a maximalist philosophy. Shove
               | everything into users' faces all at once because of all
               | possible opinion variations.
               | 
               | Part of why I like GNOME is that it's the exact opposite:
               | minimalism. The options it does offer tend to be the
               | options you actually might want to tweak, and there's not
               | many of them. (In the GUI anyway; GNOME still has lots of
               | options available via dconf-editor/gsettings, basically
               | the GNOME equivalent of the Windows Registry)
        
               | spookie wrote:
               | Well, it's a matter of taste. But I find the latest
               | version quite pleasant when using Krita's dark orange
               | color scheme.
               | 
               | I really, really, love how much I can customise though.
               | 
               | I also try GNOME, Xfce, and Cinnamon every new relatively
               | big release. And, as far as I'm concerned, really like
               | all those projects.
               | 
               | I must say though, I hate how GNOME locks you in to their
               | apps. I understand their commitment, but for instance I
               | would appreciate if they let me choose which terminal I
               | could launch from Nautilus.
               | 
               | I use KDE, but it's just a matter of preferring their
               | development tools.
        
               | stonogo wrote:
               | you can, with "gsettings set org.gnome.desktop.default-
               | applications.terminal exec foot" for instance.
               | 
               | GNOME is just as configurable as KDE; the difference is
               | KDE bothers to make any of these settings discoverable.
        
               | spookie wrote:
               | Thanks for the tip!
        
               | eddythompson80 wrote:
               | A lot of the last few years of releases has been about
               | tweaking defaults and providing a smoother experience for
               | first time users. This is very subjective obviously, but
               | I find KDE Ddefaults to be a lot closer to what I like,
               | and I appreciate having all the options be built-in as
               | opposed to having to hunt a dozen or so random gnome
               | shell extensions to get that last 5%.
               | 
               | KDE 3 and 4 were a dumpster fire. Even the first release
               | of Plasma was very rough. But I switched to KDE maybe 5
               | years ago and never really looked back. If your
               | experience with KDE is from 15 years, give it a shot with
               | an open mind. It's pretty great imo
        
               | mixmastamyk wrote:
               | Konsole terminal widget is fine but the context menu is a
               | literal mess and command line less useful than gnome, if
               | that is possible.
        
       | skyfaller wrote:
       | I was very impressed with Foot on my MNT Reform, where I was
       | having trouble getting Alacritty to work (hardware issues too
       | difficult to overcome, and I say that as someone who was able to
       | apply a patch to make Alacritty run on my Pinebook Pro before the
       | mainline version supported the hardware). Foot installed and ran
       | like a breeze, and never felt slow even with pretty minimal
       | hardware.
        
       ___________________________________________________________________
       (page generated 2023-09-23 23:00 UTC)