富士通コンポーネント製
USB接続コンパクト型親指シフトキーボード
試用記その4: メーカー保証外の使い方 Part II
キーカスタマイズの研究

β版公開: 2001年12月07日
最新改訂: 2003年05月11日

[トップへ]/[二つ上は: 親指シフト・メインページ]/
[一つ上は: キーボード・タイピングを語ろう!]


USB接続コンパクト型親指シフトキーボード試用リポート


試用記その4 目次


警告

以下に紹介するリポートでは,富士通コンポーネント製USB接続親指シフトキーボード FKB8579-661 をメーカー保証外の方法で使用している。以下の方法を「試してみる」ときは,試行者自身の責任で,試行者自身がリスクを負う覚悟をもって行うこと。たとえ何らかのトラブルが発生しても,このページの筆者自身はいかなる保証もできない。このことに納得できない人は,以下を試してはならない。

キー・カスタマイズで出来ることとは?

富士通コンポーネント製「USB接続接続・コンパクト親指シフトキーボード」FKB8579-661(以下,FKB8579-661と表す)は,メーカーが指定する使用法としては,

という組み合わせで使うことになっている。このメーカー指定の使用法にしたがう場合でも,ユーザー側は日本語IMEオン時の一部の機能キー配列を次の三つの選択肢から選ぶことが出来る


富士通が『快速親指シフト』で用意した三種類の機能キー配列

KB211風:
『快速親指シフト』のモード1(かなを親指配列にする)を選択し,かつ,「取消・後退キーを右手小指で入力できるように配置します」のオプションをチェックした場合。→ 後退(Backspace)・取消(Esc)キーをOASYS風に配する。ただし,この配置変更はJapanist オン,かつ,かなモードのときのみ有効。
オアシスレガシー・フリーに近い配列:
『快速親指シフト』のモード1(かなを親指配列にする)を選択し,かつ,「取消・後退キーを右手小指で入力できるように配置します」のオプションをチェックしない場合。→ オアシスレガシー・フリーに近い配列。すなわち,オアシス風後退・取消キー配置を使わず,Backspace, Esc ともに106/109日本語キーボードの配列のまま使う。
KB611風:
『快速親指シフト』のモード2(かなと記号を親指配列にする)を選択した場合。→ 後退(Backspace)・取消(Esc)キーをOASYS風に配し,かつ,一部の記号キーもOASYS風に配置する。Japanistオンなら英字モード時でもその配置は有効。しかし,Japanistオフのときは後退(Backspace)・取消(Esc)キー配置は,106/109 日本語キーボード準拠配置となる。

これら選択肢の詳細については別資料のテキスト文書で説明したのでそちらを参照。なお,FKB8579-661ではQWERTY-ローマ字式入力を行うことも出来るが,このページでは触れない。メーカーが用意したこれらのキー配列・選択肢から選ぶことによって,自分のニーズが満たされる親指シフターも多いかもしれない。しかし,次のようなニーズは残念ながらメーカー側が提供した機能によっては満たすことが出来ないのだ:

  1. 日本語IMEオン・オフ両モードにおいて,どちらかの「親指キー」を「空白(Space)」キーとして使いたい場合。
  2. 日本語IMEオン・オフ両モードにおいて,OASYS風の「後退」and/or「取消」キー配置を使いたい場合。
  3. その他の「機能キー」の配置をカスタマイズしたい場合。三例のみ次に挙げる:
    1. 左Ctrlキーを,「A」の左となりに配置したい場合。
    2. Tabと半角/全角とを入れ替えたい場合。
    3. "Delete"キーの操作性を何とか改善したい場合。
  4. 親指エミュレータとして,「親指ひゅんQ」や「Q's Nicolatter」を使いたい。
  5. UNIX/Linux の X Window 環境で使いたい。

なお,FKB8579-661には,コンパクトキーボードに特有の"Fn"という拡張機能キーが装備されている。しかし,この"Fn"キーについては,ハードウェアの制約上,その配置を変更することは不可能である。

さて,上記 I〜Vのようなニーズを実現するためには,日本語IMEオフ時のキー配列を変更する必要がある。何らかのキー配列変更ユーティリティ・ソフトウェアを用いることにより,このようなキー配列変更が可能になる[*]。

USBキーボードでのキー配列変更をサポートしているユーティリティは少ないようだ。筆者の知る限りでは,Windows 2000/XPでのUSBキーボードのキー配列変更ができるツールとして次のものがあるようだ。(下記以外にもUSB日本語キーボードでも使えるキー配置変更ツールはあるかもしれない。)

