L'aggiornamento dei tasti modificatori dalla riga di comando non ha alcun effetto

2

L'obiettivo: mappare "Caps Lock" su "Control" dalla riga di comando.

Sto cercando di aggiornare i tasti modificatori dalla riga di comando con il seguente comando, come spiegato qui e qui ma senza alcun effetto.

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

Quando lo faccio dalle "Preferenze di sistema" funziona subito e sembra essere configurato come quando lo faccio manualmente, come mostrato di seguito:

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

Questo è lo stesso risultato esatto di quando viene eseguito manualmente o dalla GUI.

Quando si riavvia dopo aver eseguito la riga di comando, vedo che in "Preferenze di sistema" è impostato correttamente, come mi aspetto ma, non funziona. Funziona solo quando si ripristina l'impostazione predefinita e si imposta manualmente.

Ho persino provato a copiare il file plist come suggerito qui di nuovo senza alcun effetto (anche con il riavvio).

Successivamente l'ho provato senza successo (idee da qui ):

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

Esecuzione di OSX 10.9.4 (Mavrics).

Qualsiasi idea è ben accetta.

    
posta SimonW 05.08.2014 - 20:27
fonte

1 risposta

1

È perché i valori sono scritti come stringhe e non come numeri interi. Puoi vederlo 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>

Quindi il modo giusto per aggiornare l'impostazione è utilizzare il 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>'
    
risposta data 27.03.2017 - 02:40
fonte

Leggi altre domande sui tag