<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Linux keyboard and console HOWTO: Some properties of the VT100 - application key mode</TITLE>
 <LINK HREF="kbd.FAQ-22.html" REL=next>
 <LINK HREF="kbd.FAQ-20.html" REL=previous>
 <LINK HREF="kbd.FAQ.html#toc21" REL=contents>
</HEAD>
<BODY>
<A HREF="kbd.FAQ-22.html">Next</A>
<A HREF="kbd.FAQ-20.html">Previous</A>
<A HREF="kbd.FAQ.html#toc21">Contents</A>
<HR>
<H2><A NAME="s21">21. Some properties of the VT100 - application key mode</A></H2>

<P>
<!--
keyboard!VT100 application key mode
-->

<!--
VT100 application key mode
-->
<P>: Sometimes my cursor keys or keypad keys produce strange codes?
<P>When the terminal is in application cursor key mode the cursor keys
produce  Esc O x  and otherwise  Esc [ x  where x is one of A,B,C,D.
Certain programs put the terminal in application cursor key mode;
if you kill them with <CODE>kill -9</CODE>, or if they crash, then the mode will
not be reset.
<PRE>
        % echo -e '\033c'  
</PRE>

resets all properties of the current VC. Just changing the cursor
application key mode is done by
<PRE>
        % echo -e '\033[?1h' 
</PRE>

(set) and
<PRE>
        % echo -e '\033[?1l' 
</PRE>

(clear).
<P>When the terminal is in application keypad key mode the keypad keys
produce  Esc O y  and otherwise  Esc [ z ~  for
certain y and z. Setting application keypad key mode is done by
<PRE>
        % echo -e '\033=' 
</PRE>

and
<PRE>
        % echo -e '\033&gt;' 
</PRE>

clears it again.
<P>
<HR>
<A HREF="kbd.FAQ-22.html">Next</A>
<A HREF="kbd.FAQ-20.html">Previous</A>
<A HREF="kbd.FAQ.html#toc21">Contents</A>
</BODY>
</HTML>
