2010年02月03日

ibus-anthyでのキー入力の振る舞い(案)

前の記事でibus-anthyでの親指シフト入力の改善点を書きました。

こうした問題点の報告はどこにすれば分からなかったのですが、思い切ってGoogleにあるibusのグループに投稿したら、開発者の方からのレスポンスがありました。早速いろいろな改善の対応をされていて(私はアップデートのし方が分からなくてorzまだ試すには至っていない)、大変ありがたいことです。

現在この問題でのディスカッションはGoogleのibusグループのissue 756で続いています。
http://code.google.com/p/ibus/issues/detail?id=756&colspec=ID%20Component%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&start=100

一番分かりにくいのが、キー入力をしたときに実際にどのような結果が出てくるかです。親指シフトキーボードを使った場合、難しいのが専用キーボードでも細かい違いがあること、また、キーボードの刻印と違った入力をしたい(例えばKB231でも右手小指ホームポジションの右を「後退」キーとして使いたい)というニーズがあることです。

そこで、KB231とKB232を使った場合に、どのようなキー入力の結果を期待するか考えてみました。現在ウィンドウズでJapanistを使って親指シフト入力をしている経験や、リナックスでのscim-anthyでの結果も参考にして作ってみました。

いくらかでも見やすくということで、スプレッドシートの枡目をキーに見立てた表の形式にしました。タブの名前はキーボードの種類、IMEを起動しているかどうか、右手小指ホームポジション右での後退を使う (NICOLA-F style backspace)かどうかを示すようにしました。

気をつけてやったつもりですが間違いがあるかもしれません。もしお気づきの点がありましたらコメントをお願いいたします。



[重要]
2月6日0015現在、この表はおかしくなっています。修正中ですのでお待ちください。
0025現在、復旧しました。なお、最初のバージョンにあった間違いを修正しました。

今回の表の埋め込みの技術は以下のサイトを参考にさせていただきました。感謝します。

おくまの部屋(新館)
「NICOLA F style backspace」設定時のキーの出力【スプレッドシート貼付けテスト】
http://okuma-shinkan.cocolog-nifty.com/newshinkan/2010/02/post-b0f1.html

IDEA*IDEA
GoogleスプレッドシートをWebサイトに貼り付ける方法
http://www.ideaxidea.com/archives/2009/10/how_to_embed_google_spreadsheet.html
posted by 杉田伸樹(ぎっちょん) at 20:28| Comment(6) | TrackBack(0) | ibus-anthy | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
早速使ってますね。

しかも、格段に見やすい!

ナイスなアイデアです。(^o^)
Posted by おくま at 2010年02月04日 00:02
ibus-anthyでのキー入力の振る舞い(案)を拝見しました。「KB231とKB232を使った場合に,どのようなキー入力の結果を期待するか」とのことですが,一部表示上の問題と思われる箇所があります。また,オリジナルの振る舞いと一致しているものの修正した方が良いと思われる事柄,オリジナルの振る舞いには無いものの仕様拡張したい事柄についてコメントさせていただきます。

■表示上の問題と思われる箇所
・「(共通) mark/IME off (NICOLA-F off)」においてbackslashが表示されるように修正。
・「(共通) IME on」において数字と記号の一部が半角で表示されているので全角に修正。

■オリジナルから修正した方が良いと思われる事柄
・「(共通) IME on」における角括弧[]を亀甲括弧〔〕に修正。
 なんとなく本家(富士通)でも混乱しているように見受けられますが,本来的には亀甲括弧〔〕が正しいはずです。角括弧[]や波括弧{}は英数モードで入力可なので,英数モードで入力不可な亀甲括弧〔〕や鉤括弧系「」『』をかなモードに割り当てた,と捉えると納得できます。なお,丸括弧()は頻繁に使われるため,両方のモードに割り当てられています。
・「(共通) IME on/off」におけるEscape(EC:退避)をCancel(CN:取消)に修正。
 取消キーはEscキーと似て非なるものです。Windows上のIMEでは,未確定中の取消がEscに割り当てられているものが一般的なので,このような状況になっているものと考えられます。取消キーは,IME offの状態ではノーアクションであるべきだし,IME onの状態でも確定済みならノーアクションであるべきと思います。EscキーがEnterキーのすぐそばにEあっても,あまり良いことはありませんね。
・「KB231 IME on NICOLA-F off シフト無し」における“:”と“]”の位置に“後退”と“取消”を配置。
 この条件で“:”と“]”の位置はノーアクションとなっていますが,かなモードの状態ではこれらを“後退”と“取消”として使いたいというユーザも多いと思います。

■オリジナルから仕様拡張したい事柄
・「(共通) IME on クロスシフト」における記号類を英数モードと合わせるように修正。
 かなモードで使用頻度の高い“!”などを入力するのに便利です。
