hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

マウスカーソルをキーボード上の対応した位置にジャンプさせる

マウスカーソル,ちまちま動かすのがめんどうで,行きたい場所に瞬間移動したら便利だと思った.
キーボードの配列上の位置に合わせて,マウスカーソルをジャンプさせるのを作った.


http://dl.dropbox.com/u/8270034/g/61f22d3470b955a054676c7573762b38.png


MouseJump — Gist
上のgistをcloneして,javac MouseJump.javaして,java MouseJump (行きたい場所),でジャンプできる.
これでマウスカーソルが左上に瞬間移動する.

% java MouseJump 1


マウスを動かしたいだけなのにターミナルに切り替えてからjava MouseJump h とか入力するのは時間かかる.ランチャーから起動するようにすると速い.
Alfredで,m 1 って入力するとマウスが左上に飛んでいくように設定した.


http://dl.dropbox.com/u/8270034/g/dd415275a319ab25087cc69a48661e5c.png


Alfredではこういう感じに設定するとできる.
Powerpackの機能だったかもしれないけど,どんなランチャーでもシェルコマンドを実行する機能はありそう.


http://dl.dropbox.com/u/8270034/g/3ad00ceb54dd6840003bdd473b16dce1.png


UI配列とJIS配列ではたぶん正しく動く.アラビア語のキーボードとかだとキーの場所が違うかもしれない.どのキーをどの場所にするかはソースコード中にこういう感じにがんばって書いてあるから,forkして場所を変えれば国際展開できる.

        switch(key) {
        case '1':
        case 'q':
        case 'a':
        case 'z':
            return 0;
        case '2':
        case 'w':
        case 's':
        case 'x':
            return 1;


マウスを動かすとか,OSXのAPI呼ばないとできないと思ってたけど,java.awt.Robotを使うとできた.Objective-C書かずに済んでよかった.
Linuxとかでも動くかもしれない.


https://gist.github.com/1516774

関連

以下の記事のと組み合わせるとキーボードでマウス操作できる度が高まって便利.


アプリケーションを起動したらメニューの位置にマウスをジャンプさせる例とか載ってる.どうせクリックするんだろみたいな感じで勝手に移動されると迷惑な感じがする.アプリケーションがマウスの位置に飛んできてほしい.