Haga que un diseño de teclado personalizado sea el predeterminado del sistema, incluso para la pantalla de inicio de sesión

¿Puedo hacer que una distribución de teclado personalizada (una que no se incluyera con OS X de forma predeterminada) sea la predeterminada del sistema, incluso para la pantalla de inicio de sesión?

@Lohoris: ¡Listo!
Actualice la pregunta eliminando la nota de actualización, la mejor respuesta ahora también funciona en las últimas versiones de osx

Respuestas (4)

Esto funciona en OSX 10.9 Mavericks, con un diseño de teclado que creé con Ukulele. Suponiendo que ya tiene el diseño instalado en su sistema, inicie sesión en su cuenta y active su diseño de teclado personalizado.

Abra una terminal y ejecute el siguiente comando:

cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/

Si tiene la intención de utilizar un editor de texto (por ejemplo, TextWrangler) para realizar este cambio en lugar de XCode (que tiene un editor gráfico de plist especializado), también ejecute :

plutil -convert xml1 /tmp/com.apple.HIToolbox.plist

Ahora, abra /tmp/com.apple.HIToolbox.plisten el editor de texto o en XCode.

A lo largo del archivo encontrará varias menciones de una KeyboardLayout IDclave seguida de un número entero y KeyboardLayout Nameseguida de una cadena. Cambie estas cadenas por el nombre de su diseño de teclado personalizado y los números enteros de identificación por el ID de su diseño (la forma más fácil de encontrar los valores correctos es compararlos con la configuración de usuario que se encuentra en el archivo ~/Library/Preferences/com.apple.HIToolbox.plist.

Además, el valor de la clave AppleCurrentKeyboardLayoutInputSourceIDdebe cambiarse en consecuencia (probablemente a algo como org.unknown.keylayout.NameOfYourLayout). De nuevo, puede encontrar este valor en su archivo de preferencias local.

Una vez realizados estos cambios, guarde el archivo y vuelva a la terminal. Para ir a lo seguro, puede crear una copia del com.apple.HIToolbox.plistarchivo original, en caso de que haya cometido un error y necesite retroceder. Por ejemplo, para guardar una copia en su carpeta Documentos :

sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents

Luego instale su cambio con lo siguiente:

sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'

(No es necesario volver a convertir su archivo de forma de texto plutilsi lo hizo antes).

Salga de la terminal y reinicie la computadora (cerrar la sesión no es suficiente: el archivo no se volverá a leer). Después de reiniciar, debería tener su diseño de teclado en la pantalla de inicio de sesión.

NOTA: es posible que hubiera sido suficiente copiar el archivo com.apple.HIToolbox.plistde ~/Library/Preferences/a /Library/Preferences/, sin embargo, en mi caso tiene más entradas, así que decidí ir a lo seguro y simplemente modificar el archivo existente.

Intentando esto ahora mismo, ya que la otra respuesta no funcionó. FWIW, com.apple.HIToolbox.plistasí es como se ve mi archivo después de los cambios: gist.github.com/anonymous/d18bae208b5cf12e48be
Funcionó a la perfección, gracias! Lo siento, ya no puedo darte la recompensa, así que crearé una nueva para recompensarte por esta respuesta.
Trabajado como un encanto. ¡Gran consejo!
Esto es fantástico. ¡Me he atascado con mi teclado belga por defecto demasiado largo! ¡Ojalá pudiera darte múltiples votos!
No parece funcionar en Yosemite, ¿alguien más lo ha intentado?
Tampoco parece funcionar en El Capitán --- ¿o alguien ha podido recrearlo?
Hice esto exactamente de la misma manera en El Capitán sin ningún problema, en dos computadoras diferentes.

Encontré este viejo consejo de MacWorld , que sugería volver a ejecutar el Asistente de configuración:

sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant

Al principio pensé que esto ya no era compatible con Lion, ya que ejecutar este comando no parecía tener ningún efecto. Solo después de publicar esta pregunta, noté que hay un error tipográfico en el comando. Los caracteres de espacio deben escaparse correctamente o la ubicación del binario debe citarse. Por esta razón, el consejo al que me vinculé no funciona.

Aquí está el comando correcto:

sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

Alternativamente, esto también funcionaría:

sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant

Otro problema que no se mencionó en la página a la que me vinculé: la distribución de teclado personalizada debe instalarse en /Library/Keyboard Layouts/(es decir cd /Library/Keyboard\ Layouts, no ) ~/Library/Keyboard Layouts, para que aparezca en la pantalla de selección de distribución de teclado del Asistente de configuración.


Actualización: a partir de OS X 10.8, deberá ejecutar un comando adicional (es decir, eliminar un archivo primero):

sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

Además, deberá crear una nueva cuenta de usuario para completar el Asistente de configuración, pero no se preocupe, puede eliminar la nueva cuenta después.

Este truco ya no funciona en las versiones recientes de OS X 10.8.


Actualización: aquí está todo lo que sé sobre diseños de teclado personalizados en OS X.

Seguí sus pasos para Mountain Lion 10.8 y ejecuté el asistente de configuración para configurar mi diseño de teclado predeterminado en Dvorak e intenté iniciar sesión pero no funcionó. al reiniciar, todavía estaba usando qwerty para la pantalla de inicio de sesión.
Sí, parece que ya no funciona desde OS X 10.8. :(

Estoy usando un diseño de teclado personalizado creado con Ukelele en OS X 10.8.5 . Cambié el diseño del teclado de la pantalla de inicio de sesión con los siguientes pasos:

  1. abrir Users & GroupsenSystem Preferences
  2. Seleccione Login Optionsdesde la parte inferior del panel izquierdo
  3. ControlarShow Input menu in login window
  4. Ir a la pantalla de inicio de sesión
  5. Seleccione el diseño preferido en Other input sourcesel menú de entrada, ubicado en la parte superior derecha
  6. Regrese y desmarque Show Input menu in login windowpara evitar más cambios en el diseño de inicio de sesión

Encontré este método mucho más fácil que editar algunos .plistarchivos aleatorios y ejecutar comandos en la Terminal.

Este método puede requerir acceso administrativo, ya que posiblemente tenga que desbloquear el panel derecho en el paso 3 anterior haciendo clic en el icono de candado en la parte inferior.

Actualización: lamentablemente, esto no parece funcionar en OS X 10.9.

Le he otorgado la recompensa porque parecía la mejor respuesta, pero en realidad no parece funcionar: siempre vuelve a la distribución de teclado predeterminada de EE. UU. Para probar esto, he usado un diseño de teclado que me permite escribir tres símbolos con una pulsación de tecla, de modo que puedo ver cuántos caracteres enmascarados aparecen en el cuadro de entrada de contraseña. Después de aplicar los pasos que mencionó, solo pude ingresar un símbolo a la vez (según el teclado de EE. UU.).
¿Puede describir lo que no funciona con OS X 10.9? Puedo seguir estos pasos (no hice el paso 6) con éxito cuando uso el diseño de Workman (que se encuentra aquí: workman.deekayen.net ). Sin embargo, mi problema es que si se selecciona ese diseño y bloqueo la computadora, el menú de entrada no se mostrará en la pantalla de inicio de sesión, mientras que está bien si tengo Dvorak o algo compatible de forma nativa con OS X. (es decir, veo el menú y puede volver a EE. UU. si es necesario)
@TimothéeBoucher Mi comentario anterior describe lo que sale mal y cómo probé esto.

Después de instalar macOS Sierra, mi diseño personalizado se reinicializaba al valor predeterminado cada vez que iniciaba sesión en mi cuenta.

Apple agregó nuevos teclados y la identificación estaba en conflicto con el teclado que estaba usando.

Para validar si tiene este problema, ejecute:

sudo touch /Biblioteca/Teclado\ Diseños/

La salida:

Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.

La salida afirma que soluciona algo, pero en realidad no hizo nada. Todavía tuve que editar el diseño yo mismo y comenzó a funcionar como antes.

También cambié mi personalizado. Lamentablemente, arreglar los ID en los archivos .plist no me ayudó.
@PavelGurkov, ¿ejecutó el comando sudo touch en la carpeta después? Se requería que el sistema operativo lo considerara.
Sí, hice eso, no obtuve ningún resultado. Revisé todo lo que pude, pero aun así... Funcionó perfectamente en El Capitán, sin suerte en Sierra.