I cannot make xmodmap run on login in Ubuntu 13.04. I have searched around, including in askubuntu and all answers I found do not work.
I have a file named .Xmodmap in my home folder which contains the desired mappings. If I run it manually it works fine, so there is no error there. In order to make it run on startup, I have tried:
-
Using various
.xinitrc
containing one of the following commands:xmodmap .Xmodmap
xmodmap ~/.Xmodmap
/usr/bin/xmodmap /home/NAME/.Xmodmap
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
-
Using
.Xresources
instead of.xinitrc
with the same variations. -
Setting it as a startup application.
None of the above works in Ubuntu 13.04 (64-bit). I also saw a few ideas about globally changing the keyboard mappings, but most of them were not applicable in Ubuntu 13.04 (i.e. the corresponding files did not exist where specified) and I prefer not to touch the global settings anyway.
Best Answer
Ubuntu no longer uses
xmodmap
, but instead usesxkb
(as far as I understand, this facilitates per-window keyboard layouts, among other things).The system-wide map files are in
The maps appears to be loaded hierarchically, with the
pc
map as the root, and whatever language (e.g.en
) as a child of the root.In my particular case, I physically swapped Page Up with Home and Page Down with End on my keyboard, so I very crudely made changes to the system-wide
pc
map, as follows:NOTE: To force Xorg to use your new keyboard map, you may have to remove the existing pre-compiled maps (*.xkm) in
and then restart Xorg.
There are various resources on
xkb
, but this one is related to Ubuntu.