
Teslaはもともとijectというキーチェンジャーを 土台にしているので、親指シフト化だけでなく、同時に数々のキーチェンジを容易に行なう ことができます。そんな例を紹介します。
基本的にはTesla.cppのソースの一部に記述を追加し、再コンパイルします。
記述する位置は、Tesla-plus2_sourceだと235行目の空白あたりです。
if(eventType == 10) {
switch(key) {
case 30:
key= 41;
break;
}
}
if(eventType == 12) {
switch(key) {
case 63:
if((flags & 0x800000) !=0) {
flags &= ~0x0;
eventType = 10;
key= 53;
}
if(flags == 0) {
eventType = 11;
key= 53;
break;
}
}
}
文字キーだと簡単なのですが、機能キーだと複雑になります。これはeventTypeやflagのあるなしによって違うからです。キーの性質については、Teslaをデバッグモードで起動すれば、
/var/log/system.logに入力したキーのキー番号、eventType、flagなどが記録されます。
キーチェンジの例は、iject自体にも含まれますし、このページでも紹介されています。
残念ながら私もさほど詳しくないので、この場合は?という質問には答えられません。