[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)