2014年8月12日火曜日

N1MM Loggerを日本語鍵盤で使いこなす

N1MM Loggerを日本語鍵盤で使用する時の問題

N1MM Loggerは英語鍵盤を使っている米国人が開発しているため、他の言語環境での使用には十分に配慮が行き届いていない面がある。

日本語環境の場合、programの基本的動作に殆ど問題は無いが、日本語鍵盤で使用する場合、key配列が異なる為、いくつかの問題が生じる。例えば、
  • 一部の特殊keysが正しく動作しない。
    • 気付いてない方も多いと思うが、例えばF keyの再送に用いる「=」(equal)は日本語鍵盤の「=」key(Shift+「-」)を押しても動作しない。Shift keyを一緒に押しても押さなくても、どちらでも駄目である。
  • 全角パニック」・・・ Running中等に、「Esc」や「F1」を押そうとしてうっかり「半角/全角」keyを押してしまいこれに気付かないと、callsign欄に全角文字が入力され、文字化けしてpanicに陥る。
そこでこの「全角パニック」の防止と、特殊keysを正しい動作に近付ける方法について考察してみる。

Key配列の違い

問題の原因は、英語(US)鍵盤と日本語(JIS)鍵盤とでkey配列が違う事にある。

keyboardの個々のkeyには「key code」という番号が割り当てられていて、これが英語鍵盤と日本語鍵盤とでは異なる。
  • 「key code」は正しくは「仮想key code」と言い、各keyに固有の番号であって、「文字code」の事ではない
    • 同じ番号のkey codeであっても、各言語による鍵盤の仕様により、文字labelの全く違うkeyに割り当てられている事がある。
    • 鍵盤を打鍵した時発生する、より物理的なcodeは「scan code」と言い、「key code」とは又異なる。「scan code」をOSのkeyboard driverが変換した物が「key code」である。Softwareが扱うのは「scan code」ではなく「key code」の方である。
  • Shift、Ctrl、Alt等の修飾keyと一緒に押しても、key codeは変化しない。(一部例外がある。またノートパソコン等ではmakerによる変則的な割り当てもある。)
ではkey codesがどの様になっているのか見てみよう。但し日英鍵盤で配列が同じ所や、今回の議論に関係のない部分については省略する。

英語(US)鍵盤


日本語(JIS)鍵盤

  • 黄色のkeysに着目して欲しい。文字そのものの割り当てもかなり違うが、key codeも大幅に異なっている。同じkey codeなのに割り当てられた文字が全く違っていて、何故共通の番号なのか分からないのもある(例:222)。
  • 参考まで水色のkeysは、特殊keysのうち、日英鍵盤とも同じ位置にあり、key codesが変わらない部分を示した。Labelの文字割り当ては少しだけ違っている。
  • 黒枠で囲まれたkeysは、touch typing(blind touch)の際の両手のhome position。

N1MM Loggerでの特殊key配列


英語鍵盤でのdefault配列

N1MM Loggerを本来の英語環境(英語鍵盤のPC)でinstallした時のkey配列は次の様になっている。
  • 「INS代替」key ・・・ N1MM Loggerでは、running時の「His call(F5)+ Exch(F2)」がINS keyに割り当てられている。これは固定されていて変更できない。また更に別のkeyを、設定によりINSと同一の機能に割り当てる事が可能である。N1MM Loggerでの具体的な設定方法は後述する。
    • Defaultではkey code 186の「;(semicolon)」keyになっている。Home positionで右手小指の位置にあり、touch typingしているなら使い易い場所である。
    • ESM modeを使用するなら、もちろんEnterを押せば済む話である。(だから大抵の方はこのINS key、INS代替 keyとも使用していなかったと思う。)
  • 「TU/Log」key ・・・「TU(F3)+ Log(Enter)」に相当する物だが、ESM modeではEnter keyで済む。しかしこれも別のkeyが設定により割り当て出来る。
    • Defaultではkey code 222の「'(single quote)」keyになっている。Home positionで右手の小指の1つ右、Enterとの間にあり、これも押し易い。Enterと押し間違えても機能がほぼ同じだから問題無い訳である。
    • 英語鍵盤は(日本語鍵盤よりも)home positionからEnter keyが(小指で)押し易い事が特徴だが、「TU/Log」を「'(single quote)」keyにも割り付ける事で更に小指の移動距離が短くて済む。
  • 「再送」key ・・・ 日本語鍵盤では動作しない(様に見える)から使ってない人も多いと思うが、manualに記載のある通り、英語鍵盤では「=(equal)」keyで直前のF key messageを反復できる。
    • S&Pで何度も自分のcallsignを繰り返す時や、exchangeの再送等に使える。
    • INS(F5 + F2)は1 setとして再送される。
    • Programにhard codeされており、他のkeyに設定変更は出来ない。