・「(共通) IME on クロスシフト」における“Q”“Z”“/”の位置に“ゐ”“ゑ”“ゎ”を配置。
 Q's Nicolatterのキーアサインを参考にしてみました。

以上,ご査収よろしくお願いいたします。

一応確認ですが「KB231 NICOLA-F off」におけるキー入力の振る舞いは,普通の106/109日本語キーボードにおけるNICOLA-Jと同じ,という理解で合っていますか。
Posted by azuki at 2010年02月10日 13:46
azukiさん
細かく見ていただきありがとうございます。自分一人でやっていると、間違えていても気がつかないのでこのようにチェックしていただけると助かります。
以下、順に見ていきます。

・backslash
ええと、これは右上の方にある\との区別はどうだったかな・・・。あと、スプレッドシートの仕様で、半角バックスラッシュがうまく表示できなかったような覚えが・・・。いっそのこと\で統一してしまいましょうかね。

・半角と全角
ご指摘ありがとうございます。これは少しずぼらなところでした。

・角括弧[]と亀甲括弧〔〕
確認してみましたが、KB231では角括弧[]、KB232では亀甲括弧〔〕が印字されていて確かに混乱していますね。角括弧[]は半角も全角もあるのに対して亀甲括弧〔〕は全角しかないのですよね。おっしゃることはもっともなので直します。

・ECとCN
ちょっと技術的に詳しくないので間違っているかもしれませんが。両者の違いは「機能の違い」と「動き(具体的にはキーボードからパソコンが読み取るコード)の違い」のどちら(あるいはその両方)でしょうか。CNと書いて、開発者のコミュニティーでは理解されるでしょうか。
一つ思い出したのが、インターネットエクスプローラーのテキストボックスに入力しているときに、親指シフトキーボードで「取消」を押すと入力した内容が全部消えてしまう(しかもundoが効かない)という一部で有名な仕様(バグ?)があります。これとは関係あるでしょうか。

・仕様の拡張について
個別の点に入る前に、仕様拡張全般に対して少し考えたいと思います。というのも、ibus-anthyのissueで開発者の方と議論していることとも関係するからです。
NICOLAを入れると、いくつか定義がされていないキーが出てきます。これは文字キーの部分にも機能キーの部分にもあります。これを何らかの形で有効活用してはどうかというのは一つの考え方です。ただ、私が気になる点は二つあります。
一つは、規格またはこれまでの慣例で決まっているものと何らかの意味でクラッシュしないかということです。今まで決まっていたものを押し退けて新しいものを入れるというのは論外としても、ただ空いているからというだけで、他とのバランスがあまり良くない形のものを入れるのはいかがなものかということです。
もう一つは、こうしたある意味で「勝手な」拡張を決める権限があるかということです。つまり、やや大げさな言い方としては親指シフトコミュニティーのなんらかの支持が得られるものかということです。このあたりは他の親指シフトユーザーの声も聞きたいところです。
そんなことを言わなくたって、そこはユーザーの選択に任せれば良いじゃないかというもの一つの考え方かもしれません。ただ、生煮えのものを留保なしにどんどん入れてしまうのには個人的には少し抵抗があるところです。このあたりはさじ加減が難しいところです。
以上述べた上で、具体的な点について考えてみましょう。

・「KB231 IME on NICOLA-F off シフト無し」における“:”と“]”の位置に“後退”と“取消”を配置
うむ、これはどうしようかな。NICOLA-F offなので、英文入力の場合はこのキー位置での後退、取消は効かないわけです。英文入力と日本語入力で動作が違うことをどう考えるかだと思います。なお、2月6日の記事にあるように、キーボード設定でNICOLA-F offでもキー配列はJ, A, Fから選べる訳なので、そこで違いを出せば良いかなと考えます。

・クロスシフトにおける記号類を英数モードと合わせる
これは今まで考えたことがありませんでした。
http://thumbshift.blog108.fc2.com/blog-entry-8.html
に書いた通り、数字段で同手シフトとクロスシフトを区別するということに一抹の不安はあります。

・“Q”“Z”“/”の位置に“ゐ”“ゑ”“ゎ”を配置
日本語の正書法でこの3文字をどのように位置づけるかということになりますね。それなりのニーズはありそうなので入れても良いかもしれません。こう見るとなんとなく“ゐ”は“Q”に、“ゑ”は“Z”に似て見えてくる(笑)。

>一応確認ですが「KB231 NICOLA-F off」におけるキー入力の振る舞いは,普通の106/109日本語キーボードにおけるNICOLA-Jと同じ,という理解で合っていますか。

そうだと思います。

以上とibus-anthyのissueでの議論を踏まえて改訂版を作りたいと思います。
Posted by 杉田伸樹(ぎっちょん) at 2010年02月10日 23:18
さっそくのお返事ありがとうございます。

