GNOMEの設定ではなくXの設定でCapsLockキーをCtrlキーにする方法です。
GNOMEの設定でキー割り当てを変更するとATOK X3 for Linuxが自動起動しなくなるので、Xで設定するようにしました。でもどちらかと言うとこちらの方が馴染みが深くて昔から行ってた方法です。
スーパーユーザーで/etc/X11/xorg.confを修正します。"InputDevice"セクションにキーボードの設定が書かれているので、オプションを1行追加します。
うちの環境では以下のような感じになります。
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
Option "XkbOptions" "ctrl:swapcaps" ← 追加
EndSection
"ctrl:swapcaps"オプションはCapsLockキーとCtrlキーの入れ替えを行います。
xorg.confを修正した場合はXを再起動する必要があるので、一旦ログアウトしてログインし直します。
※xorg.confの修正を誤るとXの起動に失敗して面倒なことになるので要注意です。
ログインすると以下のようなダイアログが表示されます。
Xウィンドウのキーボード設定が現在のGNOMEの設定と異なります。
model "jp106", layout "jp" and no options を想定していましたが、次のような設定を検出しました: model "jp106", layout "jp" and option "ctrl ctrl:swapcaps"
どちらの設定を利用しますか?
「Xの設定を使う」と「GNOMEの設定を使う」のどちらかを選択できるのですが、ここで「Xの設定を使う」を選択しても毎回ダイアログが表示されてしまいます。GNOMEのキーボード設定(システム→設定→ハードウェア→キーボード)の"レイアウトのオプション"で"Ctrl key position"を確認するとXの設定と同じ項目(Swap Ctrl and CapsLock)が選択済みになっていて他の項目は選べないようになってました。
他の項目は選べませんが、他の項目をクリックしてXの設定と同じ項目を再度クリックしてあげたところ、再ログインしてもダイアログは表示されなくなりました。
うちの環境だけの問題かもしれませんが、X側の設定とGNOME側の設定を合わせておく必要があるようです…。