この他に、SO2Rで用いる次のkeysも、日英鍵盤のkey配列の違いにより影響を受ける。こちらもhard codeされており、変更が出来ない。
  • 「RX focus」toggle ・・・ 左右のradiosをRX focus(Entry focus)だけ入れ替えるkeyである。TX focusは動かない。
    • 「\(back slash)」(key code 220)に割り当てられている。Enter keyの直ぐ上の使い易い位置にあり、しかも他のkeysより少し幅広になっている事が多く、打鍵し易い。
    • TX+RX focusを入れ替えるkeyは(上図には載っていないが)「Pause」keyである。
  • 「Stereo」toggle ・・・ 両方のradiosが受信状態にある時、RX focus(Entry focus)のある側だけをmonauralで両耳で聴くか、左右のradiosを片耳ずつstereoで聴くかをtoggleして切り替えるkey。
    • 微弱信号は両耳で聴いた方が当然聞き取りやすいが、Entry focusの無い側のradioも聴いていた方が、両方から同時に呼ばれた時に対応しやすく、また周波数防御の点でも都合が良い。
    • 「`(grave accent)」(key code 192)に割り当てられている。英語鍵盤では、左上隅の、日本語鍵盤で「半角/全角」keyがある位置にあり、非常に押し易い。筆者は通常stereo modeで聴いているが、微弱局の信号を拾う時だけmonauralに一時的に切り替えている。この切替はかなり頻繁で、受信中は何時でもこのkeyを押せるように指先を待機させている感じとなる。

日本語鍵盤でのdefault配列

一方、N1MM Loggerを日本語環境にinstallした時のkey配列はdefaultで次の様になる。
  • 「INS代替」key ・・・ 英語鍵盤のように「;(semicolon)」keyではなく、その右隣の「:(colon)」keyになる。これは、defaultで設定されているkey code 186が日本語鍵盤では「:(colon)」keyだから。
    • 小指を1つ右に動かさなければならないが、慣れれば十分これでも使い易い。このまま使っている人も多いと思う。
    • 設定により他のkeyにも変更可能である(後述)。
  • 「TU/Log」key ・・・ Defaultではkey code 222であり、何処にあるのかと思ったら何と上段の「^(caret)」keyである。
    • これはちょっと、ESM modeのEnter keyと比べて押し易い位置にあるとは言えない。
    • 設定により他のkeyにも変更可能である(後述)。
  • 「再送」key ・・・ 日本語鍵盤では「=」(Shift+「-」)を押しても動作しない事は既述の通りである。何処にあるのか分からず使っていなかった人も多いと思うが、実は「;(semicolon)」(key code 187)がそれである。
    • 分かってしまえば、home positionで右手小指の位置にあるので意外に使い易いのかも知れない。
    • Programにhard codeされており、設定で変更は出来ない。
SO2R専用keysについても、英語鍵盤とかなり違っている。これらも変更が出来ないので英語鍵盤と比べて使い難さを我慢しなくてはならない。
  • 「RX focus」toggle ・・・ Key code 220だが、日本語鍵盤では「¥(円)」keyである。
    • 「Back space」の左隣。英語鍵盤程使い易くはないが、慣れれば何とか使える。
  • 「Stereo」toggle ・・・ Key code 192で、日本語鍵盤では「@(at mark)」となる。
    • 「P」の隣のやや奥まった位置にあり、上述の英語鍵盤での使い易さと比較するとかなり操作性が悪い。

解決方法


(方法1) 外付けの英語(US)鍵盤を取り付ける

但し、ただ「取り付けただけ」では、実は全く解決にならない。

外付けのUSB英語鍵盤を買ってきて日本語のPCに取り付けると、まず何が起こるかというと、英語鍵盤が日本語配列として認識される
  • これを確認するには、例えば次の様にする。 
    • 「[」key(「P」の右隣)を押すと、「@(at mark)」が入力される。 
    • Shift+「2」(文字labelは「@」)を押すと、「"(double quote)」が入力される。 
  • 以上の状態なら、日本語配列として認識されている。 
この状態では、key codesは実際には次のように割り当てられている。
  • 既述の日本語鍵盤での配列とよく似ているが、次のような特徴がある。
    • 左上の「`(grave accent)」のkey codeは229になる。これは日本語鍵盤の「半角/全角」keyと同じ(場所も同じ)なので、ここを押してしまうと「全角パニック」に陥る。折角英語鍵盤にしたにも拘らず!!
    • 日本語鍵盤とは完全には配列が同じではない。英語鍵盤の方がkey数が少ないため、一部日本語鍵盤にあったkeysを割り付けられず、入力出来ない特殊文字が発生する。
      • 入力出来ない文字は、「\(back slash)」、「_(underscore)」、「|(pipe)」の3つ。幸い、contestsで使う物は含まれていない。
      • 理由は、日本語鍵盤のkey code 220(円)、226(back slash)に相当するkeysが無いからである。
      • 文字入力用のsoftware toolを使えば何とか入力は出来る(例えば、「プログラム」→「アクセサリ」→「システム ツール」→「文字コード表」)。
  • 英語(US)配列として正しく認識させれば、上記の問題は全て解消できる。方法は後述。
