Writing a terminal emulator has finally forced me to have opinions about terminal emulation. I do not like this.
Conversation
Notices
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:29 JST Sarah Jamie Lewis -
Embed this notice
pinskia (pinskia@hachyderm.io)'s status on Sunday, 17-Nov-2024 15:46:26 JST pinskia @sarahjamielewis is backspace Control ? or Control h or something different?
This is even worse than tab and control I in my mind. -
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:27 JST Sarah Jamie Lewis I think a lot of the investment in terminal emulators in recent years is likely a direct result of how fractured desktop space is - there is a lot of demand for cross platform UI-applications, but the barriers are non-trivial and if you can just grab a library that simply drops some escape codes into a omni-present terminal and get 80% there - why wouldn't you?
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:27 JST Sarah Jamie Lewis Another example: my wayland compositor goes through all the effort to listen to and structure linux event codes, listing out active modifier keys and fine grained pointer precision and packages them up and sends them to my terminal emulator who then must promptly hack them down so they fit within the fragile and lossy in-band format.
It pains me.
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:27 JST Sarah Jamie Lewis "We need to progressively enhance this 40+ year old protocol so that programs run in my terminal can tell the difference between <tab> and ctrl-i"
What is this ridiculous world that I have stumbled into?
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:28 JST Sarah Jamie Lewis Now that I have my custom lightweight wayland compositor running on my barebones linux kernel - I find myself deeply questioning exactly how much I need/want to care about faithful terminal emulation v.s. just writing new programs that can take advantage of newer interfaces.
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:28 JST Sarah Jamie Lewis The strongest argument I think I can conjure, is that I do rely quite a bit on terminal emulators while working on remote machines - I make heavy use of tmux and vim, and all the underlying cursed machinery that makes them work.
That being said, there are so many alternative workflows there both existant and imaginable that do not rely on the cursed machinery.
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:28 JST Sarah Jamie Lewis Like the other part of this project I'm starting to think about is adding support for the dmabuf protocol to my compositor, and at this point I'll have the compostor and the emulator sharing a hardware buffer, both with direct access to pixelspace - and the poor terminal emulator carefully churning through the clusterfuck of in-band signalling so the driving application can carefully erase out a partial "line" that models a long dead form of video output.
-
Embed this notice
Sarah Jamie Lewis (sarahjamielewis@mastodon.social)'s status on Sunday, 17-Nov-2024 15:46:28 JST Sarah Jamie Lewis It just feels silly. I don't need two display servers with completely different semantics.
-
Embed this notice
ティージェーグレェ (teajaygrey@snac.bsd.cafe)'s status on Monday, 18-Nov-2024 09:11:18 JST ティージェーグレェ As someone who was enamored with the 1982 Bell Labs Blit (but has never seen one in person and could never dream of affording such things) and who has monkeyed around with weird MCI codes (the Domain Specific Language for Amiga CNET BBS that was like ANSI++ for lack of a better description, but only if you had an Amiga with decent terminal software [e.g. Terminus]) and all sorts of other strange esoteric terminals; I can't believe I hadn't seen Jexer before. That is rad! Thanks for sharing! -
Embed this notice
Autumn (autumngirl@urusai.social)'s status on Monday, 18-Nov-2024 09:11:22 JST Autumn With more modern terminals, one can actually get pixel-based GUI full kvm:
https://jexer.sourceforge.io/evolution.html#year2021(I once had thoughts of using terminals in a data diode type application, precisely because everything goes in-band, could run over even serial port, be saved to file/played back anywhere, etc.)
-
Embed this notice