¿Es posible eliminar o deshabilitar uno de los diseños de teclado predeterminados de OS X Lion?
Estoy usando un diseño de teclado personalizado, y ahora que logré configurarlo como el diseño de teclado predeterminado en todo el sistema , me gustaría poder desmarcar o eliminar el diseño de teclado "EE. UU." incorporado que viene con el sistema operativo. X. Aquí hay una captura de pantalla: tenga en cuenta que la casilla de verificación está deshabilitada:
En OS X 10.9, este panel de preferencias se ha rediseñado, pero aún no hay forma de "eliminar" el diseño de teclado "EE. UU." incorporado:
Dado que nunca uso el diseño de teclado de EE. UU., me encantaría deshacerme de él, es decir, eliminarlo del menú Entrada en la barra de menú. ¿Cómo puedo hacer esto?
Actualización: la respuesta de Daniel realmente no responde a esta pregunta, pero ofrece información valiosa sobre este problema:
Mac OS X parece requerir al menos un diseño de teclado que el sistema reconozca como un diseño de "caracteres latinos" para ser seleccionado.
Suponiendo que esta sea información precisa (¡gracias, Daniel!), la pregunta podría reformularse de la siguiente manera:
¿Cómo hacer que OS X considere un teclado personalizado como un diseño de caracteres latinos?
Actualización: Acabo de encontrar algo que podría ayudar.
Para macOS 10.8 y posteriores :
~/Library/Preferences/com.apple.HIToolbox.plist
(en 10.9) o ~/Library/Preferences/ByHost/com.apple.HIToolbox.*.plist
(en 10.8 y anteriores). Puede convertir la plist a XML con plutil -convert xml1
.AppleEnabledInputSources
diccionario. Si hay una AppleDefaultAsciiInputSource
llave, quítela.Para macOS 10.7 y anteriores :
f=~/Library/Preferences/ByHost/com.apple.HIToolbox*.plist; plutil -convert xml1 $f; open $f -e
_plist
Así es como se ve el archivo modificado : pastebin.com/raw.php?i=7kWVxXqx Después de cerrar sesión y volver a iniciarla, el diseño de teclado "EE. UU." predeterminado aún está habilitado. ¿Qué estoy haciendo mal?Parece que no puede hacer lo que quiere sin algún truco aún no descubierto en el sistema . Mac OS X parece requerir al menos un diseño de teclado que el sistema reconozca como un diseño de "caracteres latinos" para ser seleccionado. Esto evita que no pueda ingresar su contraseña en la pantalla de inicio de sesión, etc. Si seleccionó francés, canadiense u otra disposición de teclado que el sistema reconozca como caracteres latinos, puede anular la selección de la disposición estadounidense.
Su problema es que su diseño personalizado, aunque contiene caracteres latinos, no es reconocido por el sistema como un diseño de teclado latino y, por lo tanto, no puede ser el único diseño de teclado seleccionado. Consulte esta pregunta (lamentablemente sin una gran respuesta) para obtener más información.
Tenga en cuenta que una gran respuesta a esta pregunta también respondería a su pregunta. Por desgracia, mi respuesta aquí solo aclara cuál es el problema, pero no tengo una solución paso a paso para usted. Si bien tal truco puede ser posible, no veo evidencia de que alguien haya descubierto cómo convencer a Mac OS X de que un teclado personalizado en particular es seguro para usar como el único teclado seleccionable.
En aras de la exhaustividad, presenté esto como ID de error n.º 11137961 con Apple, y esta es la respuesta que obtuve:
ID de error n.º: 11137961
Título del error: permitir la desactivación de diseños de teclado predeterminados (incorporados) cuando se usa uno personalizado
Ingeniería ha determinado que este problema se comporta según lo previsto en función de la siguiente información:
Si el problema es que el diseño de su teclado sea reconocido como compatible con ASCII, lo más fácil sería "agrupar" su .keylayout, luego su Info.plist puede contener un diccionario "KLInfo_" que lo describa mejor, como:
<key>TISIntendedLanguage</key> <string>en</string> # BCP 47 language string
Necesitaría investigar esto un poco más, pero parece que TIS escaneará la salida del diseño del teclado para producir un USet y producir una idea inicial de ascii-ness al pasar la siguiente prueba mínima:
uset_containsRange(uSet, 0x0020, 0x0021) && uset_containsRange(uSet, 0x002C, 0x0039) && uset_containsRange(uSet, 0x003F, 0x005A) && uset_containsRange(uSet, 0x0061, 0x007A);
TIS también examinará el conjunto de ejemplares para la configuración regional indicada anteriormente y requerirá una buena docena de caracteres en el rango
[a-z]
.Para obtener algunas sugerencias sobre cómo agrupar un
.keylayout
, consulte tambiénTextInputSources.h
.Si esto sigue siendo un problema, o si tiene preguntas sobre la resolución de este problema, actualice su informe de errores con esa información.
Ahora estamos cerrando este informe de errores.
Aquí hay otra idea: hace unos años, los paquetes para Apple Keyboard Layouts eran mucho más fáciles de editar, y este problema parece haberse solucionado:
http://hintsforums.macworld.com/archive/index.php/t-71629.html
Tal vez todavía se podría usar el antiguo paquete editable, si pudiera obtener uno de un sistema antiguo, en el sistema operativo actual.
Acabo de encontrar algo que podría ayudar. Aquí va:
$ 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;
}
);
}
Esto está en mi sistema, donde mi diseño de teclado personalizado (llamado "QWERTY") es el predeterminado. Tenga en cuenta que las propiedades KeyboardLayout Name
y KeyboardLayout ID
se refieren al ID y al nombre al comienzo del .keylayout
archivo.
Como puede ver, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
todavía devuelve la cadena "com.apple.keylayout.Dutch"
. ¿Hay una lista en alguna parte de los com.apple.keylayout
valores disponibles? ¿Es posible obtener tal valor para un diseño de teclado personalizado? Porque en ese caso, simplemente podríamos anular la propiedad.
Además, las propiedades AppleEnabledInputSources
, AppleInputSourceHistory
y AppleSelectedInputSources
parecen ignorar la distribución de teclado personalizada, ya que sus valores corresponden a la distribución de teclado nativa de OS X que seleccioné originalmente cuando ejecuté el Asistente de configuración.
Otra actualización: ¡Ajá! Parece que hay otro plist
archivo del que podríamos copiar la configuración.
$ 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;
};
}
Como puede ver ( AppleCurrentKeyboardLayoutInputSourceID
), los diseños de teclado aparentemente personalizados obtienen valores como "org.unknown.keylayout.FOO"
dónde FOO
está el nombre del diseño de teclado (como se especifica en el .keylayout
archivo).
Entonces, intentemos establecer todos los valores en nuestro diseño de teclado personalizado, con nombre QWERTY
y con ID 1337
(especificado en el .keylayout
archivo):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Lamentablemente, esto no parece funcionar.
Actualización: @Lri descubrió un método confiable: vea su respuesta.
La respuesta de Apple a mi informe de error, en el que pedí que fuera posible eliminar el diseño de teclado predeterminado del sistema si se selecciona otro a través de Preferencias del sistema:
Ingeniería ha determinado que este no es un problema que Apple deba abordar.
Suponiendo que este diseño de teclado personalizado esté incluido (
.keylayout
está dentro de un paquete similarfoo.bundle/Contents/Resources/foo.keylayout
), entonces esto podría ser tan fácil como insertarlo en elInfo.plist
diccionario deKLInfo_
:<key>KLInfo_Qwerty</key> <dict> <key>TISInputSourceID</key> <string>com.imgur.stack.keyboardlayout.Qwerty</string> <key>TISIntendedLanguage</key> <string>en</string> </dict>
Si este diseño es necesario para todo el sistema (es decir, incluida la entrada de contraseña), podría instalarse en
/Library/Keyboard Layouts/
, en lugar de en la misma ubicación en~/Library/
.Actualice su informe de errores para informarnos si esto sigue siendo un problema para usted.
Si tiene preguntas sobre la resolución de este problema, actualice su informe de errores con ellos.
Asegúrese de revisar regularmente los nuevos productos de Apple para ver si hay actualizaciones que puedan afectar este problema. Una vez más, gracias por tomarse el tiempo para enviar errores. Apreciamos sinceramente su entrada.
Acabo de eliminar con éxito el diseño predeterminado en High Sierra usando el siguiente método:
Library/Preferences
carpeta.com.apple.HIToolbox.plist
file, ya sea haciendo doble clic en él o usando open
la línea de comando. Esto hará que aparezca XCode y es posible que desee instalar componentes adicionales.AppleEnabledInputSources
nodo y despliéguelo.Ahora probablemente necesite cerrar sesión o reiniciar para que esto sea definitivo. Tuve que reiniciar de todos modos para alguna actualización, así que eso funcionó para mí. Ahora estoy escribiendo felizmente en Neo a una velocidad glacial agonizante, ¡pero no hay ni un solo QWERTZ a la vista!
Después de mover mi diseño de teclado personalizado a /Library/Keyboard Layouts
en lugar de ~/Library/Keyboard Layouts
, pude eliminar repentinamente el diseño de EE. UU.
Esto también solucionó el problema que tenía cuando el diseño del teclado volvía a cambiar al diseño de EE. UU. cada vez que activaba aplicaciones como Mail o App Store.
Supuestamente, esto se debe a que si el diseño se instala como el usuario actual en lugar de en todo el sistema, las aplicaciones del sistema no pueden usarlo, lo que explicaría por qué no es posible eliminar el diseño de EE. UU. de las Preferencias.
Aquí hay una idea: después de asegurarse de que la identificación del teclado de su diseño personalizado esté configurada en Roman, cree un AppleKeyboardLayouts.bundle personalizado que contenga solo ese diseño y sustitúyalo por el que viene con el sistema operativo. (No sé lo que implica crear un .bundle)
Puede usar Ukelele para marcar su diseño usado como uno que usa escritura latina. Exporte como un paquete, instálelo y luego podrá eliminar el de EE. UU.
Se puede hacer fácilmente. Primero cambie a su diseño personalizado (utilice el menú de entrada de la barra de menú), luego anule la selección del diseño de EE. UU.
tom gewecke