SolarisでのCtrlとCapsLockキーがらみの設定

家ではAの横にCtrlがあるSunのType6とHHKのキーボードを使っており、猛烈にコマンドを打つ場合にAの隣のCtrlを押す癖がついているので、Aの横がCaps Lockになっているキーボードはついつい勢いで押し間違えてしまうことが多い。
と言うことで、Solarisをリモートから使う分には全く問題ないけど、ノートPCにクライアントとしてセットアップして使う場合に左CtrlとCapsLockキーを入れ替えたりCapsLockをCtrlキーにしたくなる場合がある。
一般的にこういった場合はCapsLockと左Ctrlを入れ替えて使う人が多いのだが、私はCapsLockを使うことが全く無いので、左CtrlとCapsLockを入れ替えずに、CapsLockをCtrlキーとして使っている。左Ctrlを押しても、CapsLockを押してもCtrlと言うわけである。
で、毎回ノートPCにセットアップするたびに検索してるので書いておく。
コンソール画面と、X上でそれぞれ違うシステムでキーボードマップを実現しているので、それぞれの設定が必要になってくる。


コンソール:キーテーブルを直接編集する
USキーボードなら/usr/share/lib/keytables/type_6/usに、
日本語キーボードなら/usr/share/lib/keytables/type_6/japan
に以下のコードを追加する。

#Caps Lockキーをctrlにする
key 57 all shiftkeys+leftctrl up shiftkeys+leftctrl
#左ctrlキーをCapsLockにする場合
#key 224 all shiftkeys+capslock

日本語キーボードならtype_6/japanと直感的にわかるけど、USキーボードだからと言って /usr/share/lib/keytables/type_101/usに設定してしまうとややこしいことになる。
X(ユーザーごと):xmodmapコマンドでの実装
ログイン時に自動実行された~/dtprofile スクリプトからxmodmapコマンドがrcファイルを読み込ませて呼ばれる
~/.xmodmaprc

!Caps Lockキーをctrlにする
remove Lock = Caps_Lock
keysym Control_L = Caps_Lock
add Lock = Caps_Lock
!左ctrlキーをCapsLockにする場合
!remove Control = Control_L
!keysym Caps_Lock = Control_L
!add Control = Control_L

~/.dtprofile

# swap ctrl and caps lock key
if [ -f ~/.xmodmaprc ] ; then
/usr/openwin/bin/xmodmap ~/.xmodmaprc
fi

コメントする

メールアドレスが公開されることはありません。

PAGE TOP