ghostel.el - Terminal emulator powered by libghostty
41 points by hoistbypetard
41 points by hoistbypetard
Seems it doesn't have an eat-eshell equivalent, which makes it a no-go for me. I'm interested in more performant terminal emulation, but I use eshell heavily. eat-eshell is a gamechanger for heavy eshell users as stuff using terminal emulation like build tools, podman cli, as well as TUI applications, just work in the eshell buffer.
Curious, can you share what you use eshell for that a terminal can do?
I'm not a heavy user of eshell, and always feel that I'm missing on the purpose of eshell.
eshell is my only shell/terminal, so it gets used to run commands interactively (instead of bash/etc). Eshell does a lot of things, like enable using elisp at the shell, but I don't really use it for that. I use it for being a shell that is fully integrated into emacs, instead of being a subprocess. This means it uses the same env vars emacs buffers do. Packages like envrc just work in it. It also has tramp integration, allowing you to cd/mv/cp between machines. Its also just an emacs buffer in the same way as term mode (and unlike vterm and seemingly ghostel afait), which means I can do things like edit and manipulate the text in the scrollback buffer.
As for the shell language itself, I'm not too attached to it. If someone reimplemented bash fully in elisp, with the above emacs env var and tramp integration, I'd probably use that. I might end up doing that one day.
I find Ghostel to be the endgame in Emacs terminal emulation. I use the real Ghostty for quick, one-off terminal windows. Otherwise, when I work on a project I just use Ghostel bound to the project I'm working on with the ghostel-project command. If a Ghostel instance already exists for a project, the command just switches to that instance so switching back and forth to the terminal is super quick.
This sounds exactly like how vterm works, at least in Doom. Are you aware of any notable differences? I'm interested in giving it a shot
This might cause me to give doom emacs another try, and see how it integrates. Jank in the emacs terminal is one reason I let it go last time I tried it.
Curious to try as well. I have my misgivings using vterm but it IS really nice to get my editor commands.
Most of the time terminal emulators get thrown around for emacs, the immediate response I hear is "what do you need it for? cd/mv/ls/cp/rm/mkdr/... -> dired, make/build commands -> compile (not sure where this comes from, project something or another?), etc. etc.
But idunno, I find myself more comfortable with the terminal. Not that I do anything fancier than that stuff, it just feels more flexible.
I'd be down to try and follow a guide to get more comfortable avoiding the terminal with (doom, specifically) emacs, though. It's always impressive to see someone fly around their project using their editor's advanced settings.
For me, the answer is that I want a terminal "scratchpad" right next to my project, the same way I might want a scratch buffer. For the things that I want to do over and over again, figuring out how to script it and have emacs run the script (or just how to do it with inbuilt emacs functionality) makes sense.
But sometimes it's nice to be able to pop up a terminal in your project window, do a couple things, and see what they emit. The responses you hear seem like they could be replaced with "why even use a terminal?"
The responses you hear seem like they could be replaced with "why even use a terminal?"
Yeah that is generally what I hear. Seems cool if it works for them, but I've had some trouble getting used to doing things The Emacs Way.
Emacs terminal emulation definitely makes me cry, because it's so close to being 1000% fine but then certain gens of terminal tools just barf while being inside of vterm and friends and things like some weird row sizing stuff means that jj sometimes looks totally wrong.
I end up with ghostty opened up on the side but I pray for the day that all my stuff just works in Emacs