Live data from Hacker News

Ghostel.el: Terminal emulator powered by libghostty

dakra.github.io

31–40 of 74 posts

Re: Ghostel.el: Terminal emulator powered by libghostty

#31
post #19
post #12

Earlier quoted context omitted.

Hi dakra! > is there something Ghostel is missing eshell allows me to manipulate text as I would in any other Emacs buffer. If I have a function which wraps a word in quotes, and bind it to a key, I can be confident it will work in eshell like it does anywhere else. It's a real killer feature. If I use evil-mode, or xah-fly-keys, or simply want to use ispell to correct the spelling of a word, it all works. Unfortunat…

Did you see ghostel line-mode? This basically gives you a `M-x shell` experience where everything is a buffer and nothing is send to the terminal until you press enter. There you could type on the prompt line and then call jinx or your quote wrapping function etc as it's just a normal Emacs buffer. You can't edit the scrollback buffer though, but I don't think that's possible in eshell either. But line-mode has it's…

Editing scrollback is possible in eshell, and something I use often.

Re: Ghostel.el: Terminal emulator powered by libghostty

#32
post #19

Earlier quoted context omitted.

Did you see ghostel line-mode? This basically gives you a `M-x shell` experience where everything is a buffer and nothing is send to the terminal until you press enter. There you could type on the prompt line and then call jinx or your quote wrapping function etc as it's just a normal Emacs buffer. You can't edit the scrollback buffer though, but I don't think that's possible in eshell either. But line-mode has it's…

Editing scrollback is possible in eshell, and something I use often.

Ah. I tested it before but now I see that I have `(setq eshell-scroll-to-bottom-on-input 'all)` in my config which always snapped point back to the prompt when I tried to edit the scrollback.

Anyway, unfortunately that is not possible in a Ghostel buffer and most likely also will never be. I'm open to ideas though how we could improve or replicate your eshell workflow.

But also, eshell is awesome and Ghostel is not a replacement for it. It's more a replacement for term.el, maybe shell.el (with line-mode) and other terminal packages like eat and vterm.

Re: Ghostel.el: Terminal emulator powered by libghostty

#33
post #7

Hi! Maintainer of Ghostel here. baokaola and I actually wanted to do a "Show HN" next week, but looks like someone was faster submitting the link. Have a look at the GitHub repo which is a bit nicer for a quick overview: https://github.com/dakra/ghostel To add some context, Ghostel is a terminal emulator for Emacs powered by libghostty-vt. There's a feature comparison vs vterm and eat: https://dakra.github.io/ghostel…

I think the thing that stops me from running more processes inside emacs is that a large diff parse from magit or similar can block everything, and so I end up keeping a separate terminal around anyway.

Re: Ghostel.el: Terminal emulator powered by libghostty

#34
post #14

Question: if I don't use TUIs or millions of lines of scrolling text, what am I missing by not using these newer terminal implementations? I use mintty on Windows and am pretty happy with it.

Exactly as you say, the greatest difference with the recent generation of video terminal emulators that use the GPU through OpenGL or the like, is the much greater rendering speed, which becomes very noticeable with millions of lines of scrolling text, especially if you use high-resolution monitors. Unfortunately, millions of lines of scrolling text are no longer unusual, especially when you frequently compile big so…

Thank you, very interesting!

Re: Ghostel.el: Terminal emulator powered by libghostty

#35
post #14

Question: if I don't use TUIs or millions of lines of scrolling text, what am I missing by not using these newer terminal implementations? I use mintty on Windows and am pretty happy with it.

For me is the ability to maintain the same keyboard workflow, no matter if I’m dealing with files or terminal (switching buffers, navigating/searching/selecting/copying/pasting text, etc.), I get to keep the same set of shortcuts and mental model. And i get to do some small automation on top of it with elisp, which I already do for the rest of my editor anyway.

Re: Ghostel.el: Terminal emulator powered by libghostty

#37

I think the title should mention Emacs somewhere. A terminal emulator is different than a terminal emulator for Emacs.

.el = emacslisp file extension

I know this only because I'm an emacs user. Outside that niche .el is an obscure file extension, so, no, it's not that obvious

Re: Ghostel.el: Terminal emulator powered by libghostty

#38
post #32

Earlier quoted context omitted.

Editing scrollback is possible in eshell, and something I use often.

Ah. I tested it before but now I see that I have `(setq eshell-scroll-to-bottom-on-input 'all)` in my config which always snapped point back to the prompt when I tried to edit the scrollback. Anyway, unfortunately that is not possible in a Ghostel buffer and most likely also will never be. I'm open to ideas though how we could improve or replicate your eshell workflow. But also, eshell is awesome and Ghostel is not a…

I think issue #426[0] would be sufficient, since it would allow for editing after the command is finished. I understand that it probably won't happen any time soon, but embedding a full terminal emulator in Eshell is the thing that's got me staying on EAT right now.

Ghostel looks really nice though!

[0]: https://github.com/dakra/ghostel/issues/426

Re: Ghostel.el: Terminal emulator powered by libghostty

#39
post #7

Hi! Maintainer of Ghostel here. baokaola and I actually wanted to do a "Show HN" next week, but looks like someone was faster submitting the link. Have a look at the GitHub repo which is a bit nicer for a quick overview: https://github.com/dakra/ghostel To add some context, Ghostel is a terminal emulator for Emacs powered by libghostty-vt. There's a feature comparison vs vterm and eat: https://dakra.github.io/ghostel…

I think the thing that stops me from running more processes inside emacs is that a large diff parse from magit or similar can block everything, and so I end up keeping a separate terminal around anyway.

Huh is that true? Does running a command in a terminal buffer block all of EMacs? That's extremely surprising, the main use of these kinds of integrated terminals for me is to compile and run which means long running commands. Is this use case fundamentally not supported due to EMacs's architecture?

Re: Ghostel.el: Terminal emulator powered by libghostty

#40
post #39

Earlier quoted context omitted.

I think the thing that stops me from running more processes inside emacs is that a large diff parse from magit or similar can block everything, and so I end up keeping a separate terminal around anyway.

Huh is that true? Does running a command in a terminal buffer block all of EMacs? That's extremely surprising, the main use of these kinds of integrated terminals for me is to compile and run which means long running commands. Is this use case fundamentally not supported due to EMacs's architecture?

No, running a command in a terminal buffer doesn’t block the emacs UI, but a long running bit of elisp running in emacs can block the UI.
Post reply on HN