Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jul 2005 14:16:51 +0200
From:      Christopher Illies <christopher.illies@molmed.ki.se>
To:        freebsd-questions@freebsd.org
Subject:   Keymapping in X: xterm vs. rxvt
Message-ID:  <20050707121651.GA44778@Klabautermann.ks.se>

next in thread | raw e-mail | index | archive | help
I have some problems with how some programs as sh or dc behave in
aterm, but not xterm. 

About my system:
~%uname -a
FreeBSD Klabautermann.ks.se 5.4-STABLE FreeBSD 5.4-STABLE #8: Thu Jun
30 21:18:02 CEST 2005
root@Klabautermann.ks.se:/usr/obj/usr/src/sys/CUSTOM  i386

With a Swedish keyboard:
~%cat /etc/rc.conf
[...]
keymap="swedish.iso"
[...]

~%cat /usr/X11R6/lib/X11/xorg.conf
[...]
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbRules" "xorg"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "se"
        Option      "XkbVariant" "nodeadkeys"
EndSection
[...]

~%cat .login_conf
[...]
me:\
        :charset=iso-8859-1:\
        :lang=en_US.ISO8859-1
[...]

The problem starts when I use any of rxvt/aterm/wterm with sh as their
shell (e.g. aterm -e sh): In this case when I press "SHIFT" + "8",
which should give me "(" (= open parenthesis) on my keyboard, the shell 
executes a backspace. Also the backspace does not work, but apart from that
all other keys, including special characters, seem to work fine.

With xterm I do not see any of these problems at all.

All other shells, csh, tcsh and zsh work fine with aterm.

So far I could ignore all this and be happy using aterm with zsh, but
when I now (aterm and zsh) use a program like dc or ficl, which
require input, I again have "SHIFT" + "8" mapped to "BACKSPACE" not to
"(". Again, dc does not have this problem run in xterm.

This behaviour seems to be inheritable, because when start xterm not
directly from the window manager, but from aterm, both sh and dc have
"SHIFT" + "8" mapped to a backspace-like action. I checked the $TERM
variable, but that is always "rxvt" on aterm and "xterm" on xterm.

BTW, bc and vi run fine under all conditions, i.e. "(" is where it
should be.

So to conclude: There is something that sh, dc and ficl have in common
concerning how they interpret keys under X that does not work together
with aterm/rxvt/wterm, but runs fine with xterm. Then again, this
behavior seems to be inheritable.

Result: I am confused. Where is the problem? Is it my configuration,
something with xorg, something with rxvt/aterm/wterm or something with
sh/dc/...? How can I fix it, so that sh and dc will have the correct
keyboard mapping also in aterm?

Christopher



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050707121651.GA44778>