このページでは,上に挙げたソフトウェアのうち,シェアウェアの Keylay 21 を用いて,さまざまなキーカスタマイズの実践例を紹介することにする。ここで Keylay を選択した理由は次のとおりである:

  1. シェアウェアなので,作者のサポートが受けられる。これには,このページの筆者自身が使い方まで説明する義務がなくて済むから楽だ,という大きなメリットもある。B-)
  2. GUIがとても使いやすい。キー配列の画面図を見ながら手軽にキー配列の変更が可能である。
  3. マニュアル(ヘルプ)が充実している。作者がプログラム製作だけでなく,ヘルプの製作にもかなり気を配っていることがわかる。
  4. アプリケーションごとのキーカスタマイズをサポートしている。その実装にあたっては,他の類似ソフトと同様に階層構造を採っているが,UIの実装面での工夫,およびヘルプの充実によって利用法が理解しやすい。これはいくつかの類似ソフトと比べて Keylay 21 の大きな長所である。「時は金なり」という格言があるが,訳のわからぬ説明書と数時間〜数十時間格闘するよりも,直感的に使えるようにGUIが設計され,かつ,論理的に明晰な説明書が付属しているこのシェアウェアを選択することをお勧めしたい。十分に元は取れるはずだ。
    # 日本のプログラマーのみなさん,
    # もっと明晰な仕様書・説明書が作成できるように精進しましょう。
    # 親指シフトキーボードはライターの思考補助具でもあります。
  5. 任意の機能キーを,"Shift+英字", "Ctrl+英字", "Alt+英字"などの修飾キー操作に割りつけることができる。例えば,後述するように,FKB8579-661で操作しづらい"Delete""Ctrl+D""Shift+Backspace"などに割りつけることもできるのだ。
  6. Keylay 21を Win2K (Win XP)にインストールするには管理者権限(= one of the Administrators)が必要だが,Keylay のキー配列プログラムの使用は制限ユーザー(Usersグループに属するユーザー)でも可能である。これはホーム・ユーザーでも,一台のマシンを複数ユーザーでシェアしている場合には非常に便利だ。

Keylay 21 を導入する際の注意点

次に Keylay 21 for Windows XP の入手先とインストール注意点についてごく簡単にではあるが説明しておく。

筆者が確認した限りでは,Keylay 21 をインストールする際にFKB8579-661が接続されていない状態だと,あとでFKB8579-661を接続しても Keylay 21 側からFKB8579-661が認識できないようだ。

さて,前置きはこのくらいにして,以下 Keylay 21 を活用した FKB8579-661キーカスタマイズ実践例をいくつか紹介することにしよう。

実践例1: 日本語IMEオン・オフ両モードで「親指右=空白」とする

PS/2版の親指シフトキーボード KB211・KB611や,親指BIBLO (LIFEBOOK) では,日本語IMEオフ時(かつ入力ロケールが日本語の場合)には「親指右・変換」キーが「空白」として機能する。ところが,少なくとも筆者が手にした「試用機」段階においては,USB版の親指シフトキーボードFKB8579-661ではこの「日本語IMEオフ時の親指右<-->空白すりかえ機能」が実装されていない。日英混交文を書くことの多いユーザー(プログラマーを含む)にとって,この点はPS/2版親指シフトキーボードと比べるとかなりの損失であるといえる。

