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