この状態でN1MM Loggerを使った場合、特殊keysの割り当ては次のようになる。
  • 「INS代替」key ・・・「'(single quote)」になる。日本語鍵盤では「:(colon)」となっているkeyで、位置は同じ。
    • N1MM Logger内の設定で他のkeyに振り替え出来る(後述)。
  • 「TU/Log」key ・・・ 「=(equal)」keyとなる。日本語鍵盤で同じ位置にある「^(caret)」keyと同じ機能。
    • N1MM Logger内の設定で他のkeyに振り替え出来る(後述)。
    • 紛らわしいが、「=(equal)」keyは「再送」keyにはならない訳である。
  • 「再送」key ・・・「;(semicolon)」となる。位置は上述の日本語鍵盤の場合と同じである。
    • Hard codeされており、変更できない。
  • 「Stereo」toggle ・・・「[(open bracket)」で、これも日本語鍵盤の「@(at mark)」と同じ位置にある。
    • これもhard codeされており、変更出来ない。
  • 「RX focus」toggle ・・・ この接続状態では該当のkey code 220が現れないため、何と、使用する事が出来ない!!これではSO2R運用には不便だろう。
    • 英語配列で「RX focus」に割り当てられていた「\(back slash)」keyは、日本語鍵盤の「¥(円)」keyと互換性があるように動作する事もあるが、この状態で認識した場合はkey codesが異なっており(220 vs 221)、「RX focus」としては動作してくれない。
外付けの英語鍵盤を使用する場合は、次に述べる英語(US)配列への設定変更を是非とも行うべきである。そうする事で初めて英語鍵盤として正しく動作するようになる。N1MM Loggerでも、開発者が前提としていたような最も使い易いkey配列で使用できる様になる。

(方法2) 日本語鍵盤を英語(US)配列として認識させる

これは、外付け英語鍵盤を買ってこなくて済む方法である。日本語鍵盤だけでなく、(方法1)の英語鍵盤を英語(US)配列として正しく認識させるのも、全く同じ方法を用いる。

Windowsの「言語バー」を右clickして設定画面を開く。下記のような画面が現れる。
皆さんのWindowsでは、初期状態で「日本語(日本)- Microsoft IME」というのしか入っていないかもしれない。筆者は上図のように色々追加しているが、ここで必要なのは「英語(米国)- US」というkey配列だけである。
  • 「追加(D)・・・」buttonで簡単に追加できる。
追加後は、言語(key配列)を「Shift + Alt」で切り替え出来るようになる。英語(US)配列に切り替わると、task barに次のような表示が出る。
  • 「Shift + Alt」による切り替えは、大変便利な事にapplication毎に保持される。例えば、同時にbrowserを立ち上げている場合、N1MM LoggerをUS配列に切り替えても、browserの方は通常の日本語配列のままなので「半角/全角」keyもIMEも有効で、browser内での日本語入力に支障は無い。
  • 但し、application(N1MM Loggerも含め)を一旦終了してしまうと設定は保存されず、次回起動時には既定の入力方法(通常は日本語配列)に戻ってしまう。Contest中に何度もLoggerを立ち上げ直す訳ではないから、起動した時にUS配列に切り替える癖を付けておけば良い。
さて、この状態でどのようにkey配列(key codesの割り当て)が変わったかを見てみよう。日本語鍵盤を、英語(US)配列として認識させた場合である。
  • 前述の英語(US)鍵盤本来の配列と大変よく似ている。
  • 「半角/全角」key ・・・ 英語(US)鍵盤の「`(grave accent)」と同じkey code(192)となった。
    • これにより、「半角/全角」keyとしては動作しなくなり、「全角パニック」が回避できるようになる。
    • 英語(US)鍵盤の「`(grave accent)」と同じように、SO2R用の「Stereo」toggle keyとして動作するようになる。既述した通り、日本語配列のまま用いた時の「@(at mark)」keyの位置よりこの位置の方が断然操作性が上である。
    • 間違ってこのkeyが押された場合でも、SO2Rでは「Stereo」toggleが切り替わるだけであり、「全角パニック」程大きな影響は無い。またSO2Rを行っていなければ何の動作もしないので、更に安心である。
  • 右側の特殊keys群のkey codesは英語(US)鍵盤とよく似ているが、次の点が異なる。
    • 「Enter」keyの形状が変わった関係で、key code 220のkeyは「Enter」の直上ではなく、左下に来ている。このkeyは「RX focus」toggleに割り当てられるので、本来の英語鍵盤と比べて少しだけ操作性が下がる。
    • 英語鍵盤には無い、key code 193「\(back slash)」、255「¥(円)」の2つのkeysが出現するが、英語環境で開発されているN1MM Loggerでは当然ながら、何の機能にも割り当てられていない。
      • まあまあ押し易い位置にあるので、好みにより、後述する方法で「INS代替」keyや「TU/Log」keyに割り当ても可能である。
この状態でのN1MM Loggerにおける特殊key配列を整理すると次図のようになる。
  • 既述した通り、「Enter」keyの形状が変更になった影響で、「RX focus」toggleが少し使い難い位置に移動した事を除けば、本来の英語(US)鍵盤に極めて近い操作感となる。
  • 筆者はこの状態で使用しており、皆様に最もおススメしたい設定だ。

(方法3) N1MM Logger内のConfigurerでkey配列を(一部)変更する

これは開発者が、利用者の好みや言語環境の違いに少しでも対応させる為に取り入れた機能ではないかと思う。

Configurerの「Function Keys」tabで、
  • 「INS代替」key
  • 「TU/Log」key
のみ、そのkey codesを変更できる。逆に言えば前述してきた中で、
  • 「再送」key
  • SO2R「RX focus」toggle key
  • SO2R「Stereo」toggle key
の3つについては、program内でhard codeされている為、この方法を用いても変更は出来ない。
  • Key配列変更software tool(例:AutoHotkey)を使えば如何様にも変更は出来るが、筆者はやっていないし、今回はその話は割愛する事にする。どうしてもやりたい方はご自身で挑戦してみて欲しい。
さて、N1MM Logger設定画面での変更方法であるが、default状態では恐らく下図に似た状況になっている筈である。
  • Key codeの変更に関係があるのは、緑の枠で囲った部分で、defaultでは
    • 「INS代替」がkey code 186(日本語鍵盤で「:(colon)」)
    • 「TU/Log」がkey code 222(日本語鍵盤で「^(caret)」)
      • に割り当てられている筈である。
  • 該当欄にcursorを置き、変更したいkeyを押すと、自動的にそのkey codeが入力される。Key codeをいちいち覚えている必要が無いから、これは便利だ。
しかし、以下のような制限・不便さが残る。
  • 他の特殊機能にhard codingで割り当てられているkeysに重ねて指定する事は出来ない。具体的には下記の3つ。無理に割り当てても無視され、本来の機能が優先される。
    • key code 187「;(semicolon)」・・・「再送」key
    • key code 192「@(at mark)」・・・「Stereo」toggle(SO2R)
    • key code 220「¥(円)」・・・「RX focus」toggle(SO2R)
      • 英語(US)鍵盤で「INS代替」にdefaultで使われている位置のkey「;(semicolon)」が、日本語鍵盤では「再送」keyにhard codeされてしまっているのが何とも残念である。
      • つまりこの設定画面で変更したとしても、英語鍵盤の配列に近付ける事は決して出来ないのである。
  • 「半角/全角」keyは有効なままなので、「全角パニック」を抑止出来ない
    • 「半角/全角」のkey code 229を上記の「INS代替」若しくは「TU/Log」に割り付けてみると、何とそれらの機能と「半角/全角」切り替えが同時に機能してしまい、最悪な状態(message送信と同時に入力が全角に切り替わる)になる。
  • Default状態を保つ事の利点
    • N1MM Loggerのdefault状態では、前述したように英語(US)鍵盤の使い易い位置に「INS代替」、「TU/Log」は割り付けられている。英語鍵盤での多くの利用者は、特に変更は行わず、きっとこのdefaultの状態のままで使っていると思われる。
    • これをわざわざ個人の好みで特殊な位置に変える事はsingle opであれば自由であろうが、multi op環境など、多数の方が同じLoggerを使う場合には合意が得辛く、混乱を招く恐れがある。Multi op環境ではdefaultのままの方が良いかも知れない。

まとめ

要約すると、「日英いずれの鍵盤を、日英いずれの配列で使うか」によって4種類の組み合わせがある事が分かった。N1MM Loggerにおける使い勝手の良さの順に並べると以下のようになる。

第1位 英語鍵盤を、英語配列で使う

  • 日本語PCでは、USB外付け英語(US)鍵盤を買ってきて、言語設定でkey配列を英語(US)鍵盤用に変更する。(これはapplication毎に一時的に変更できるから、他のapplicationsの入力作業には影響を与えない。)
  • N1MM Logger開発者が意図した本来のkeyの位置とlayoutで使用出来、最高!
  • 「半角/全角」key(key code 229)が無いから、「全角パニック」は起こらない
  • 敢えて欠点を言うなら、laptop PCでは外付け鍵盤が邪魔になるかもしれないこと、desktop PCで英語鍵盤だけにしてしまうと、日本語入力が少し不便になること、等。

第2位 日本語鍵盤を、英語配列で使う

  • 上記に解説したとおり、日本語鍵盤のままでkey配列を英語(US)鍵盤用にする。
  • 「再送」と「RX focus(SO2R)」の位置には少し不満が残るかもしれないが、上記環境と似た状態で使用出来、実用上ほぼ満足がいくだろう。
  • 「半角/全角」keyのkey codeが変わるので、「全角パニック」は起こらなくなる
  • 外付け鍵盤を使用せずに済むのも利点。

第3位 日本語鍵盤を、日本語配列で使う

  • 日本語のPCに普通にN1MM Loggerをinstallした状態。(多くの人がこのままで使っていると思われる。)
  • key codeの事を知らない人は、配列がどう変わったのかがよく分からない。(文字labelを見ても想像が付かない。)
  • keysの位置が分かったとしても、使い難い位置に移ったものがあり、不便なのを我慢しなくてはならない。
  • また、問題の「全角パニック」が生じる

第4位 英語鍵盤を、日本語配列で使う

  • USB外付け英語(US)鍵盤を買ってきて取り付けただけの状態。
  • 左上にある「`(grave accent)」のkey codeが「半角/全角」keyと同じ(229)になってしまうので、「全角パニック」が生じる
  • 日本語鍵盤より操作性が良くならない上、SO2Rでは「RX focus」toggle keyが使えなくなる。最悪!
    • 英語鍵盤を使うなら、英語(US)配列への変更(前述)が必須です。

0 件のコメント:

コメントを投稿