キーカスタマイズの例


iject

Teslaはもともとijectというキーチェンジャーを 土台にしているので、親指シフト化だけでなく、同時に数々のキーチェンジを容易に行なう ことができます。そんな例を紹介します。

    (※ことえり入力時に表示される、「ひらがな・特殊文字」などの位置を変えたい場合は、 ルーチン(Tesla-plus2の場合、Tesla.cpp122-171行目)をいじればいいだけなので、ここでは 扱っていません。以下は、キーボードのキーコードそのものを変える 方法です)

基本的にはTesla.cppのソースの一部に記述を追加し、再コンパイルします。
記述する位置は、Tesla-plus2_sourceだと235行目の空白あたりです。


  • 記号キーを変える

    (例: ] -> ;)
    	if(eventType == 10) {
    		switch(key) {
    		case 30:	
    		key= 41;	
    		break;	
    		}
    	}
    
  • 機能キーを変える

    (例: fn -> Esc)
    	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自体にも含まれますし、このページでも紹介されています。
残念ながら私もさほど詳しくないので、この場合は?という質問には答えられません。