Estoy tratando de automatizar la configuración inicial de mi macbook, que incluye instalar software y cambiar la configuración de OS X a mis necesidades.
Intenté actualizar las teclas modificadoras con los valores predeterminados, el código es el siguiente:
# The apple keyboard id (1452-567-0) should probably be modified in case you use other different model
COMPUTER_UUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -E '(UUID)' | awk '{print $3}' | tr -d \"`
defaults write ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID com.apple.keyboard.modifiermapping.1452-567-0 '( { HIDKeyboardModifierMappingDst = 2; HIDKeyboardModifierMappingSrc = 0; } )'
El problema parece que incluso si se cambia el patrón, las Preferencias del Sistema no detectan la actualización, ni siquiera reinician la computadora.
¿Hay alguna forma de realizar esta operación en Snow Leopard?
Gracias.
macos
command-line
automator
bash
El robot
fuente
fuente
defaults -currentHost write -g key 'value'
en su lugar. Aún así no funciona.Respuestas:
Es importante que el
defaults
comando use la "ID de teclado" correcta en la tecla, parece ser:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0
Por ejemplo, el teclado interno de mi MacBook Air usa:
com.apple.keyboard.modifiermapping.1452-579-0
mientras que el teclado externo de mi iMac usacom.apple.keyboard.modifiermapping.1118-219-0
¿Cómo obtener la "ID de teclado" correcta? En la línea de comando puedes usar:
para obtener una lista de sus dispositivos USB con los parámetros relevantes:
Supongo que el tercer parámetro (la parte "-0") es un "contador", en caso de que tenga más de un teclado del mismo tipo.
Entonces, para desactivar la tecla Bloq Mayús en mi teclado externo ahora puedo usar:
Y, para completar, aquí hay una lista de posibles códigos clave para usar ( de las sugerencias de Mac OS X ):
Actualización: gracias a Lauri Ranta, aquí hay un comando que funciona para teclados Bluetooth y USB:
que te da una salida ligeramente diferente:
fuente
'{ HIDKeyboardModifierMappingDst = -1; HIDKeyboardModifierMappingSrc = 0; }'
que se puede encontrar en algunos sitios web, al menos para mí, el "-1" y "0" en los valores de la dict son interpretados como cadenas, no enteros. Eso lleva a un estado extraño donde Preferencias muestra las teclas modificadoras modificadas, pero el teclado en realidad no se comporta de esa manera.ioreg -n IOHIDKeyboard -r
también incluiría teclados Bluetooth.El problema que tengo es que cada vez que conecto mi teclado, obtiene una ID diferente en ioreg. Todo lo que necesito hacer es intercambiar el comando y las teclas de Apple.
Decidí resolver esto en mi caso de la "manera incorrecta" usando AppleScript y la GUI de Preferencias del Sistema. Es un truco feo, ¡pero funciona! Su experiencia puede ser diferente.
fuente
Yo tampoco he podido obtener
defaults write
(o actualizar archivos .plist) que afecten mi configuración HIDKeyboardModifierMappingSrc y HIDKeyboardModifierMappingDst en Snow Leopard .Estoy tratando de "rellenar previamente" mi cuenta de invitado para admitir mi teclado PS2 a USB (que aparentemente tiene opciones y comandos intercambiados). Las sugerencias de otras páginas para "cerrar y volver a iniciar sesión" no ayudan; "Cerrar sesión" de la cuenta Invitado elimina todos mis cambios.
(Me he actualizado mi éxito "com.apple.dock" y "archivos plist com.apple.menuextra.clock" para personalizar el muelle y el reloj de 24 horas, respectivamente, lo que hace aún más frustrante que los modificadores de teclado ganaron' t trabajo ...)
He intentado usar "dtruss -asf" para comparar lo que está haciendo "System Preferences.app" (que aparentemente funciona) con lo que está haciendo "default". Más cerca que puedo imaginar, veo mensajes en la línea de:
Si alguien ha descubierto una solución que funcione con Snow Leopard, me encantaría escucharla ...
fuente
diff
para verificar que estás creando este archivo exactamente como lo haría la interfaz de usuario?fs_usage
olsof
para averiguar qué más se está haciendo cuando usa la interfaz de usuario.fuente
fs_usage
no muestra nada interesante AFAICT, y verifiqué (con mi comando modificado en el comentario a la pregunta) que el resultado se muestra como cabría esperar.