Tôi vừa đi qua một cái gì đó có thể giúp đỡ. Đây là:
$ 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;
}
);
}
Đây là trên hệ thống của tôi, nơi bố trí bàn phím tùy chỉnh của tôi (được đặt tên là QWERTY ') là mặc định. Lưu ý rằng các thuộc tính KeyboardLayout Name
và KeyboardLayout ID
tham chiếu đến ID và tên ở đầu .keylayout
tệp.
Như bạn có thể thấy, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
vẫn trả về chuỗi "com.apple.keylayout.Dutch"
. Có một danh sách ở đâu đó của các com.apple.keylayout
giá trị có sẵn ? Có thể có được một giá trị như vậy cho một bố trí bàn phím tùy chỉnh? Vì trong trường hợp đó, chúng ta có thể ghi đè lên tài sản.
Ngoài ra, các AppleEnabledInputSources
, AppleInputSourceHistory
và AppleSelectedInputSources
tính tất cả dường như bỏ qua cách bố trí bàn phím tùy chỉnh, như giá trị của chúng tương ứng với cách bố trí bàn phím OS X có nguồn gốc ban đầu tôi chọn khi chạy Setup Assistant.
Một cập nhật khác: Aha! Có vẻ như có một plist
tệp khác mà chúng tôi có thể sao chép các cài đặt.
$ 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;
};
}
Như bạn có thể nhìn thấy ( AppleCurrentKeyboardLayoutInputSourceID
), rõ ràng tùy chỉnh bàn phím bố trí được các giá trị như "org.unknown.keylayout.FOO"
nơi FOO
là tên của bố trí bàn phím (như quy định trong .keylayout
tập tin).
Vì vậy, để thử đặt tất cả các giá trị cho bố cục bàn phím tùy chỉnh của chúng tôi, được đặt tên QWERTY
và với ID 1337
(được chỉ định trong .keylayout
tệp):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Đáng buồn thay, điều này dường như không hoạt động.
Cập nhật: @Lri đã phát hiện ra một phương pháp đáng tin cậy - xem câu trả lời của anh ấy.