5

これらはどこに保管されていますか?!?

知りたいのは私だけではないようです(「システム環境設定>キーボード>修飾キー...」で修飾キーを変更するにはどうすればよいですか)。システム環境設定アプリを dtruss で見ようとしましたが、10.10.3 (現在私が使用しているもの) ではそれができないようです。システム環境設定が cfprefsd から設定を取得するだけの場合に便利です。dtruss で cfprefsd を監視しても、関連するファイル アクセスがキャッチされないようです。

この情報を取得するための API を知っている人はいますか? おそらくゲシュタルトの何か?

4

3 に答える 3

8

わかりました-私自身の質問に答えます。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"];
于 2016-06-06T01:42:19.870 に答える
0

すべてのユーザー設定は次の場所に保存されます~/Library/Preferences/com.apple.???

于 2016-06-02T04:36:42.970 に答える