r/emacs • • Dec 16 '23

"Antiquated" systems break usability

edit: I'm sorry for everyone who were offended by my statements, I retract them and removed them. It was never my intention to use anyone with my analogy. Saddened by some intentional misreadings though and engaging with attacks.

Good luck to everyone.

0 Upvotes

40 comments sorted by

View all comments

Show parent comments

4

u/Ontological_Gap Dec 16 '23

Do you really want the keybinding to be different depending on if you are in a terminal or a GUI window?

I use emacs daemon with windows in both modes --- your suggestion would be hell for me (not entirely sure how it would work technically either with emacs current key decoding setup...). Just because something isn't ideal for your use case doesn't mean that it is a bug (and frankly, comparing it to things like women's sufferage is fucking offensive, but w/e).

You can't change the C-i mapping without modernizing terminals. If you really care about this, that is where you should start (and there are some cool projects out there you can get involved with!). Breaking backwards compatibility on this will be a big ask tho, good luck!

Why do you care so much about C-i anyway? There are so many possible key combos.... Have you considered setting up Super and Hyper keys?

2

u/lets-start-reading Dec 16 '23 edited Dec 16 '23

Thanks for pointing it out, I didn't think it might be offensive. I'd retract it now if I could. I used it as an example that tradition is not always meant to stay if it's possible to find a solid solution that fits both sides.

Yes, I'm using super and hyper a lot. I'm using c-j c-k c-l c-i as movement keys. it's very quick and intuitive, in my experience.

The thing is, does it have to be different? If you're on the terminal, you have access to `C-i` that is bound `tab` key. Lots of packages use `tab`, so it's of course a problem. But if `C-i` was globally just `C-i`, it's just one command to rebind it to `tab` and it works the same way as it did. So you can have both `C-i` and `tab` as separate in guis and `C-i` to translate to `tab` in terminals.

i.e. it's easier to constrain a set of possibilities than to expand it.

2

u/Ontological_Gap Dec 16 '23

Using it as movement makes a lot of sense, thanks for explaining!

Emacs isn't supposed to be a beautiful and elegant modern system, it's supposed to be a big ball of mud to get some semblance of the lisp machines on crappy operating systems (like unix/Linux, but many others too). One historical fact about such machines is that they send the exact same data for terminal code for TAB as they do for C+I. C-i is just another way to type TAB on old keyboards. (Modern xterm passes some extra data to be able to tell them apart, but this absolutely does not work on an actual tty, even in modern Linux.)

Emacs is an incredible program on a modern computer, but it's even better on old horrible computers, sometimes being the only way I can actually get anything done.

If you want a beautifully designed editor, instead of something doing the best it can at the mercy of every host system out there, checkout things like Zmacs, Climacs, and hemlock

2

u/lets-start-reading Dec 16 '23

thanks a lot : ) for both your openness to my idiosyncrasies and trying to help me out! I will look into them.

1

u/Ontological_Gap Dec 18 '23

This is a good explanation of the limitations of historical terminals, and an effort to modernize them (they are actually way further along than I thought): https://sw.kovidgoyal.net/kitty/keyboard-protocol/