xmodmap (apparently) isn't working correctly
Nuno Miguel dos Santos Baeta
nmsb at simplesnet.pt
Tue Oct 17 18:27:47 UTC 2006
Hi!
I have an iBook (late 2004) with a portuguese keyboard and finally
decided to make the keyboard work correctly...
To start here is the output of "setxkbmap -print".
nmsb at mediterraneo:~$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "xfree86+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc(pc105)+pt" };
xkb_geometry { include "pc(pc105)" };
};
Even though this is an iBook, the Generic 105-key (Intl) PC with
portuguese layout was the best option :-|
To remap the keyboad I issued the following commands:
nmsb at mediterraneo:~$ xmodmap -pke > .xmodmap-mediterraneo.original
nmsb at mediterraneo:~$ cp .xmodmap-mediterraneo.original .xmodmap-mediterraneo
and then edited the file ".xmodmap-mediterraneo", using "xev" to find
out which keycodes to change. After the editing, here are the differences:
nmsb at mediterraneo:~$ diff .xmodmap-mediterraneo
.xmodmap-mediterraneo.original
5c5
< keycode 12 = 3 numbersign EuroSign sterling sterling sterling
---
> keycode 12 = 3 numbersign sterling sterling sterling sterling
14c14
< keycode 21 = plus asterisk dead_diaeresis dead_ogonek dead_cedilla
dead_ogonek
---
> keycode 21 = guillemotleft guillemotright dead_cedilla dead_ogonek
dead_cedilla dead_ogonek
27c27
< keycode 34 = masculine ordfeminine asterisk dead_diaeresis
dead_abovering dead_diaeresis dead_abovering
---
> keycode 34 = plus asterisk dead_diaeresis dead_abovering
dead_diaeresis dead_abovering
41,42c41,42
< keycode 48 = dead_tilde dead_circumflex dead_circumflex dead_caron
dead_circumflex dead_caron
< keycode 49 = section plusminus notsign notsign notsign notsign
---
> keycode 48 = masculine ordfeminine dead_circumflex dead_caron
dead_circumflex dead_caron
> keycode 49 = backslash bar notsign notsign notsign notsign
44c44
< keycode 51 = backslash bar dead_grave dead_breve dead_grave dead_breve
---
> keycode 51 = dead_tilde dead_circumflex dead_grave dead_breve
dead_grave dead_breve
108c108
< keycode 115 = ISO_Level3_Shift
---
> keycode 115 = Super_L
Changes done, I load the keyboard using
nmsb at mediterraneo:~$ xmodmap .xmodmap-mediterraneo
and everything is almost working as it should. Because of the "almost
working as it should", I reboot the computer and make sure that the new
".xmodmap-mediterraneo" is loaded, but the problems remain.
Now the problems :-(
* Pressing simultaneously the TLC, read the Third Level Chooser,
(keycode 115 just above) and 3 (keycode 12 at the beginning of the diff)
I should be able to write € (EuroSign), right? Wrong! The £ (sterling)
character is written instead of €. (I am able to write @ using
simultaneously the TCL and 2 (keycode 11), as it should be on this
keyboard.)
* Pressing simultaneously the TCL and + (keycode 21) and the the space I
should be able to write " (dead diaeresis), right? Once more wrong, I
get a cedil?!?
* The dead_diaeresis problem also unables me to use, e.g., an u with
diaeresis. (OK, in portuguese nobody needs diaeresis, but I've studied
german... Anyhow, even if I hadn't studied german, I should be able to
use them!)
Could someone help me? What am I doing wrong?
PS - I know this is not the best solution as the keyboard at login
(still) has some characters in the wrong places (and I've got to choose
my passwords a lit bit more carefully :-), but after login everything
should be right.
--
Nuno Miguel dos Santos Baeta
ille nihil dubitat quem nulla scientia dictat
More information about the ubuntu-users
mailing list