(図らずも)前回の続き、もとい焼き直しである。
前回はキーの Up を拾ってキーコードを挿入する試みだったのだが、缺点として本来のキーの操作を打ち消すことができなかった。そんな重大過ぎる缺点がありながらも実用上まあ良いかと公開してしまったのが前回の記事であるが、一晩寝たらすっきりとした解決策が浮かんで、かつ NIL Script が標準で提供する機能なので、あっさりと最適なコードが書けてしまった。
// win2fnkey.ng [h220923 v4] // (c)2010 Zonu(tadsan) / GPLv3'ed (function(){ keys={ 'Up' : 'PageUp' , 'Down' : 'PageDown' , 'Left' : 'Home' , 'Right' : 'End' }; Main.process.priority=Process.priority.high; require('Hotstrokes').Hotstrokes.remap( function(){ var d={}; for(i in keys){ d['Win+'+i]=keys[i]; } return d; }() ).register(); }())
これだけ。実にお手軽である。
この Hot Strokes を利用すれば、簡単にキーマップを置換できた按配である。これで目的はほぼ完全に実現できた。
AppキーをAltにしたい!
実は今年の春に購入したネットブックの操作性(右 Alt が無い!)を改善しようと書いたコードもあって、こちらも同様の問題があった。これはもっと簡単に解決できる……と思ったら、どうも上手く動かない。
.mapModifiers({"App":{oneShot:true,send:"Alt"}})
この一文をメソッドチェインの register();
よりも前に入れると、App を SandS 風にできる……はずなのだが、どうもうまくいかない。どうも App は発行されてるようだけれど、奇妙な挙動をする様になってしまった。さて、どうしたものか。