old-www/HOWTO/BackspaceDelete/morehack.html

272 lines
4.5 KiB
HTML

<HTML
><HEAD
><TITLE
>More Hacking</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
"><LINK
REL="HOME"
TITLE="Linux Backspace/Delete mini-HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="What If Nothing Works"
HREF="notwork.html"><LINK
REL="NEXT"
TITLE="Conclusions"
HREF="concl.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux <B
CLASS="KEYCAP"
>Backspace</B
>/<B
CLASS="KEYCAP"
>Delete</B
> mini-HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="notwork.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="concl.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="MOREHACK"
>8. More Hacking</A
></H1
><P
>So, you're not happy with the information you got. In this case,
there is even more hacking you can do on the Backspace/Delete issue, using
suitable commands that get or set the way X and the console handle
keys.</P
><P
>It could happen that, for some reason, what I said talking about
<A
HREF="x.html"
>X</A
> is not true, that is, X does
<EM
>not</EM
> translate keycode 22 to keysym
<SPAN
CLASS="KEYSYM"
>BackSpace</SPAN
> and keycode 107 to keysym
<SPAN
CLASS="KEYSYM"
>Delete</SPAN
> (or even that, on your particular keyboard, the
keycodes associated to <B
CLASS="KEYCAP"
>Backspace</B
>/<B
CLASS="KEYCAP"
>Delete</B
>
are not 22 and 107). To be sure of that, you need to use
<B
CLASS="COMMAND"
>xev</B
>, a simple X application that will display the
keycode and keysym associated to the key you press. If anything goes wrong,
there are several ways you can fix the problem: the easy, temporary way is
to use <B
CLASS="COMMAND"
>xmodmap</B
>, a command that lets you change many
settings related to X keyboard handling. For instance,
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>xmodmap -e "keycode 22 = BackSpace"
xmodmap -e "keycode 107 = Delete"</PRE
></FONT
></TD
></TR
></TABLE
>
will set correctly the keysyms (assuming that 22 and 107 are the correct
keycodes for you). In case you want to do some changes permanently, you can
play with the resources <TT
CLASS="VARNAME"
>vt100.backArrowKey</TT
>,
<TT
CLASS="VARNAME"
>vt100.translations</TT
> and <TT
CLASS="VARNAME"
>ttyModes</TT
> of
<SPAN
CLASS="APPLICATION"
>xterm</SPAN
> (and similar terminal applications) in the
configuration file <TT
CLASS="FILENAME"
>~/.Xdefaults</TT
>. One
possibility, for instance, is
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>XTerm.VT100.Translations: \
&#60;Key&#62;BackSpace: string(0x7F)\n\
&#60;Key&#62;Delete: string("\033[3~")</PRE
></FONT
></TD
></TR
></TABLE
>
You should take a look at the <SPAN
CLASS="APPLICATION"
>xterm</SPAN
> man page for
more information.</P
><P
>The program that does for the console what <B
CLASS="COMMAND"
>xev</B
>
does for X is <B
CLASS="COMMAND"
>showkeys</B
>: it will dump the console
keycodes of the keys you press. Combining <B
CLASS="COMMAND"
>showkeys</B
> with
<B
CLASS="COMMAND"
>dumpkeys</B
>, which will print on standard output the
console keymap, you can easily fix mismatches between keycodes and
keysyms. Analogously to <B
CLASS="COMMAND"
>xmodmap</B
>,
<B
CLASS="COMMAND"
>loadkeys</B
> can then fix single associations, or load
entirely new console keymaps. With it, you can even change the string
associated to a given keysym. If you want to record these changes, you will
have to define a new keymap for the console (you should have a look at the
system keymaps, usually located in <TT
CLASS="FILENAME"
>/lib/kbd</TT
>).</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="notwork.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="concl.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>What If Nothing Works</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Conclusions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>