When using Colemak in Ubuntu 9.04, I can't get the Caps Lock key to act only as Control. Now, I've tried System>Preferences>Keyboard>Layouts>Layout Options>Ctrl key position. "Make CapsLock an additional Ctrl" makes the button work as both Ctrl *and* Backspace.
I've tried various xmodmap things, such as:
zck@zck-desktop:~$ xmodmap -e "clear Lock"
zck@zck-desktop:~$ xmodmap -e "keycode 66 = Control_L"
zck@zck-desktop:~$ xmodmap -e "add Lock = Control_L"
zck@zck-desktop:~$ xmodmap -e "keysym Caps_Lock = Control_L"
xmodmap: commandline:1: bad keysym target keysym 'Caps_Lock', no corresponding keycodes
xmodmap: 1 error encountered, aborting.
zck@zck-desktop:~$ xmodmap -e "keysym Lock = Control_L"
xmodmap: commandline:1: bad keysym target key symbol 'Lock'
xmodmap: 1 error encountered, aborting.
zck@zck-desktop:~$ xmodmap -e "keysym lock = Control_L"
xmodmap: commandline:1: bad keysym target key symbol 'lock'
xmodmap: 1 error encountered, aborting.
for starters. (I ran the xmodmap -e "clear Lock" command directly before trying any other command, except for the ones that errored). Nothing seemed to work.
When googling, I came across xkeycaps, by jwz. I installed it, and when I mouse over the Caps Lock button, it shows the KeySym as Control_L Control_L BackSpace BackSpace BackSpace BackSpace. So if I understand it correctly, it should act as Control when pressed by itself or with a shift. (I'd also like it to work as Control when pressed with Alt/Meta, since I use Emacs).
I've also tried xmodmap -pke > .Xmodmap, and then editing that file. I changed the line keycode 66 = Caps_Lock NoSymbol BackSpace BackSpace BackSpace BackSpace to keycode 66 = Control_L Control_L Control_L Control_L Control_L Control_L, saved, and then zck@zck-desktop:~$ xmodmap .Xmodmap. It didn't help.
I think that's everything I've found on Google, or this forum. If there's some explanation I should read or website I've missed, please point me at it. What can I do to make this work the way I want it to? Thanks for reading and responding.