मैं बस कुछ मदद कर सकता हूं। यहाँ जाता हैं:
$ 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फ़ाइल के प्रारंभ में आईडी और नाम को संदर्भित करते हैं।
जैसा कि आप देख सकते हैं, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceIDअभी भी स्ट्रिंग लौटाता है "com.apple.keylayout.Dutch"। क्या उपलब्ध com.apple.keylayoutमूल्यों की सूची कहीं है ? क्या कस्टम कीबोर्ड लेआउट के लिए ऐसा मूल्य प्राप्त करना संभव है? 'उस स्थिति में, हम बस संपत्ति को ओवरराइड कर सकते हैं।
इसके अलावा, AppleEnabledInputSources, AppleInputSourceHistory, और AppleSelectedInputSourcesगुण सब, कस्टम कीबोर्ड लेआउट की अनदेखी करने के रूप में उनके मूल्यों देशी ओएस एक्स कीबोर्ड लेआउट मैं मूल रूप से जब सेटअप सहायक चल चयनित के अनुरूप लग रहे हैं।
एक और अपडेट: अहा! ऐसा लगता है कि एक और 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और आईडी के साथ 1337( .keylayoutफ़ाइल में निर्दिष्ट ) है:
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
अफसोस की बात है, यह काम नहीं कर रहा है।
अपडेट: @Lri ने एक विश्वसनीय तरीका खोजा - उसका जवाब देखें।