Mon, 07 Mar 2005

Finally, Everything Works

I've finally gotten emacs working just the way I want with respect to UTF-8.

For entry of non-ascii characters, I most like RFC 1345. Emacs doesn't have such an input system, and I don't feel like writing one. screen, on the other hand, has support for digraph input, which will do the digraphs from RFC 1345 with the help of a little patch. (The same digraph input will also do any Unicode character if you know the hex for it, via the "U+xxxx" syntax.) Using screen instantly gives UTF-8 input support for pretty much every program I use.

The problem with this and Emacs is that if Emacs gets characters with the high bit set, it treats that high bit as a meta key. This, of course, breaks any method of inputting UTF-8 into emacs from an external source, including cut-and-paste. I had to 'M-x customize-variable keyboard-coding-system' and set the coding system to utf-8. That made UTF-8 work, but broke the meta key, since that was indeed how xterm was sending it.

To fix xterm, I set this in my .Xresources:

XTerm*metaSendsEscape: true

to change the way Meta keys were sent (this also made meta work with a couple more programs, notably irssi). I also added this to my .xsession:

xmodmap -e "keysym Alt_L = Meta_L Alt_L"
xmodmap -e "keysym Alt_R = Meta_R Alt_R"

so that Meta would be bound to my Alt key. (It's an IBM Model M keyboard--Alt is all I have. When I had a Windows key, it was bound as Meta.)

Phil! Gold