OpenWindows ユーザーズガイド (上級編)

付録 C キーボードの設定変更

この付録では、キーボードの再マッピングについて説明します。キーボードの特殊キーのマッピングを変更する方法を取り上げます。また、キーボード上の Compose キーの設定解除と設定の方法についても説明します。

マウスボタンの再マッピングについて詳しくは (たとえば、左ききの人がマウスを操作しやすいようにするなど)、『OpenWindows ユーザーズガイド』を参照してください。

Compose キーの設定解除と設定


IA のみ -

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 を再起動します。

SPARC: 左きき用のキーの再マッピング

この節で示すキーの再マッピングスクリプト (Type-4 と Type-5 のキーボード用) を使って、キーボードの左右パネル上の大部分の特殊キー (つまり、キーボードの左側と右側にあるキーパッド) を再マッピングします。


SPARC のみ -

この節の以降の説明はすべて、SPARC ベースのマシンだけに適用されるので注意してください。


SPARC: 再マッピングスクリプトの使い方

再マッピングスクリプトを作成し使用する手順は次のとおりです。

  1. 任意のテキストエディタを使って、lefty.data というスクリプトファイルを作成します。

    このファイルは、どのディレクトリにあってもかまいません。ただし 手順 4 は、このファイルを作成したのと同じディレクトリで実行しなければなりません。

  2. 後述の表 C-1 に示すスクリプトを入力します。

    先頭に感嘆符 (!) が付いた行はコメント行で、実際の操作は実行しません。

  3. ファイルを保存してエディタを終了します。

  4. プロンプトに対して、次のコマンドを入力します。

    $ xmodmap lefty.data 
    

    上記のコマンドは、スクリプトファイル lefty.data と同じディレクトリ内で入力してください。

  5. ワークスペース内でマウスボタンをクリックして、スクリプトの内容を有効にします。

    上の手順を実行すると、左ききの人向けにマッピングされたキーボードを使えるようになります。

    手順 1 で説明したように、次のスクリプトを lefty.data ファイルに入力します。

表 C-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

SPARC: キーボードの再マッピングの取り消し

キーボードのキーの設定を元に戻すには、次の 2 つの方法があります。1 つは、OpenWindows を一度終了して再起動します。もう 1 つは、キー設定を元に戻すための別のスクリプトを作成して、必要に応じてそのスクリプトを実行します。2 番目の方法は、キー設定を定期的に再設定する場合に望ましい方法です。

再設定用のスクリプトを作成するには、次の手順を実行します。

  1. 任意のテキストエディタを使って、nolefty.data というスクリプトファイルを作成します。

    このファイルは、lefty.data スクリプトと同じディレクトリに作成してください。

  2. 後述の表 C-2 に示すスクリプトを入力します。

    先頭に感嘆符 (!) が付いた行はコメント行で、実際の操作は実行しません。

  3. ファイルを保存してエディタを終了します。

  4. コマンドプロンプトに対して、次のコマンドを入力します。

    $ xmodmap nolefty.data 
    

    nolefty.data ファイルを有効にするには、上記のコマンドを nolefty.data が存在するディレクトリで実行してください。

表 C-2 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: ファンクションキーとコントロールキーの再マッピング

IA マシンのファンクションキーを再マッピングして、SPARC キーボード上にある Help、Cut、Copy、Paste、Undo、および Front などの各キーとして機能させることができます。また右側のコントロールキーを再マッピングして、メタキーにすることもできます。


IA のみ -

この節の以降の説明は、IA ベースのマシンだけに適用されるので注意してください。これらのキーを再マッピングした場合、キーボードの再マッピングを取り消してからでないと kdmconfig を使って設定情報やビデオ情報を変更することはできません。


IA: 再マッピングスクリプトの使い方

再マッピングスクリプトを作成し使用する手順は次のとおりです。

  1. 任意のテキストエディタを使って、ユーザのホームディレクトリ上に fkeys というスクリプトファイルを作成します。

  2. 後述の表 C-3 に示すスクリプトを入力します。

  3. ファイルを保存して、エディタを終了します。

  4. プロンプトに対して、次のコマンドを入力します。

    $ xmodmap fkeys 
    

    上記のコマンドは、スクリプトファイル fkeys と同じディレクトリ内で入力してください。

  5. ワークスペース内でマウスボタンをクリックして、スクリプトの内容を有効にします。

    上の手順を実行すると、ファンクションキーを Help キー、Cut キー、Copy キー、Paste キー、Undo キー、および Front キーとして使用することができます。

    手順 1 で説明したように、次のスクリプトを fkeys ファイルに入力します。

表 C-3 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

IA: キーボードの再マッピングの取り消し

キーボードを元の設定に戻すには、次の 2 つの方法があります。1 つは OpenWindows を一度終了して、再起動します。もう 1 つはキー設定を元に戻すための別のスクリプトを作成して、必要に応じてそのスクリプトを実行します。2 番目の方法は、望ましい方法です。

再設定用のスクリプトを作成するには、次の手順を実行します。

  1. 任意のテキストエディタを使って、normal というスクリプトファイルを作成します。

    このファイルは、fkeys スクリプトファイルと同じディレクトリに作成します。

  2. 後述の normal スクリプト」に示すスクリプトを入力します。

  3. ファイルを保存してエディタを終了します。

  4. プロンプトに対して、次のコマンドを入力します。

    $ xmodmap normal 
    

    上記のコマンドは、スクリプトファイル normal と同じディレクトリ内で入力してください。

手順 1 で説明したように、次のスクリプトを normal ファイルに入力します。

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