jp106 keyboard の NCD X 端末での設置方法

切り替え器をもちいて、PC と X 端末を同じ keyboard や マ ウスを使うときには、PC もしくは X 端末の keyboard を選択する 必要があります。私の場合には、もちろん X 端末の keyboard の 方が使いやすいのですが、Windows で keyboard を自由に設定でき るだけの能力が無いので(だれか教えて!) 、やむなく PC の jp106 keyboard を用いて Unix 上で設定をすることにしました。

loadkeys は便利ですが、これはコンソールにしか使えません。 X 端末上での key の設定は、xmodmap commando でしかうまく行か ないようです。そこで、xev と loadkeys で使われる keymap を見比べて いかのような file をつくりました。これを

% xmodmap -pk で現在の keycord と scan code を表示します。

% xmodmap xmodmap.jp106

のようにして load すれば ok です。.xsession に書き込めば key の変更を意識せずに行えます。

以下の仕様にしています。

  1. Cntl と Caps を入れ替えています。
  2. 半角 key を ESC にしています。ESC は そのまま ESC
  3. 無変換、全変換、ひらがな キーは F6, F5, F7 キー に置き換えています。これは 一太郎や IME の日本語変換と同じ。 mlh (mode less henkan)といっしょに使うと、変換できます。この場合には .emacs に
    ;
    ; from Prof. Kuwada for asking vt100 key
    ;
    (defvar pc98-arrow-keymap (make-keymap))
    (fset 'pc98-arrow-prefix pc98-arrow-keymap)
    ;;;
    ;;; Key bindings for PC98 Keyboard
    ;;; C-q のあとに function key を押してどういう割り当てになっているか
    ;;; 調べると自由な設定ができる.
    
    (define-key global-map "\e[" 'pc98-arrow-prefix)
    (define-key pc98-arrow-keymap "A" 'previous-line)
    (define-key pc98-arrow-keymap "B" 'next-line)
    (define-key pc98-arrow-keymap "C" 'forward-char)
    (define-key pc98-arrow-keymap "D" 'backward-char)
    ;; f.5 - f.9 atok7 と 同じ構造に変換する.(for mLh)
    ;; f.5 (変換) f.6 (ひらがな) f.7 (カタカナ) f.8(半角) f.9 (全角)
    ;; f.4 (ひらがな-> 漢字) 
    (define-key pc98-arrow-keymap "227z" "h/ ")
    (define-key pc98-arrow-keymap "228z" "/ ")
    (define-key pc98-arrow-keymap "229z" "f/ ")
    (define-key pc98-arrow-keymap "230z" "k/ ")
    (define-key pc98-arrow-keymap "231z" "q/ ")
    (define-key pc98-arrow-keymap "232z" "z/ ")
    

問題点: NCD keyboard の setup key に相当する キーをアサ インできませんでした。

! this file sets jp106
!
! Swap Caps_Lock and Control_L
! 
!remove Lock = Caps_Lock
!remove Control = Control_L
!keysym Control_L = Caps_Lock
!keysym Caps_Lock = Control_L
keycode 20 = Control_L
keycode 17 = Caps_Lock
add Lock = Caps_Lock
add Control = Control_L
keycode 14 = Escape
! 
! 1 retume
!
keycode 49 = n
keycode 30 = 2 quotedbl
keycode 54 = 6 ampersand
keycode 61 = 7 apostrophe
keycode 62 = 8 parenleft
keycode 70 = 9 parenright
keycode 69 = 0 asciitilde
keycode 78 = minus equal
keycode 85 = asciicircum underscore
keycode 93 = backslash bar
!
! 2 retume
!
keycode 84 = at grave
keycode 91 = bracketleft braceleft
!
! 3 retume
!
keycode 76 = semicolon plus
keycode 82 = colon asterisk
keycode 83 = bracketright braceright
!
! 4 retume
!
keycode 65 = comma less
keycode 73 = period greater
keycode 74 = slash question
keycode 81 = backslash underscore
!
! 5 retume (普通の人は設定不要)
!
keycode 133 = F6
keycode 134 = F5
keycode 135 = F7

ここ をクリックするともとの pageに戻ります。