Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English
SuSE Linux: Alle Versionen
BackSpace
und/oder die Funktionstasten nicht wie gewohnt.
BackSpace
das Zeichen
\177
(oktal 177) und nicht \010
(Strg-H bzw. Ctrl-H),
das hat zwei einfache Gründe:
Auf der Linux Konsole ist \177
ebenfalls
BackSpace
und Delete
ist
\033[3~
Viele Programme verwenden Ctrl-H als Hilfe-Aufruf.
BackSpace
/Delete
-Problem geht auf die Zeit
der Fernschreiber und der ersten UNIX/DOS-Maschinen zurück.
Eigentlich bedeutet laut ASCII-Tabelle \010
: bewege Anschlag
um ein Zeichen zurück (also kein Löschen, sondern Überschreiben)
und \177
ignoriere Zeichen unter dem Anschlag (gleich Löschen).
Im Laufe der Zeit hat sich die Bedeutungen der Zeichen auf
diversen Terminals und Terminalemulatoren etwas gewandelt.
So verwendet das Standard-vt100
meist \010
als
BackSpace
und ein Standard-vt220
meist \177
als BackSpace
. Da unter Linux Software gibt, die auf verschiedensten
Plattformen entwickelt wurden, führt das zu entsprechenden Problemen mit der
Belegung von BackSpace
und Delete
. Das sollte durch
die passenden Beschreibungen in den /usr/lib/terminfo/*/
-Dateien bzw.
/etc/termcap
-Einträge gesteuert werden.
Jetzt zum eigentlichen Problem: leider sind die Einträge für Terminal gleichen Namens auf den diversen UNICES verschieden.
Daher ist es ratsam, die terminfo
-Dateien so zu belassen,
wie sie unter der SuSE-Linux verwendet werden.
Eine terminfo
-Datei beschreibt das Verhalten des Terminals
bzw. Terminalemulators, zum Beispiel das xterm
, und das verhält sich genau so,
wie in der terminfo
-Datei /usr/lib/terminfo/x/xterm
und in den c-Sourcen beschrieben. Die Tastaturbelegung im xterm
auf unserer Distribution in /usr/X11R6/lib/X11/app-defaults/XTerm
genau festgelegt und genügt der Standarddefinition vom Release X11R6.1/6.3.
Die BackSpace
-Taste liefert \177
, die
Delete-Taste gibt \033[3~
zurück. Damit gibt es auch keinerlei Probleme
mit Motif-Programmen, da die XKeymap
unverändert bleibt.
Wenn Sie telnet auf ein anderes System machen, so sollten Sie beachten,
dass das lokale xterm
mit seiner lokalen terminfo
-Datei
/usr/lib/terminfo/x/xterm
nicht identisch mit dem remoten
xterm
mit seiner termcap
/terminfo
-Datei
sein muss. Selbst ohne die gemachten Änderungen ist das xterm
aus
XFree86[tm]-3.2 (Farbfähigkeit) völlig verschieden zu den auf anderen Workstations
gebräuchlichen xterms (X11R5 oder X11R6).
Oft werden selbst für Funktionstasten völlig andere Escape-Sequenzen verwendet, als
das originale xterm
üblicherweise verwendet.
TERM=vt100
und eine Datei ~/.telnetrc
, in der beschrieben
wird, wie sich sich das lokale Terminal (hier xterm
)
für den remoten telnetd
verhält, zum Beispiel:
------------------------------------------------ # plato.suse.de unset stop unset start set erase ^? set outbinary true environ export DISPLAY environ export WINDOWID # ------------------------------------------------Es werden dadurch die Variablen
DISPLAY
und
WINDOWID
exportiert
(falls der remote telnetd
das kann), die
Start- und Stop-Bits gestript, um mit outbinary=true
problemlos auch Umlaute zu verwenden. erase=\177
beschreibt die lokale BackSpace
-Taste. Das alles
für den Rechner plato.suse.de
.
xterm
mit einer remoten
Login-Shell auf dem lokalen Bildschirm.
stty
das Verhalten
der remoten Programme für die lokale BackSpace
-Taste.
Der Aufruf lautet dafür:
stty erase ^\?
xlogin
aus dem Paket xlogin,
welche per rsh erst den Xauthority
-Schlüssel übergibt, um
dann ein remotes xterm
auf dem lokalen Bildschirm zu öffnen.
Aufruf ist einfach:
xlogin hostnameHier nochmals das Skript
xlogin
für SuSE-Linux-Versionen
vor 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 ----------------------------------------------------------------------
Siehe auch:
Stichwörter: BACKSPACE, DELETE, LÖSCHEN, TELNET, XTERM
Kategorien:
X-Applikationen
Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English