この問題を解決するには,日本語IMEオフ時の「親指右」キーで"空白"が打てるように,キーコードの入れ替えを行う必要がある。具体的には,次のように行う:

  1. キー刻印「親指右」で"空白"を出力。同時にキー刻印「変換」でも"空白"を出力。
    FKB8579-661では,「親指右」という刻印のキーと「変換」という刻印のキーは,どちらも"変換"という同一のキーコードを出力するようである。そのため,「親指右」と「空白」との出力キーコードを入れ替えると,同時に「変換」のキーコードも"空白"に入れ替わってしまうのだ。
  2. キー刻印「空白」で"変換"を出力。
  3. Japanistの「快速親指シフト」をNICOLAエミュレータとして使うのなら,「快速親指シフト」のプロパティで左右の親指キーを,「親指左=無変換」,「親指右=空白」という割り付けに設定する。
  4. あと一つ,Japanist 2002を使う場合の注意点を追加しておく。この設定,すなわち,キー配列変更ソフトによって【親指右】=【空白】とする設定を,Japanist 2002と組み合わせて使うためには,Japanist 2002 のプロパティ設定に2点(A, B)の注意が必要である(これら2点の注意点については2001年12月16日に情報追加; 2001年12月17日一部情報修正)
    1. 「動作環境/キーボード/キーボード指定」で,「106/109 日本語キーボード」を指定すること。ここを「親指シフトキーボード(USB: FKB8579-661)」に設定してしまうと,「快速親指シフト」で親指キーの設定が「親指左=無変換,親指右=変換」に固定されてしまうようである。その場合,「快速親指シフト」の設定画面で,親指キーの選択ボタンがグレーアウトされて選択不可能になる。他方,キーボード指定を「106/109 日本語キーボード」とした場合には,Japanist V1.0と同様に,3通りの親指キー組み合わせの中から「親指左=無変換,親指右=空白」という選択をとることが可能になる。
    2. 「動作環境/キーボード」のダイアログボックス下端にある「USB親指シフトキーボードの接続/切断を自動判定する」をチェックしないこと。上のAでキーボードを「106/109 日本語キーボード」と指定したままこのオプションをチェックすると,システム再起動・スタンバイ・休止状態からの再ログインを行った場合にJapanist 2002の「動作環境/キーボード/キーボード指定」が「親指シフトキーボード(USB: FKB8579-661)」に書き換えられてしまうようである。また,これはあくまで私の環境で発生した現象だが,キーボード指定を「106/109 日本語キーボード」と指定し,かつ,「USB親指シフトキーボードの接続/切断を自動判定する」をチェックした状態だと,Japanist 2002を使ったアプリケーションを閉じた後もJapanist 2002のツールバーが消えずに残ることがある。しかも一度,私のPC(Windows 2000……)がフリーズしたことがあった。しかし,どのような条件のときにこのようなトラブルが発生するのか,その再現条件はいまだ確実につかめてはいない。がともかく,上に述べたような事情から, Japanist 2002の「キーボード指定」を「106/109 日本語キーボード」に設定した場合には,このBについては「USB親指シフトキーボードの接続/切断を自動判定する」をチェックしないことをお勧めする。なお,このページの「警告」にある通り,くれぐれもユーザーの自己責任でトライすること!

さて,これらの変更のうち,1と2を Keylay 21 で行ってみよう。Keylay を使えばこの設定変更は実に簡単である。次にキャプチャ図により設定の方法を示す。(なお,このレベルのキー配列変更ならば,上述のフリーウェア Change Key によって実施可能だ。ただし,Win 9x/Me では使えないが。)

「変換」と「空白」入れ替えを行った場合

Keylay 21 で「変換」キーと「空白」キーの配置を入れ替えたところ

この設定でJapanistを使う場合に生じる小問題

この設定変更により,日本語IMEオフ時にも「親指右」で「空白」が打てるようになる。ただし,筆者が Japanist V1.0 で試した限り,「快速親指シフト」には次のような困った問題がある:

英文入力やプログラミングでは必ず日本語IMEオフで入力する,というユーザーならこの仕様(?)はさほど問題ではないとも思えるが,できれば日本語IMEオンの際にも「親指右」で"空白"を打てるようにしたいものだ。この点を解決する方法はなくはない。それは,Japanistのプロパティを一部変更して「日本語IMEオン・半角英字入力」の際には入力文字列が「即時確定」するように設定すればいいのだ。

Japanistの機能を使った簡易「日英」切り替えの設定方法

Japanistのプロパティを次のように設定すると,日本語IMEオン・オフ両モードにおいて「親指右」キーによって小気味よくスペース文字を入力することが出来る。「英字は専ら半角文字で入力するし,半角英字は『即時確定』でよい」という主義のユーザーなら試して欲しい方法だ。

それにしても日本語というのは,こと「文字種」の混在という点に関する限り,実に節操を知らぬ言語だ。人によって文字種の使い方も実にさまざまである。パソコン上での日本語入力操作においても,入力文字種の切り替え操作はユーザーにより千差万別であろう。筆者としても「こういう使い方をしろ」と強制するつもりは全くないのでその点誤解しないでいただきたい。もっとも,プロポーショナル・フォントが普及したいま,「全角英字」なるものの存続意義には疑念を抱かざるを得ないのだが……。これはあくまでも個人的意見を述べたまでだ----なんてこと言いながら,Windows で提供される和文プロポーショナル・フォントがもっている「半角英字体」の書体のきたなさに日々あきれ返っているので,「こんなありさまではやはり『全角英字』はしぶとく生き残るだろうな」とも思っている。B-)

「入力文字種」切替操作にあたっては,上で述べたような使い方のほか,

というように使い分けるユーザーもいるだろう。そういう使い方の場合には現状のJapanistの仕様でもさほど問題は生じないかもしれない。

実践例2: 日本語IMEオン・オフ両モードにおいてOASYS風の「後退」and/or「取消」キー配置を使う

