Próbuję zautomatyzować początkową konfigurację mojego MacBooka, która obejmuje instalację oprogramowania i zmianę konfiguracji OS X do moich potrzeb.
Próbowałem zaktualizować klucze modyfikatora do wartości domyślnych, kod jest następujący:
# 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; } )'
Problem wydaje się, że nawet jeśli wzorzec zostanie zmieniony, Preferencje systemowe nie wychwycą aktualizacji, nawet nie uruchomią ponownie komputera.
Czy jest jakiś sposób na wykonanie tej operacji w Snow Leopard?
Dzięki.
macos
command-line
automator
bash
Robot
źródło
źródło
defaults -currentHost write -g key 'value'
zamiast tego. Nadal nie działa.Odpowiedzi:
Ważne jest, aby
defaults
polecenie używało poprawnego „identyfikatora klawiatury” w klawiszu, wydaje się, że:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0
Na przykład klawiatura wewnętrzna w moim MacBooku Air używa:,
com.apple.keyboard.modifiermapping.1452-579-0
natomiast klawiatura zewnętrzna w moim iMacucom.apple.keyboard.modifiermapping.1118-219-0
Jak uzyskać prawidłowy „identyfikator klawiatury”? W wierszu poleceń możesz użyć:
aby uzyskać listę urządzeń USB z odpowiednimi parametrami:
Domyślam się, że trzeci parametr (część „-0”) to „licznik”, na wypadek, gdy masz więcej niż jedną klawiaturę tego samego typu.
Aby wyłączyć klawisz CapsLock na klawiaturze zewnętrznej, mogę teraz używać:
I, dla kompletności, oto lista możliwych kodów kluczy do użycia ( z podpowiedzi Mac OS X ):
Aktualizacja: dzięki Lauri Ranta oto polecenie, które działa na klawiaturach Bluetooth i USB:
co daje nieco inną wydajność:
źródło
'{ HIDKeyboardModifierMappingDst = -1; HIDKeyboardModifierMappingSrc = 0; }'
, które można znaleźć na niektórych stronach internetowych, przynajmniej dla mnie „-1” i „0” w wartości dict są następnie interpretowane jako ciągi, a nie liczbami całkowitymi. To prowadzi do dziwnego stanu, w którym Preferencje pokazują zmienione klawisze modyfikatora, ale klawiatura tak naprawdę nie zachowuje się w ten sposób.ioreg -n IOHIDKeyboard -r
obejmuje również klawiatury Bluetooth.Problemem jest to, że za każdym razem, gdy podłączam klawiaturę, dostaje ona inny identyfikator w ioreg. Wszystko, co muszę zrobić, to zamienić polecenie i klawisze Apple.
Postanowiłem rozwiązać ten problem w moim przypadku „w niewłaściwy sposób” za pomocą AppleScript i GUI Preferencji systemowych. To brzydki hack, ale działa! Twój przebieg może się różnić.
źródło
Ja również nie byłem w stanie uzyskać
defaults write
(ani zaktualizować plików .plist), aby wpłynąć na moje ustawienia HIDKeyboardModifierMappingSrc i HIDKeyboardModifierMappingDst w systemie Snow Leopard .Próbuję „wstępnie wypełnić” moje konto gościa, aby obsługiwać klawiaturę PS2-USB (która najwyraźniej ma zamienione opcje i polecenia). Sugestie innych stron dotyczące „wylogowania się i ponownego zalogowania” nie pomagają; „wylogowanie” z konta gościa usuwa wszystkie moje zmiany.
(Udało mi się zaktualizować moje pliki plist „com.apple.dock” i „com.apple.menuextra.clock”, aby dostosować odpowiednio stację dokującą i zegar 24-godzinny, co jeszcze bardziej frustruje wygraną modyfikatorów klawiatury ” t praca ...)
Próbowałem użyć „dtruss -asf”, aby porównać to, co robi „System Preferences.app” (co najwyraźniej działa) z tym, co robi „default”. Najbliżej mogę zrozumieć, widzę wiadomości wzdłuż:
Jeśli ktoś wymyśli rozwiązanie, które działa pod Snow Leopardem, chętnie go usłyszę ...
źródło
diff
sprawdziłeś, czy tworzysz ten plik dokładnie tak, jak zrobiłby to interfejs użytkownika?fs_usage
lub,lsof
aby dowiedzieć się, co jeszcze robi się podczas korzystania z interfejsu użytkownika.źródło
fs_usage
nie pokazuje nic ciekawego AFAICT, a ja zweryfikowałem (moim zmodyfikowanym poleceniem w komentarzu do pytania), że wynik jest zgodny z oczekiwaniami.