![]()
Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch
SuSE Linux: All versions
backspace and/or the function keys do not work as
usual in a telnet connection that runs in a xterm.
backspace the sign \177
instead of \010 (Ctrl-H). This has two simple reasons:
Also on the Linux console \177 is backspace and
delete is \033[3~
Many programmes use Ctrl-H in order to access some help function.
backspace/delete problem traces back to the
times of the telex machines and the first UNIX/DOS machines.
According to the ASCII table \010 really means: move back
the cursor one sign (that does not mean deleting, but overwriting),
\177 means ignore character under cursor (means deleting).
Over the times the meaning of these characters in several terminals and terminal emulations
was slightly altered. E.g. the standard vt100 usually uses \010
for BackSpace while a standard vt220 often uses \177.
Since there is software under Linux, that was developed under most different platforms, this
leads to problems with the mapping of BackSpace and Delete.
This should be controlled by the suitable descriptions either in the /usr/lib/terminfo/*/
files or in the /etc/termcap entries.
Now lets focus on the real problem : Unfortunately the entries for terminals with same name are different between the various types of UNIX operating systems.
It is therefore recommended to leave the terminfo files the way they
are used in S.u.S.E.-Linux. A terminfo file describes the behaviour of
either the terminal or the terminal emulator, for example the xterm. It behaves exactly
as described in the terminfo file /usr/lib/terminfo/x/xterm
and in the C sources. The keyboard mapping in the xterm is exactly defined in
/usr/X11R6/lib/X11/app-defaults/XTerm in our distribution. It complies with the
standard definition in release X11R6.1/6.3. The BackSpace key returns \177,
the Delete key returns \033[3~. With this, there are no problems at all with Motif
programs, since the XKeymap remains unchanged.
If you create a telnet connection to another system, you should pay attention that
the local xterm with its local terminfo file
/usr/lib/terminfo/x/xterm isn't necessarily identical with the remote
xterm with its termcap/terminfo-file.
Even without the applied changes the xterm that is contained in
XFree86[tm]-3.2 (which is capable of using colours) is completely different from the xterms used on
other workstations (X11R5 oder X11R6). Often even function keys use completely different
escape sequences than those that are usually used in the original xterm.
TERM=vt100
and a file ~/.telnetrc, in which is described, how the local
terminal behaves (here xterm) with respect to the remote
telnetd, e.g.
------------------------------------------------ # plato.suse.de unset stop unset start set erase ^? set outbinary true environ export DISPLAY environ export WINDOWID # ------------------------------------------------This way the variables
DISPLAY and WINDOWID will be set (if the
remote telnetd is capable of doing this), the start/stop bits are stripped
such that umlauts can be used without problems with outbinary=true .
erase=\177 describes the local BackSpace key. All these settings
are for the machine plato.suse.de.
xterm with a remote Login shell on the local screen.
BackSpace key using the program stty.
The command is
stty erase ^\?
xlogin (contained in the
package xlogin). This script first passes the Xauthority key via rsh and then opens
a remote xterm on the local screen. It can simply be called with
xlogin hostname
Here's the script xlogin to help users with versions of S.u.S.E.-Linux
older than 4.4.1 :
----------------------------------------------------------------------------
#!/bin/bash
#
rechner=$*
term="/usr/bin/X11/xterm -ls"
xauth="/usr/bin/X11/xauth"
redi="< /dev/null > /dev/null"
#
if [ -z "${DISPLAY}" ]; then
echo "No DISPLAY variable" 2>1&
exit 2
else
DISPLAY=`echo ${DISPLAY%%unix}`
fi
#
#
if [ -z "${HOSTNAME}" ]; then
HOSTNAME=`hostname -f`
fi
#
#
case ${DISPLAY} in
:*)
DISPLAY=${HOSTNAME}${DISPLAY}
esac
#
#
if [ -z "${XAUTHORITY}" ]; then
XAUTHORITY="${HOME}/.Xauthority"
fi
#
# Programs
#
remote_xauth="${xauth} -i merge -"
local_xauth="${xauth} -f ${XAUTHORITY} extract - ${DISPLAY}"
xterm="${term} -display ${DISPLAY}"
#
#
for host in $rechner; do
title="-T ${host} -n ${host}"
${local_xauth} | rsh ${host} "${remote_xauth}"
rsh -n ${host} "exec ${xterm} ${title} ${redi}" &
done
exit 0
----------------------------------------------------------------------
![]()
See also:
Xterm and backspace / del![]()
Keywords: BACKSPACE, DELETE, TELNET, XTERM
![]()
Categories:
X Applications
![]()
Feedback welcome: Send Mail to werner@suse.de (Please give the following subject: SDB-backspace_delete)
![]()
Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch