私はちょうど役立つ何かに出くわしました。ここに行く:
$ defaults read /Library/Preferences/com.apple.HIToolbox.plist
{
AppleCurrentKeyboardLayoutInputSourceID = "com.apple.keylayout.Dutch";
AppleDefaultAsciiInputSource = {
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
};
AppleEnabledInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleInputSourceHistory = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleSelectedInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
}
これは私のカスタムキーボードレイアウト(「QWERTY」という名前)がデフォルトです。KeyboardLayout Name
およびKeyboardLayout ID
プロパティは、.keylayout
ファイルの先頭のIDと名前を参照することに注意してください。
ご覧のとおりdefaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
、文字列を返します"com.apple.keylayout.Dutch"
。利用可能なcom.apple.keylayout
値のリストがありますか?カスタムキーボードレイアウトでこのような値を取得することは可能ですか?'その場合、プロパティを単純にオーバーライドできます。
また、AppleEnabledInputSources
、AppleInputSourceHistory
、およびAppleSelectedInputSources
プロパティはすべて、それらの値は、セットアップアシスタントを実行しているときに私が最初に選択されたネイティブOS Xのキーボードレイアウトに対応して、カスタムキーボードレイアウトを無視するように見えます。
別の更新: Aha!plist
設定をコピーできる別のファイルがあるようです。
$ defaults read ~/Library/Preferences/ByHost/com.apple.HIToolbox.*.plist
{
AppleCurrentKeyboardLayoutInputSourceID = "org.unknown.keylayout.QWERTY";
AppleDateResID = {
smRoman = 2;
};
AppleEnabledInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
},
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
"Bundle ID" = "com.apple.CharacterPaletteIM";
InputSourceKind = "Non Keyboard Input Method";
},
{
"Bundle ID" = "com.apple.KeyboardViewer";
InputSourceKind = "Non Keyboard Input Method";
},
{
"Bundle ID" = "com.apple.inputmethod.ironwood";
InputSourceKind = "Non Keyboard Input Method";
}
);
AppleGlobalTextInputProperties = {
TextInputGlobalPropertyPerContextInput = 0;
};
AppleInputSourceHistory = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleNumberResID = {
smRoman = 2;
};
AppleSelectedInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
"Bundle ID" = "com.apple.inputmethod.ironwood";
InputSourceKind = "Non Keyboard Input Method";
}
);
AppleTimeResID = {
smRoman = 2;
};
}
(AppleCurrentKeyboardLayoutInputSourceID
)を見るとわかるよう"org.unknown.keylayout.FOO"
に、明らかにカスタムキーボードレイアウトFOO
は、(.keylayout
ファイルで指定されている)キーボードレイアウトの名前のような値を取得します。
したがって、すべての値をカスタムキーボードレイアウトに設定して、名前QWERTY
とID 1337
(.keylayout
ファイルで指定)を設定してみましょう。
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
悲しいことに、これはうまくいかないようです。
更新: @Lriは信頼できる方法を発見しました—彼の答えをご覧ください。