2013-03-01 11 views
6

問題があります。自分のMacには2つのキーボードレイアウトがあります。なぜなら、異なる人とコミュニケーションを取っている間に2つの異なる言語で入力する必要があるからです。私はキーボードショートカットCmd+Spaceを使ってあるレイアウト(言語)から別のレイアウト(言語)に切り替える。Mac OS X:キーボードレイアウト変更の代行

Cmd+Spaceを押すとカスタムスクリプトを実行できますか?私はそれを行うことができるPunto Switcherと呼ばれるアプリがあることを知っている。

私の考えは、キーボードのハイライトレベルを現在の言語を示すように変更することです。

  • 明るい=ドイツ(またはロシア語または何でも)
  • 薄暗い=英語

質問APIを検索する場所であることができマックOS Xで

  1. インターセプトキーボードレイアウト
  2. キーボードの輝度を変更する

enter image description here

+0

派手な絵! – Klaas

答えて

1

私はこのために、あなたはきっと、このの助けのいくつかの並べ替えを見つけることができる、彼はCを使用し、彼は文書化されていないAPIの場合と同じようなアイデアを与えたアミット・シンのブログを見つけました。

Experimenting With Light

それとも、これらのコードを試すことができます:@Anoop VaidyaからLEDの明るさのものに

UInt64 lightInsideGetLEDBrightness(){ 
    kern_return_t kr = 0; 
    IOItemCount scalarInputCount = 1; 
    IOItemCount scalarOutputCount = 1; 
    UInt64  in_unknown = 0, out_brightness; 
    kr = IOConnectCallScalarMethod(dataPort, kGetLEDBrightnessID, &in_unknown, scalarInputCount, &out_brightness, &scalarOutputCount); 
    return out_brightness; 
} 
5

ニートポインタが - 面白そうですね!

入力方法が変更されたときに通知が送信されます。

まず、通知を受信する機能を宣言します

void theKeyboardChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) { 
    NSLog(@"Keyboard/input method changed."); 
} 

その後の変更通知を登録:

CFNotificationCenterAddObserver(CFNotificationCenterGetDistributedCenter(), 
    myContextInfo, theKeyboardChanged, 
    kTISNotifySelectedKeyboardInputSourceChanged, NULL, 
    CFNotificationSuspensionBehaviorDeliverImmediately);