わかりました-私自身の質問に答えます。kqueues を使用してファイル システムの変更を監視する小さなプログラムを作成しました。システム環境設定で設定を変更したときに、ファイル システムの変更を監視したところ、次のことがわかりました。
'/Users/ted/Library/Preferences/ByHost/.GlobalPreferences.3F1C...9C34.plist.V1Ut9hp' kevent: ident=44, filter=KQ_FILTER_VNODE, flags=KQ_EV_ADD|KQ_EV_CLEAR, fflags=KQ_NOTE_WRITE|KQ_NOTE_CHILD|KQ_NOTE_PDATAMASK
ということで設定は に~/Library/Preferences/ByHost/.GlobalPreferences.<UUID>.plist
。UUID が何かわかりません - OpenDirectory と関係がありますか? (更新: どうやら、この UUID はマシンの識別子です)。
とにかく、 に.GlobalPreferences.<UUID>.plist
は次のようなエントリがあります。
<key>com.apple.keyboard.modifiermapping.1452-610-0</key>
<array>
<dict>
<key>HIDKeyboardModifierMappingDst</key>
<integer>2</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>
</dict>
</array>
1452:610 は、私の 2012 Macbook Pro の USB キーボード/トラックパッド コンボの 10 進数の VID:PID であり、コンピューターに接続され、モディファイア設定が再マップされた他のキーボードには、同様のエントリがあります。0
は Caps Lock キーの2
よう10
で、左右の CTRL の3
ようです。11
左右の Option のようです。4
そして12
、左右の Command のようです。
上記から、Caps Lock キーが左の CTRL にマップされていることがわかります。
の設定は.GlobalPreferences.<UUID>.plist
、標準のユーザー デフォルトの一部のようです。したがって、これらの設定を行うだけで簡単に取得できます
[[NSUserDefaults standardUserDefaults] objectForKey:@"com.apple.keyboard.modifiermapping-1452-610-0"];