マウスジェスチャキーボードシミュレータの開発

f:id:pierre72:20160727090919j:plain

マウスジェスチャーでキーボード入力ができるといいなと思ったので作ってみました。日本語入力限定です。

元々は自分用に作ったものなのでUI等は手抜きなものになっています
URL:https://www.dropbox.com/s/jvysd0d8wwwof05/GestureKeyboard.zip?dl=0

使用は自己責任にてお願いします。
なお、起動には.NET Framework3.5が必要です。

①メインパネル:ジェスチャでひらがな入力をおこないます。
②バックスペース:バックスペースキーに対応します。
③記号パネル:ジェスチャ記号お入力をおこないます。
④スペースパネル:スペースキーに対応します。
⑤決定:変換を確定します。
⑥出力テキストボックス:ジェスチャによって入力された文字が表示されます。
⑦コピー:出力テキストボックスの選択された部分をコピーします。
⑧インジケータ:ジェスチャ中に、右ボタンを離すと入力される文字を示します。(クリックしても何も入力されません)

メインパネルについて:
カーソルがメインパネル上にある状態でマウス右ボタンを押したまま、マウスジェスチャ+ホイールジェスチャを行うことでキーボード入力をシミュレートします。右ボタンを離すことで入力文字を確定します。

下向きのホイールジェスチャで「あ」行→「か」行→「さ」行→…と移り、上向きで「あ」行→「わ」行→…と移ります。
マウスジェスチャ
「無」「←」「↑」「→」「↓」
がそれぞれ
「あ」段「い」段「う」段「え」段「お」段
に対応します。

マウスジェスチャを2段階行うことで、濁音・半濁音入力を行います。
1段階ジェスチャに対して
時計回り90度の2段階ジェスチャで濁音(例:1回目「←」、2回目「↑」のジェスチャで「い」段の濁音)、
反時計回り90度の2段階ジェスチャで半濁音(例:1回目「←」、2回目「↓」のジェスチャで「い」段の半濁音)
を入力します。「あ」段はマウス左のシングルクリックとダブルクリックで対応します。
1段階マウスジェスチャをしてしまったら、段は確定します。濁音か半濁音かを選べるのみです。

記号パネルについて:
マウスジェスチャは「→」か「↓」で入力記号を変えることができます。何を入力できるかは実際にインジケータを見てもらったほうが早いです。

スペースパネルについて:

左クリックでスペースキーによる変換を行うことができますが、右クリック+ホイールジェスチャで変換候補を変えられます。またマウスジェスチャを行うことで変換モードを切り替えることができます。
「→」+「←」(または「←」+「→」)で選択位置の移動
「↓」で選択範囲の拡張と縮小・・・「↑」で最初のモードに戻る
変換を続行するときはジェスチャによってこのパネルが「スペース」に戻っていることを確認してください。「→」や「選択拡張」になったままでは動きません。

※要はスペースキーのキーイベントを発行することによって変換候補の切り替えをしていますので、変換確定済みの状態でホイールジェスチャを行うとスペースがその分増えていきます。お気をつけください。

※慣れが必要だと思いますので、めんどいですがちまちま左クリックによる変換をお勧めします・・・

FiregestureとFindBar Tweak使って記事内の単語を強調する

私のFirefox(31.0)で確認しています・・・。もしお使いの環境で駄目でも同じようなこと書けばできると思います。手順は2つです。

1.Firegestureユーザスクリプトを新規作成し、以下のスクリプトを割り当てます。
FireGestures.sendKeyEvent({ ctrl: true, key: "F" });
FireGestures.sendKeyEvent({ keyCode: "DOM_VK_F3" });

2.FindBar Tweakで強調表示の設定をします


※FiregestureだけでsendKeyEvent使って「すべて強調表示」を自動で押せないか試したのですが、うまくいかなかったので。。
それにFindBar Tweakならハイライト表示もできるので長い記事読んでるときにアンカー代わりに使ったりすることもできます。

 

※追記(20160727)

最新版のFirefox(47.0.1)で試したところ、Firegestureのスクリプト

FireGestures.sendKeyEvent({ ctrl: true, key: "F" });

だけでいけるようです。2行目もあると逆に思うように動きませんでした。

 

このブログについて

このブログは、私pierre72が日々試していることを備忘録的にメモしたり、またはご紹介するブログです。

できる限り間違いのない情報を書くように努力をしますが、間違いを書いたりバグを出したりしてしまうかもしれません。このブログの情報を利用して行ったことよって被ったいかなる損害・損失についても、当ブログは一切責任を負いかねます。あらかじめご了承ください。