この付録では、キーボードの再マッピングについて説明します。キーボードの特殊キーのマッピングを変更する方法を取り上げます。また、キーボード上の Compose キーの設定解除と設定の方法についても説明します。
マウスボタンの再マッピングについて詳しくは (たとえば、左ききの人がマウスを操作しやすいようにするなど)、『OpenWindows ユーザーズガイド』を参照してください。
Compose キーは、IA システムでは Ctrl-Shift-F1 キーに割り当てられています 。
Compose キーを使用しない場合は、そのキー操作を無効にすることができます。まず Multi_key のキーコードを探します。
$ xmodmap -pk | grep Multi_key |
次のような行が表示されます。
nn 0xff20 (Multi_key)
ここで重要な情報は、行の先頭の nn で示される 2 桁のキーコード番号です。このキーコード番号を使って、.xinitrc ファイル内に次の行を挿入します。
xmodmap -e 'keycode nn = NoSymbol' |
Compose キーを再設定するには、.xinitrc ファイル内の上記の行をコメントに変更した後で OpenWindows を再起動します。
この節で示すキーの再マッピングスクリプト (Type-4 と Type-5 のキーボード用) を使って、キーボードの左右パネル上の大部分の特殊キー (つまり、キーボードの左側と右側にあるキーパッド) を再マッピングします。
この節の以降の説明はすべて、SPARC ベースのマシンだけに適用されるので注意してください。
再マッピングスクリプトを作成し使用する手順は次のとおりです。
任意のテキストエディタを使って、lefty.data というスクリプトファイルを作成します。
このファイルは、どのディレクトリにあってもかまいません。ただし 手順 4 は、このファイルを作成したのと同じディレクトリで実行しなければなりません。
後述の表 C-1 に示すスクリプトを入力します。
先頭に感嘆符 (!) が付いた行はコメント行で、実際の操作は実行しません。
ファイルを保存してエディタを終了します。
プロンプトに対して、次のコマンドを入力します。
$ xmodmap lefty.data |
上記のコマンドは、スクリプトファイル lefty.data と同じディレクトリ内で入力してください。
ワークスペース内でマウスボタンをクリックして、スクリプトの内容を有効にします。
上の手順を実行すると、左ききの人向けにマッピングされたキーボードを使えるようになります。
手順 1 で説明したように、次のスクリプトを lefty.data ファイルに入力します。
! ! lefty.data ! ! Data for xmodmap to set up the left and right function keys ! for left-handed use on Sun Type-4 keyboard. To use this data, ! type the following where <filename> is the name of the file ! (i.e., lefty.data). ! ! xmodmap <filename> ! ! The comments below correspond to the keycode assignments ! following immediately thereafter. ! |
! swap L2 (Again) with R1 (Pause) ! swap L3 (Props) with R6 (KP_Multiply) ! swap L4 (Undo) with R4 (KP_Equal) ! swap L5 (Front) with R9 (KP_9) ! swap L6 (Copy) with R7 (KP_7) ! swap L7 (Open) with R12 (KP_6) ! swap L8 (Paste) with R10 (KP_Left) ! swap L9 (Find) with R15 (KP_3) ! swap L10 (Cut) with R13 (KP_1) ! ! chng R3 (Break) to L1 (Stop) ! chng R2 (Print) to R10 (Left) ! chng R5 (KP_Divide) to R12 (Right) ! ! chng Linefeed to Control-R ! keycode 10 = R1 R1 Pause keycode 28 = L2 L2 SunAgain keycode 32 = R6 R6 KP_Multiply keycode 54 = L3 L3 SunProps keycode 33 = R4 R4 KP_Equal keycode 52 = L4 L4 SunUndo keycode 56 = R9 R9 KP_9 Prior keycode 77 = L5 L5 SunFront keycode 58 = R7 R7 KP_7 Home |
keycode 75 = L6 L6 SunCopy keycode 79 = Right R12 KP_6 keycode 100 = L7 L7 SunOpen keycode 80 = Left R10 KP_4 keycode 98 = L8 L8 SunPaste keycode 102 = R15 R15 KP_3 Next keycode 121 = L9 L9 SunFind keycode 104 = R13 R13 KP_1 End keycode 119 = L10 L10 SunCut keycode 30 = L1 L1 SunStop keycode 29 = Left R10 KP_4 keycode 53 = Right R12 KP_6 keycode 118 = Control_R add control = Control_R |
キーボードのキーの設定を元に戻すには、次の 2 つの方法があります。1 つは、OpenWindows を一度終了して再起動します。もう 1 つは、キー設定を元に戻すための別のスクリプトを作成して、必要に応じてそのスクリプトを実行します。2 番目の方法は、キー設定を定期的に再設定する場合に望ましい方法です。
再設定用のスクリプトを作成するには、次の手順を実行します。
任意のテキストエディタを使って、nolefty.data というスクリプトファイルを作成します。
このファイルは、lefty.data スクリプトと同じディレクトリに作成してください。
後述の表 C-2 に示すスクリプトを入力します。
先頭に感嘆符 (!) が付いた行はコメント行で、実際の操作は実行しません。
ファイルを保存してエディタを終了します。
コマンドプロンプトに対して、次のコマンドを入力します。
$ xmodmap nolefty.data |
nolefty.data ファイルを有効にするには、上記のコマンドを nolefty.data が存在するディレクトリで実行してください。
! ! nolefty.data ! ! Data for xmodmap to reset the left and right function keys ! after being set for left-handed use on the Sun type-4 keyboard. ! To use this data, type the following where <filename> is the name ! of the file. ! ! xmodmap <filename> ! ! Reassign standard values to left function keys. ! keycode 10 = L2 L2 SunAgain keycode 32 = L3 L3 SunProps keycode 33 = L4 L4 SunUndo keycode 56 = L5 L5 SunFront keycode 58 = L6 L6 SunCopy keycode 79 = L7 L7 SunOpen keycode 80 = L8 L8 SunPaste keycode 102 = L9 L9 SunFind keycode 104 = L10 L10 SunCut ! ! Reassign standard values to right function keys. ! keycode 28 = R1 R1 Pause keycode 29 = R2 R2 Print keycode 30 = R3 R3 Scroll_Lock Break keycode 52 = R4 R4 KP_Equal keycode 53 = R5 R5 KP_Divide keycode 54 = R6 R6 KP_Multiply keycode 75 = R7 R7 KP_7 Home keycode 77 = R9 R9 KP_9 Prior keycode 98 = Left R10 KP_4 keycode 100 = Right R12 KP_6 keycode 119 = R13 R13 KP_1 End keycode 121 = R15 R15 KP_3 Next ! ! Reassign the Linefeed key as such and remove from control map. ! remove control = Control_R keycode 118 = Linefeed |
IA マシンのファンクションキーを再マッピングして、SPARC キーボード上にある Help、Cut、Copy、Paste、Undo、および Front などの各キーとして機能させることができます。また右側のコントロールキーを再マッピングして、メタキーにすることもできます。
この節の以降の説明は、IA ベースのマシンだけに適用されるので注意してください。これらのキーを再マッピングした場合、キーボードの再マッピングを取り消してからでないと kdmconfig を使って設定情報やビデオ情報を変更することはできません。
再マッピングスクリプトを作成し使用する手順は次のとおりです。
任意のテキストエディタを使って、ユーザのホームディレクトリ上に fkeys というスクリプトファイルを作成します。
後述の表 C-3 に示すスクリプトを入力します。
ファイルを保存して、エディタを終了します。
プロンプトに対して、次のコマンドを入力します。
$ xmodmap fkeys |
上記のコマンドは、スクリプトファイル fkeys と同じディレクトリ内で入力してください。
ワークスペース内でマウスボタンをクリックして、スクリプトの内容を有効にします。
上の手順を実行すると、ファンクションキーを Help キー、Cut キー、Copy キー、Paste キー、Undo キー、および Front キーとして使用することができます。
手順 1 で説明したように、次のスクリプトを fkeys ファイルに入力します。
! keysym F2 = L10 keysym F3 = L6 keysym F4 = L8 keysym F5 = L9 keysym F8 = L4 keysym F9 = L5 remove control = Control_R keycode 0x47 = Meta_R add mod1 = Meta_R |
キーボードを元の設定に戻すには、次の 2 つの方法があります。1 つは OpenWindows を一度終了して、再起動します。もう 1 つはキー設定を元に戻すための別のスクリプトを作成して、必要に応じてそのスクリプトを実行します。2 番目の方法は、望ましい方法です。
再設定用のスクリプトを作成するには、次の手順を実行します。
任意のテキストエディタを使って、normal というスクリプトファイルを作成します。
このファイルは、fkeys スクリプトファイルと同じディレクトリに作成します。
後述の 「normal スクリプト」に示すスクリプトを入力します。
ファイルを保存してエディタを終了します。
プロンプトに対して、次のコマンドを入力します。
$ xmodmap normal |
上記のコマンドは、スクリプトファイル normal と同じディレクトリ内で入力してください。
手順 1 で説明したように、次のスクリプトを normal ファイルに入力します。
keycode 8 = grave asciitilde keycode 9 = 1 exclam keycode 10 = 2 at keycode 11 = 3 numbersign keycode 12 = 4 dollar keycode 13 = 5 percent keycode 14 = 6 asciicircum keycode 15 = 7 ampersand keycode 16 = 8 asterisk keycode 17 = 9 parenleft keycode 18 = 0 parenright keycode 19 = minus underscore keycode 20 = equal plus keycode 21 = keycode 22 = BackSpace keycode 23 = Tab keycode 24 = Q keycode 25 = W keycode 26 = E keycode 27 = R keycode 28 = T keycode 29 = Y keycode 30 = U keycode 31 = I keycode 32 = O keycode 33 = P keycode 34 = bracketleft braceleft keycode 35 = bracketright braceright keycode 36 = backslash bar brokenbar keycode 37 = Caps_Lock keycode 38 = A keycode 39 = S keycode 40 = D keycode 41 = F keycode 42 = G keycode 43 = H keycode 44 = J keycode 45 = K keycode 46 = L keycode 47 = semicolon colon keycode 48 = apostrophe quotedbl keycode 49 = keycode 50 = Return keycode 51 = Shift_L keycode 52 = keycode 53 = Z keycode 54 = X keycode 55 = C keycode 56 = V keycode 57 = B keycode 58 = N keycode 59 = M keycode 60 = comma less keycode 61 = period greater keycode 62 = slash question keycode 63 = keycode 64 = Shift_R keycode 65 = Control_L keycode 66 = keycode 67 = Alt_L keycode 68 = space keycode 69 = Alt_R keycode 70 = keycode 71 = Control_R keycode 72 = keycode 73 = keycode 74 = keycode 75 = keycode 76 = keycode 77 = keycode 78 = keycode 79 = keycode 80 = keycode 81 = keycode 82 = Insert keycode 83 = Delete keycode 84 = keycode 85 = keycode 86 = Left keycode 87 = Home keycode 88 = End keycode 89 = keycode 90 = Up keycode 91 = Down keycode 92 = Prior keycode 93 = Next keycode 94 = keycode 95 = keycode 96 = Right keycode 97 = Num_Lock keycode 98 = Home KP_7 KP_7 keycode 99 = Left KP_4 KP_4 keycode 100 = End KP_1 KP_1 keycode 101 = keycode 102 = KP_Divide keycode 103 = Up KP_8 KP_8 keycode 104 = KP_5 KP_5 KP_5 keycode 105 = Down KP_2 KP_2 keycode 106 = KP_Insert KP_0 KP_0 keycode 107 = KP_Multiply keycode 108 = Prior KP_9 KP_9 keycode 109 = Right KP_6 KP_6 keycode 110 = Next KP_3 KP_3 keycode 111 = Delete KP_Decimal KP_Decimal keycode 112 = KP_Subtract keycode 113 = KP_Add keycode 114 = keycode 115 = KP_Enter keycode 116 = keycode 117 = Escape keycode 118 = keycode 119 = F1 keycode 120 = F2 keycode 121 = F3 keycode 122 = F4 keycode 123 = F5 keycode 124 = F6 keycode 125 = F7 keycode 126 = F8 keycode 127 = F9 keycode 128 = F10 keycode 129 = SunF36 keycode 130 = SunF37 keycode 131 = Print SunSys_Req keycode 132 = Scroll_Lock keycode 133 = Pause Break keycode 134 = keycode 135 = Multi_key keycode 136 = Mode_switch