PC/ATキーボードの使い勝手ちょびっと向上計画

快適なドキュメント作成環境のためのわずかなカスタマイズ

PC/ATのキーボードは使いにくい!

NECの98アーキテクチャで採用されているキーボードを長く使ってきた人間には,PC/ATのキーボードはなかなか慣れないものです。98のキーボードも[CTRL]と'A'の間に[CAPS]があったりして,それほど良いデザインとは言えませんが,日本語の入力に関係する特殊キーは整理されています。PC/ATのキーボードの良いところは,カーソルキーの配置が凸形であることくらいで,テンキーにカンマはありませんし,刻印されている文字や記号が入力できなかったりするのでストレスを感じることがしばしばです。

[ESC]が遠いじゃないか!

[CTRL]はやっぱり'A'の左になくちゃ!

このストレスの元をなんとか解消したいと思いませんか?

思わない(戻る)。

キーを交換しよう

キーの交換といっても,キートップの交換ではありません。(^^;

まず考えられるのがキーの配列を変更することです。配列の変更といっても,ドヴォラック配列にするような大幅な変更ではなく,特殊キーのいくつかを交換するにとどめるだけでも,使い勝手を格段に向上させることができるでしょう。

キーの入替えツールはいくつもありますが,WindowsアプリでもDOS窓でも有効で,メモリの占有が少ないSwapScan.386というドライバを例にします。

SwapScan.386の組込み方

SwapScan.386をwindows\systemフォルダに複写し,SwapScan.386はsystem.iniを直接書き換えて使用します。system.iniはWindowsの動作に直接影響する初期設定ファイルですから,慎重にテキストエディタで書き換えてください。自己責任作業を実行する自信のない人はやめておきましょう。

やめる(戻る)。

自信はないけれど興味があるという人は,このまま読み進んでください。

system.iniの[386Enh]セクションにSwapScan.386を登録し,その直後に[SwapScan.386]という新たなセクションを作成します。

[386Enh]
 :
device=SwapScan.386

[SwapScan.386]

この直後に新しい定義を記述します。

(例)
[SwapScan.386]
SwapHanzenEsc=yes
SwapLCtrlCaps=yes

SwapScanにもともと定義済みの関数は少なく,最も頻繁に使用されるであろうキー交換定義についてのみ,キーが発生するスキャンコードを知らなくても設定できるようになっています。

逆に言うと,ここがSwapScanの取っ付きにくいところで,他のキーの交換はスキャンコードを自力で調べなければならないのです。面倒くさいですか?

面倒くさいからやめる(戻る)。

それではまず2つの交換定義について説明します。

基本編
SwapScan.386での簡易定義

[半/全]と[ESC]の交換

SwapHanzenEsc=yes

これは読んだまま,「[半/全]と[ESC]の交換はする」です。

[ESC]を多用するアプリケーション,主に[ESC]をプリフィクスとしているテキストエディタを愛用する人にとっては,[ESC]が手のとどきやすいところに移動してきて非常に快適に操作できるでしょう。あるいは老舗のワードプロセッサである一太郎をマウスをあまり使わずに[ESC]メニューを出してポン・ポン・ポンと快適に作業したい人に奨められます。

交換しないのであれば,

SwapHanzenEsc=no

…と明示しておきます。

[CTRL]と[CAPS]の交換

SwapLCtrlCaps=yes

こちらもそのまま,「左[CTRL]と[CAPS]の交換はする」ですね。

[CTRL]+'A'などをコマンドキーとするアプリケーションを愛用する人にとっては,ホームポジションから手が離れてしまうのは苦痛以外のなにものでもないでしょう。コマンドキーを多用するアプリケーションはダイヤモンドカーソルを擁するテキストエディタや一部のワープロに限りません。Windowsの標準的なキー操作の[CTRL]+'Z'(アンドゥ),[CTRL]+'X'(カット),[CTRL]+'C'(コピー),[CTRL]+'V'(ペースト),[CTRL]+'F'(検索)など色々あります。メニューバーやマウスの右クリックだけが標準なのではありません。

[CTRL]と[CAPS]を交換することで,ホームポジションからほとんど手が離れない流れるような操作を実現することができます。

交換しないのであれば,

SwapLCtrlCaps=no

…と明示しておきます。

応用編
SwapScan.386での詳細定義

どうして[NumLk]がワンキーじゃないんだ!

ノート型パソコンや省スペース型キーボードのように,独立したテンキーのないキーボードでは[NumLk]キーを多用する場合があると思います。しかしその[NumLk]がシフトキーを押しながら[ScrLk]を押さなければならない。これは面倒ですからシフト関係を逆にしてしまいます。

MapScan=45 46           ←(ScrLk → NumLk)
MapScan=46 45           ←(NumLk → ScrLk)

このように「MapScan=xx xx」の書式で,元スキャンコード/新スキャンコードを記述すること実現できます。簡易定義と異なり,これらはセットで記述しなければキーの交換にはなりません。

スキャンコードの値(xx)は十六進数です。

注意しなければならない2バイトの値を持つキーの場合で,2バイト同士のキーでないと交換することはできません。

以下に代表的な特殊キーのスキャンコードを掲げておきます。

主要特殊キーのスキャンコード表
特殊キースキャンコード(押下時)
Esc01
Backspace0E
Tab0F
Enter1C
空白39
Caps Lock/英数3A
左Shift2A
右Shift36
左Ctrl1D
右CtrlE0 1D
左Alt38
右AltE0 38
NumLock45
Scroll Lock46
無変換7B
変換79
カタカナ/ひらがな70
左WINE0 DB
右WINE0 DC

なお,他の人と共用している端末の場合は,交換したキーのキートップをテプラ等で変更しておきましょう。機能キーはほとんどの人がキートップを見て押していますので,すぐに騙されてしまいます。教室や職場の共用端末にこんなことをするわけにもいかないでしょうが,家族で共用しているくらいなら許容されてもよいでしょう。

キー交換によらない方法

SwapScan.386による定義以外でも入力を快適にする要素はあります。代表的なところでIMEのキーカスタマイズです。

[ALT]+[全/半]なんて押しにくい!

Windows普及以降,なんでもマウスでやらなくちゃいけないと思い込んでいるとしか見えない人が多いようです。例えばIMEのON/OFF。どうしてタスクトレイのIMEアイコンをマウスでわざわざクリックしなければならないのか。両手はキーボードのホームポジションに置かれて,今まさに思考を中断させることなく文章を入力しようとしているのに。

標準的な[漢字]キーである[ALT]+[全/半]を知っていればまだよい方ですが,[ALT]+[全/半]なんてホームポジションから手が離れることに変わりはありません。こんなキーで日本語入力を開始させるなんて,日本人を馬鹿にしているとしか思えません。

IME起動トグルキーを[全候補]キーにしてやれば,右手親指だけでON/OFFできるようになります。[漢字]([ALT]+[半/全])キーの設定をそのままにしておけば,他の人と共用している端末でも機能キーの交換の場合のような問題は生じません。

DOS窓使いのFEP定義

Windows MEなどという腐れOSもどきが出てくるまでは,DOS窓もそこそこ使えるものでした。DOS窓で組み込まれるかな漢字変換システムは従来FEPと呼ばれ,DOS窓のプロパティの「バッチファイル」に記述したDOSIME.BATで組込をおこないます。組み込まれなかった場合,WindowsのIMEがDOS窓に対応していればそのまま使用されます。

一般に新しいIMEの方が賢いですし,辞書が共有できるという利点は非常に大きいので一本化できれば問題はありませんが,使い分ける場合はFEPの起動キーなどもカスタマイズします。

MSIMEKEY.EXEによるMSIME.CFGの生成

Windowsに標準で付属するFEPはMSIMEです。WindowsのMSIMEと紛らわしいので以下MSIME(DOS)と記述します。MSIME(DOS)はエーアイソフトのWX2をベースとしたFEPで,辞書の形式も共通です。辞書の冒頭をバイナリエディタなどで覗いてやると,WX2と書いてあります。

キー定義はMSIME.CFGというファイルに記述することで反映されますが,このファイルはMSIMEKEY.EXEというコマンドを実行してカスタマイズをおこなうと作成されるものなので,少なくとも最初の1回はMSIMEKEY.EXEを起動してやります。MSIME.CFGが作成されてしまえば,あとは直書きでカスタマイズできます。なお,PC98系のWindowsにはMSIMEKEY.EXEは付属していないので,他のPC/ATで作成したものを複写する必要があります。

MSIME.CFGの編集

MSIME.CFGにおける[全候補]キーの名称は「XFER」で定義されています。もともとこの名称はPC98から来たものです。この項目を探してください。多分初期値は以下のようになっているのではないかと思います。

XFER = 80 06 1B 1B 07 06

これだけ見たら何のことやらさっぱりわかりませんね。当然です。この定義の見方についてはとてもよい資料がありますので参照してください。

参考資料:WX2KEYキーカスタマイズコード表 WX2KEY.LZH 4.7KB

元の所在は,https://enter.nifty.com/iw/nifty/fgaldc/lib/2/13.htmlです。

難しい設定は興味のある人だけにチャレンジしていただくこととして,ここでは単に[全候補]キー([NFER])をFEP起動トグルにするための変更をおこないます。

変更を加える部分はコード列の最初の「未入力状態」項目です。起動トグルのキーコードは「86」ですから,以下の(1)のように変更します。

XFER = 80 06 1B 1B 07 06
       ↓(1)    ↓(2)
XFER = 86 06 1B 1D 07 06

(2)の方はおまけですが,候補一覧状態時の「1B」(次候補)を「1D」(次候補群)に変更しています。初期設定では,次候補キーはスペースキーに割り当てられており,比較的押しやすい位置にある隣同士のキーが同じ機能というのは無駄です。その一方で,次候補群キーが[SHIFT]+[DOWN]という押しにくいキーになっているため,この点を改善します。

DOSIME.SYSの編集

MSIME.CFGの編集を終えたら,次にFEP組込み用バッチであるDOSIME.BATから呼ばれるDOSIME.SYSを編集します。単純にDOS窓を再起動するだけではMSIME.CFGの内容は反映されません。

【編集前のDOSIME.SYSの例】
device=C:\WINDOWS\COMMAND\MSIMEK.SYS
device=C:\WINDOWS\COMMAND\MSIME.SYS /d*C:\WINDOWS\COMMAND\MSIMER.dic /dC:\WX2U.DIC /N
【編集後のDOSIME.SYSの例】
device=C:\WINDOWS\COMMAND\MSIMEK.SYS /a1 /SB32 /SD32 /RI /EZ
device=C:\WINDOWS\COMMAND\MSIME.SYS /a1 /d*C:\WINDOWS\COMMAND\MSIMER.dic /dC:\WX2U.DIC /N /UFC:\WINDOWS\COMMAND\MSIME.CFG /K3 1 /J1

オプションの簡単な説明です。

MSIME(DOS)の組込オプション
/a1拡張メモリに追い出す
/SB32展開バッファのサイズ指定
/SD32同上
/RIローマ字入力時に半角片仮名で変換しない
/EZ[ALT]+英字を通す(VZの@Aで「あ」の入力でなくコマンドキーとする)
/d*基本辞書ファイル名(必須)
/dユーザー辞書ファイル名(必須)
/UFユーザー定義ファイル名(必須)
/Nエコーモード(カーソル位置入力)
/K3 1句読点と記号の指定(この例は句読点が「。,」で括弧がかぎ括弧「」)
/J1候補一覧表示までの変換位置での優先候補表示回数

「必須」とした3つのファイルについての指定だけでもかまいません。

句読点と記号のオプションだけを詳しく表に示しておきます。

オプション[/Kn m]詳細
0123
n、。,.、.,。
m[]/「」・「」/[]・

おわりに

好みもあるのでここで多くを述べませんが,ほんの少しの努力で自分の手になじむ操作を実現することはドクメンテイションに大きな効果をもたらします。ぜひ,キーボード関係のカスタマイズをやってみてください。

よく「環境が変わるたびにカスタマイズするのは無駄だから初期設定に慣れることが一番だ」と主張する方もいらっしゃいますが,複数の人間が端末を共有していた時代ならともかく,押し付けの初期設定など蹴飛ばして自由にカスタマイズし,生産性を向上させることの方が多くの利益をもたらすと思います。

ただし,カスタマイズは快適な環境を手に入れるための手段ですから,決して目的としてはなりません。それこそ本末転倒です。カスタマイズは肝腎な部分をちょっとだけにとどめた方が賢明というものです。

「常に最先端」「長いものには巻かれろ」とばかり新しいOSをすぐに導入するような人ほど,初期設定そのままか,ばきんばきんにカスタマイズするか,いずれか極端なケースが多いように感じるのは気のせいかしらん。


PC/ATキーボードの使い勝手ちょびっと向上計画.
The PC resources. valid XHTML 1.0 Strict. ©2002-2004 by mezala.