BackSlashの件ですが,キーボードの右上は円マーク,右下はバックスラッシュで物理的に刻印されているので,markについては忠実に表記した方が良いでしょう。UTF8の場合,円マークとバックスラッシュは区別できたような気がしますが,はてさて。一方,入力結果は両方とも同じようなので,IME offの方はバックスラッシュで統一で良いかなと思います。

EscとCancelの件ですが,両者の違いは「機能の違い」です。キーコード的には,KB231やKB232は日本語106/109キーボードと共通なはずです。Escと表記すると,Escの機能そのものを実装すれば良いと勘違いしかねないので,取消の意味としてCancelと表記してみました。もっとも,取消キーはIME offの状態でノーアクションであるべきなので,表記しないという選択もありだと思います。なお,IEのテキストボックスに入力中に取消キーを押すと全部消えてしまう問題は,まさしく本件と関係します。

仕様拡張全般については,私も杉田さんの考え方と同じです。その上で,こういう仕掛けが実装されていると便利だな,ということを書いてみました。

「KB231 IME on NICOLA-F off シフト無し」における“:”と“]”の位置に“後退”と“取消”を配置の件ですが,NICOLA-F offはNICOLA-Jと同じという理解で合っていると確認したので,Windowsの親指ひゅんQなどと同じように,IME onのときだけ“後退”と“取消”として機能するという仕様は,自然に受け入れられると思います。かな入力時に本来のBackSpaceまで手を伸ばすのはちょっと辛いかも。

> なお、2月6日の記事にあるように、キーボード設定でNICOLA-F offでもキー配列はJ, A, Fから選べる訳なので、そこで違いを出せば良いかなと考えます。

あれ?NICOLA-F offのキー配列はNICOLA-J,NICOLA-A,NICOLA-Fから選べるんですか(ちょっと混乱。NICOLA-F offとNICOLA-Fが同じとは?)。だとしたら,問題ないのかも知れませんね。

クロスシフトにおける記号類を英数モードと合わせる件ですが,親指ひゅんQを例にとると,かな入力時の英数モードの記号は,左右のShiftキーを押しながら出します。この実装が入って入れば良いのですが,未実装だとしたらクロスシフト側に割り当てるのが,とりあえず手っ取り早いということです。ちなみに,やってみると意外と使いやすかったりします。
Posted by azuki at 2010年02月11日 10:40
azukiさん、どうも。

バックスラッシュおよびEsc/Cancelについてご説明ありがとうございました。改訂版を作るときにもう少し実験して考えてみます。

NICOLA-F on/offはシステム-設定-キーボードで設定します。これをonにするとKB231や106キーボードのように、backspaceが右上隅にあるキーボードでもIME offで右手小指ホームポジション右でのbackspaceができるようになります。

反対にKB232のように最初から右手小指ホームポジション右での後退になっていると、これをonにすると訳が分からなくなってしまう気がします。

KB231や106でキーボード設定をNICOLA-F offにした上で、ibus-anthyの設定でIME onでJ, A, Fが選べるという構造なのかなというのが私の理解ですが、これで正しいのかな?

改訂版を作る場合に、少しケースを整理したいと思います。ユーザーが何を使って何をしたいかという点から出発して、何をどのように設定すればよくその場合の配列はこのようになる、という形です。具体的には以下のようなことかと思います。

1.キーボードはKB231または106
(1)IME offで右手小指ホームポジション右でのBS
a.IME onで右手小指ホームポジション右でのBS
→ NICOLA-F backspace on, NICOLA-F

(2)IME offで右上隅でのBS
a.IME onで右手小指ホームポジション右でのBS
→ NICOLA-F backspace off, NICOLA-F

b.IME offで右上隅でのBS
→ NICOLA-F backspace off, NICOLA-J

2.キーボードはKB232
(1)IME offで右手小指ホームポジション右でのBS
a.IME onで右手小指ホームポジション右でのBS
→ NICOLA-F backspace off, NICOLA-F

この四種類で実用的にはほぼ問題ないのかなという気がしています。前提としては、(1)KB232のようなもともと後退が右手小指ホームポジション右にあるキーボードを使う人はどんな場合でも右手小指ホームポジション右で後退を使いたいだろう、(2)たとえKB231のように後退が左上隅にあるキーボードを使う人でもIME offで右手小指ホームポジション右での後退を使うのだったらIME onでもそうだろう、(3)たとえIME offで右上隅での後退を使ってもIME onにしたら右手小指ホームポジション右での後退を使いたい人はいるだろう、というものです。全体として、右手小指ホームポジション右での後退を使わせようとしていますが(笑)。
Posted by 杉田伸樹(ぎっちょん) at 2010年02月11日 16:10
おっと。

(2)たとえKB231のように後退が左上隅にあるキーボードを使う人



(2)たとえKB231のように後退が右上隅にあるキーボードを使う人
Posted by 杉田伸樹(ぎっちょん) at 2010年02月11日 16:31
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/140155614

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。