I have just upgraded from Fedora 14 with Gnome desktop to Fedora 20 with Mate desktop. Under F14, I previously swapped CapsLock with Control_Left, and Alt_Right with Control_Right. These I did by adding the following lines to /etc/X11/xinit/xinitrc-common (excuse the 'xmodmap's on each line)
xmodmap -e 'clear lock' xmodmap -e 'clear control' xmodmap -e 'remove mod1 = Alt_R' xmodmap -e 'add control = Caps_Lock Alt_R' xmodmap -e 'add mod1 = Control_R' xmodmap -e 'add lock = Control_L'
Under F14, they work as expected. However, when I copy these to /etc/X11/xinitrc-common under F20, the CapsLock Control_L swap does not happen. Instead, both keys become CapsLock. The Alt_R/Control_R swap does work correctly.
Next, I tried the solution offered in the xmodmap man page, and also here: Remapping Caps Lock with xmodmap doesn't work
xmodmap -e 'remove Lock = Caps_Lock' xmodmap -e 'remove Control = Control_L' xmodmap -e 'keysym Control_L = Caps_Lock' xmodmap -e 'keysym Caps_Lock = Control_L' xmodmap -e 'add Lock = Caps_Lock' xmodmap -e 'add Control = Control_L'
Strangely, CapsLock and Control_L keys are now both Control_L.
Doing all swaps with keycode mappings works like a charm though:
xmodmap -e 'clear Lock' xmodmap -e 'clear Control' xmodmap -e 'remove Mod1 = Alt_R' xmodmap -e 'keycode 66 = Control_L' xmodmap -e 'keycode 37 = Caps_Lock' xmodmap -e 'keycode 108 = Control_R' xmodmap -e 'keycode 105 = Alt_R' xmodmap -e 'add Lock = Caps_Lock' xmodmap -e 'add Control = Control_L Control_R' xmodmap -e 'add Mod1 = Alt_R'
The original keycodes before the swap are 66=CapsLock, 37=Control_L, 108=Alt_R, 105=Control_R.
I would like to understand why the first two methods would not work. Any ideas?