上述の通り,快速親指シフトが提供する OASYS風「後退」・「取消」操作のエミュレート機能は,日本語IME(Japanist)オフ時には無効となる。この点に不満を感じるユーザーもいるだろう。この点を改善するには,

わけであるが,Japanistの快速親指シフトと併用する場合には,次のような制限が生じる。

実際に Japanist (快速親指シフト)を使った場合のカスタマイズ例を次に示す。次の図の例では,OASYS風の「後退」「取消」キー配置を採用した。それにともなって,いくつかの図形文字キーの配置を変更している。ここで一つ注意して欲しい。下の図とFKB8579-661の実際のキー配置とを比較すること。例えば,「:(コロン)」を下の図に従って Keylay 21 で配置変更すると,FKB8579-661の実機上では「1」の左となりに「:」が位置することになる。

注意1:
ここで,「:」を移動したわけの説明: OASYS風「後退」キー配置を実現するためには,「:」の配置変更は不可欠である。ところで,「快速親指シフト」では和文読点「、」が「@」にバインド(束縛)されている。このバインディングは変更不可である。そのため,「@」を動かすと「、」が使いにくくなるので,代わりに「:」を移動したのだ。
注意2:
下図のように,日本語IMEオン・オフ両モードでOASYS風「後退」「取消」キー配置を使うようにキー配置をカスタマイズした場合には,Japanistの「快速親指シフト」の設定に注意する必要がある。注意点は次の二つである:
  1. モード1(かなを親指配列にする)で使うこと。
  2. 「取消・後退キーを右手小指で入力できるように配置します」のオプションをチェックしないこと。
第2点については「あれ,何で?」と感じられる方もいよう。しかし,キー配置そのものを既にOASYS風に変更した場合には,このオプションをチェックしてはいけないのだ。(この注意点,2001/12/11 に追加)

Keylay 21を使ってOASYS風の後退・取消キー配置を行う様子

なお,この(↑)レベルのキー配列変更ならば,上述のフリーウェア Change Key によって実施可能だ。ただし,Win 9x/Me では使えないが。

実践例3: Ctrl_L を「Aの左となり」に配置する(Ctrl_L <--> 英数 の入れ替え)

筆者が試した Windows 2000環境においては,この方法は4通りある:

  1. Win 2K のレジストリ書き換えによって,システム上のすべてのユーザについてこのキースワッピングを行う。この場合,ログオン・ユーザごとにキースワッピングの有効・無効を指定することはできない。この方法では,ログオン時から キースワッピングは有効となる。
    このための環境設定方法を紹介しているWebページ:
    http://homepage2.nifty.com/winfaq/w2k/custom.html#1101
  2. フリーウェアのの Change Key を使う。Change Key は,NT4.0 以降のNT系OSで使用可能。レジストリーのスキャンコード・マッピングを書き換えるためのGUIフロントエンドである。この方法でも,ログオン・ユーザー毎にキーカスタマイズすることはできない。システムの全ユーザに対して単一のキー配列が適用される。
    http://www.vector.co.jp/soft/winnt/util/se214366.html
  3. フリーウェアの AltIMEを使う。作者CHOMBOさんの作品のダウンロードページ:http://homepage1.nifty.com/chombo/download.html
  4. シェアウェアの Keylay XP を使う。(入手先は上述)

ここでは,上述した理由により,Keylay 21 を使った場合の設定変更方法を示す。次の図に見るように,きわめて簡単にこの設定変更が可能である。

Ctrl_L と 英数 の入れ替えのみを行った場合

Keylay 21を使ってCtrl_Lと英数キーとを入れ替えた様子

Ctrl_L,英数,半角/全角 の三つキーで入れ替えを行った場合

下の図の通りに配置変更を行うと,FKB8579-661の実機上では,「Q」の左となりに「英数」が位置する点に注意。念のために言っておくと,FKB8579-661では「Tab」キーは「親指左」キーの左となりにある。

Keylay 21を使ってCtrl_L,英数,半角・全角 の三つキーで入れ替えを行う様子

実践例4: Tabと半角/全角とを入れ替える

FKB8579-661は,図形文字キー配列が完全に106/109 日本語キーボードに準拠しているだけでなく,機能キーの配置もかなり106/109 日本語キーボードのそれに近い。しかし,(少なくとも筆者にとっては)残念なことに Tab キーの配置がOASYS風(=「親指左」の左となり)となっている。

別のページでも述べたとおり,Tabキーの位置が変わると,"Alt+Tab", "Ctrl+Tab"といった Windows 環境でよく(?)利用するショートカットキー操作が使いづらくなってしまう。

