François-René Rideau (fare) wrote,
François-René Rideau

  • Music:

Unix: Terminal Madness

The Linux framebuffer console for the Jornada820 and other machines does not heed all the cursor controls that it has on the x86 console. Therefore, many programs that try to reprogram the cursor, including the login program and emacs, end up making the cursor invisible. A correct escape sequence to make the cursor appear, as per the Framebuffer-HOWTO, is ESC [ ? 2 c (thank you once more, pineal gland). Now, my problem, is to convince Emacs to output this control sequence instead of the one it uses to program the cursor, or sometimes after it makes the cursor invisible, so as to ensure the cursor is visible. Can any (X)Emacs guru out there help me find out how?

Yes, of course, an alternative take would be to edit the framebuffer driver and fix it so it works as advertised, or at least doesn't make the cursor invisible unless explicitly requested. However, I'd also like to convince Emacs to output other control sequences when it initializes its output: for instance, I sometimes found the console in the wrong output encoding mode, I'd like to ensure latin1 output encoding with the ESC ( ? B control sequence. The scary thing is I remembered enough of this sequence to retrieve it by testing things on the console, since I had spent quite some time fixing the same issues on a PC. (that is, I remembered ESC something, ( something and an uppercase letter.) My experimentation included the writing of a shell script to display those characters in the ASCII table that are not control codes; the script takes several seconds to run, spawning three subprocesses at every character, and using eval. Ain't Unix a wonderfully designed operating system? I don't think so. Just because I may prefer Linux to its current competition doesn't mean I'm not more and more of a Unix-hater.

Tags: en, j820, linux, pda, smop, unix hater
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded