Keymapping in X: xterm vs. rxvt

Christopher Illies christopher.illies at
Thu Jul 7 12:12:38 GMT 2005

I have some problems with how some programs as sh or dc behave in
aterm, but not xterm. 

About my system:
~%uname -a
FreeBSD 5.4-STABLE FreeBSD 5.4-STABLE #8: Thu Jun
30 21:18:02 CEST 2005
root at  i386

With a Swedish keyboard:
~%cat /etc/rc.conf

~%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"

~%cat .login_conf

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?


More information about the freebsd-questions mailing list