この問題の解決策とて,FKB8579-661の"Tab"と"半角/全角"の配置を入れ替えてみよう。実際,筆者はそうして使っているのだ。次に示すのは,筆者HIPPO.JTMが実際に試してみたキー配列の例だ。

HIPPO.JTM風配置

ここでも,下に示す図とFKB8579-661実機のキー配置とをよく照合して欲しい。このHIPPO.JTM風配置で行った変更は次の通りである:

Keylay 21を使ってHIPPO.JTMが使っているキー配列を表した図

参考までに,上図のHIPPO.JTM風キー設定で行える入力モード切替操作の一例 を箇条書きで示す:

なお,"Delete"が押しづらいというのは,FKB8579-661の最大の泣きどころの一つである。筆者は試しにKeylay 21の機能を使って,"Shift + OASYS風Backspace"にこの"Delete"を割りつけてみた。次にその設定の様子を示す:

Keylay で Delete キーを Shift + Backspaceに割りつけた様子

このようにKeylay 21を使用すると,任意の機能キーを,"Shift", "Ctrl", "Alt", "Win"の四つの修飾キー(修飾キーは2個まで同時押下可能)によるシフト操作キーに割りつけることもできる。ちなみに筆者が実際に使用しているのは,Emacs-likeなキーバインディングである。(そういうわけで,"Delete"も実は"Ctrl+D"で操作している。)

実践例5: Q's Nicolatter を Win 2K で使った場合

※この項目については,近日中に環境調査します。

「親指ひゅんQ」については,別ページで「Moblie Thumb」というポータブル親指シフト入力環境について述べたのでそちらを参照して欲しい

実践例6: LASER5 Linux 7.1 + Q's Nicolatter for X で親指シフト入力

以下,分かっていることを簡単に記します。

筆者は,LASER5 Linux 7.1 にFKB8579-661をつないで使ってみた。そのままでは「USB106Jpキーボード」として使えるに過ぎない。しかし,左右の親指キーからきちんと"Muhenkan", "Henkan_mode"という相異なる別個のキーコードが出力されているので,原理的に親指化できるはずだ。

実際にQ's Nicolatter for X を導入してみた。「だす」さんご提供の rpm パッケージを使わせていただいた。結果として xedit では問題なく親指シフト入力ができることを確認している。しかし,筆者の怠慢の故,XIM server の初期設定がいまだ行えていない……[*]。

基本的にFKB8579-661はハードウェア的には「日本語106/109USBキーボード互換」である。ゆえに,「日本語106/109USBキーボード」が動作する Linux システムであれば,Q's Nicolatter for X などのNICOLAエミュレータと組み合わせて使うことによって親指化ができるはずだ。

ただし,比較的新しいカーネルでないと,「日本語106/109USBキーボード」そのものが使えないようだ。次は,NICOLA-ML X-Mail-Count: 00841における今井さんご提供の情報である:

ええと,USB 日本語キーボードの固有のキーですが,親指キーボードに限らず,古いカーネルでは PS/2 キーボードとは別のスキャンコードを出力します.というか,USB キーボードのスキャンコードと PS/2 のスキャンコードは別物で,linux/drivers/input/keybdev.c で PS/2 のスキャンコードに変換してつじつまを合わせいてます. ……中略……
古いカーネルの場合,この変換テーブルが不完全(というか,日本語キーボードを考慮していなくて)この食い違いが生じています.linux-2.4.10 以降からはこれの対策がなされていて,USB キーボードでもPS/2 と同じスキャンコードを出力するようになりました.……中略……
あ,あと,USB キーボードドライバは HIDBP と HID の2種類ありますが,HID の方が無難です.……中略……
というわけで,2.4.10 以降のカーネルを使えば,おそらく X (xmodmap, Q's nicolatter)の設定だけで使えるようになると思います.もし,それで動かない場合は,linux/drivers/input/keybdev.c の変換テーブルに手を入れればおっけー,だと思います.

そこで筆者としては,次のような事前チェックをした上で,ご自分のシステムにFKB8579-661を導入するかどうかを決めることを推奨したい。

推奨策
安物の「日本語106/109USBキーボード」を接続してみて,そのUSB接続キーボードが自分のシステムできちんと動作するかどうかを確認する。(動作しないなら動作する環境を構築する……。) この動作確認がとれたなら,次は自分のシステムでQ's Nicolatter for X (などのNICOLAエミュレータ)がきちんと動作する環境を構築する。この二つをクリアできたなら,あなたのシステムでFKB8579-661+Q's Nicolatter for X(あるいは他のNICOLAエミュレータ)というインプットメソッドを使うことはできるはずだ。

[このページの先頭へ戻る↑]