La actualización de las teclas modificadoras desde la línea de comando no tiene efecto

2

El objetivo: asignar "Bloqueo de mayúsculas" a "Control" desde la línea de comandos.

Estoy intentando actualizar las claves modificadoras desde la línea de comandos con el siguiente comando como se explica aquí y aquí pero sin ningún efecto.

$ defaults -currentHost write -g "com.apple.keyboard.modifiermapping.1452-611-0" '(
{
  HIDKeyboardModifierMappingDst = 2;
  HIDKeyboardModifierMappingSrc = 0;
})'

Cuando lo hago desde las "Preferencias del sistema", funciona de inmediato y parece que está configurado de la misma manera que cuando lo hago manualmente, como se ve a continuación:

$ defaults -currentHost read -g "com.apple.keyboard.modifiermapping.1452-611-0"
(
        {
        HIDKeyboardModifierMappingDst = 2;
        HIDKeyboardModifierMappingSrc = 0;
    }
)

Este es el mismo resultado exacto que cuando lo ejecutas manualmente o desde la GUI.

Al reiniciar después de ejecutar la línea de comandos, veo que en "Preferencias del sistema" está configurado correctamente, como espero, pero no funciona. Solo funciona cuando se restablece el valor predeterminado y se configura manualmente.

Incluso traté de copiar el archivo plist como se sugiere aquí de nuevo sin ningún efecto (incluso con reinicio).

Luego intenté esto sin éxito (ideas de aquí ):

defaults -currentHost write -globalDomain <rest of command>
defaults write NSGlobalDomain <rest of command>
defaults write GlobalPreferences <rest of command>

Ejecutando OSX 10.9.4 (Mavrics).

Cualquier idea es bienvenida.

    
pregunta SimonW 05.08.2014 - 20:27

1 respuesta

1

Se debe a que los valores se escriben como cadenas no enteros. Puedes ver eso usando:

$ plutil -convert xml1 -o - ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.keyboard.modifiermapping.1452-591-0</key>
    <array>
        <dict>
            <key>HIDKeyboardModifierMappingDst</key>
            <string>30064771303</string>
            <key>HIDKeyboardModifierMappingSrc</key>
            <string>30064771302</string>
        </dict>
        <dict>
            <key>HIDKeyboardModifierMappingDst</key>
            <string>30064771302</string>
            <key>HIDKeyboardModifierMappingSrc</key>
            <string>30064771303</string>
        </dict>
    </array>
</dict>
</plist>

Por lo tanto, la forma correcta de actualizar la configuración es mediante el formato XML:

$ defaults -currentHost write -g com.apple.keyboard.modifiermapping.1452-591-0 -array \
'<dict>
    <key>HIDKeyboardModifierMappingDst</key>
    <integer>30064771303</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>30064771302</integer>
</dict>' \
'<dict>
    <key>HIDKeyboardModifierMappingDst</key>
    <integer>30064771302</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>30064771303</integer>
</dict>'
    
respondido por el Virus_7 27.03.2017 - 02:40

Lea otras preguntas en las etiquetas