Home > Windows > | keyhac > | python > | screen > | キーボード > keyhac で簡単なマクロを作ってみる

keyhac で簡単なマクロを作ってみる

keyhac を使ってキー配列をいじるスクリプトを紹介してきたが(その 1その 2)このソフトではキーボードやマウスを使ったマクロを書くこともできる。今回は簡単な例として、Putty + GNU Screen での例を書いてみる。

Putty + GNU Screen でウィンドウを簡単に切り替える

GNU Screen で複数のウィンドウを切り替える場合は“コントロールキャラクタを押した後に数字キー”という操作を行う。具体的には、

  1. Control + Z を押す *1
  2. Control + Z を離す。
  3. 3 を押す。

これで 3 番のウィンドウに切り替わる。毎回 Control を離す動作が面倒なのだ。これを、単に Control + 3 だけで切り替わるようにしたい。

config.py(部分)

def configure( km ):
    km_putty = km.defineWindowKeymap( exe_name = u"PUTTY.EXE" )
    for i in xrange( 10 ):
        km_putty[ "C-" + str( i ) ] = km.command_InputKey( "C-Z", str( i ) )

2 行目では特定のプログラム(PUTTY.EXE)でのみ有効なキーマップ(km_putty)を得ている。そして 4 行目がキモ。command_InputKey メソッドは引数に並べたキーを順に押した場合と同じ効果を得るための関数を返す。このスクリプトを使うと、Putty + GNU Screen な環境で Control + 09 を押すと、0 番~ 9 番のウィンドウに切り替わるだろう。

特定の文字列を入力するマクロ

command_InputKey と似たメソッドに command_InputText がある。こちらはキーを連続して押すのではなく、文字列を実際に入力してくれる。

config.py(部分)

def configure( km ):
    km_notepad = km.defineWindowKeymap( exe_name = u"Notepad.exe" )
    km_notepad[ "C-A" ] = km.command_InputText( "aiueo" )

このスクリプトを有効にした上で、メモ帳を起動して Control + A を押してみると……

2010-06-14_091851.png

このように IME の未確定状態で止まってしまう *2 。この後、確定のために毎回 Enter を押さないといけない。ちょっと使いどころが難しいかなあ。

*1 : 以下、コントロールキャラクタを ^Z とする。つまり .screenrcescape ^Z^Z としている
*2 : SS は ATOK2009 での場合だが、MS-IME の場合も同様のことが起こった。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.remora.cx/mt/mt-tb.fcgi/622
Listed below are links to weblogs that reference
keyhac で簡単なマクロを作ってみる from blog.remora.cx

Home > Windows > | keyhac > | python > | screen > | キーボード > keyhac で簡単なマクロを作ってみる

Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

W3C Validation

I ♥ validator

Return to page top