Chcę edytować ustawienia preferencji systemowych za pomocą wiersza polecenia, ale przez całe życie nie mogę znaleźć poprawnych nazw zmiennych.
W Opcjach logowania w sekcji Użytkownicy i grupy chciałbym móc zmienić okno logowania Wyświetl z listy użytkowników na „imię i hasło”.
W Date & Time chciałbym wiedzieć, w jaki sposób zmieniam czas na serwer, którego używamy. Włącz pola w Ustawieniach udostępniania Ustawienia oszczędzania energii
Byłoby wspaniale, gdyby ktoś mógł mi pomóc lub skierować mnie we właściwym kierunku, ponieważ wiem, że edytujesz listę preferencji, ale wie, co dodać lub znaleźć preferowane konwencje nazewnictwa.
Dzięki.
mountain-lion
terminal
command-line
unix
Sinergi
źródło
źródło
Odpowiedzi:
Po pierwsze, możesz sprawdzić stronę internetową, która zawiera wiele z tych rzeczy: http://secrets.blacktree.com/
Ja jednak właśnie wybrałem rozwiązanie brutalnej siły:
Skopiuj folder Preferencje
Uruchom Preferencje systemowe. Dokonaj zmiany za pomocą GUI. Prawdopodobnie najlepiej wykonać jedną zmianę naraz, np. Zmieniłem „Wyświetl okno logowania jako:” z „Listy użytkowników” na „Nazwę i hasło”. Zamknij Preferencje systemowe.
Skopiuj ponownie folder Preferencje:
Sprawdź, które pliki uległy zmianie:
Porównaj dwie wersje. Ponieważ są to pliki binarne, musisz je przekonwertować do formatu XML w celu porównania. Używam do tego aliasu:
W tym momencie zlokalizowaliśmy ustawienie. Potwierdź, że mamy to
defaults
:Uruchom Preferencje systemowe i potwierdź zmianę.
źródło
sudo opensnoop -n cfprefsd
pokazuje, które listy właściwości są dostępne. Można też po prostu posortować pliki preferencjami, data modyfikacji:ls -t {~,}/Library/Preferences/{ByHost,}
.W przypadku preferencji w domenie użytkownika możesz także uruchomić
defaults read > temp
, zmienić niektóre preferencje i uruchomićdiff temp <(defaults read)
.źródło
opensnoop
po prostu drukuje komunikaty o błędach; najpierwdtrace: system integrity protection is on, some features will not be available
lista wiadomości takich jakdtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2
; druga część wydaje się działać dobrzeZa pomocą AppleScript można kontrolować wiele właściwości Preferencji systemowych. Przykłady można znaleźć na https://www.macosxautomation.com/applescript/features/system-prefs.html .
W zależności od tego, co chcesz zrobić, możesz utworzyć skrypt do wykonywania takich czynności
$ set-setting "dock preferences" "autohide:true, magnification:false"
Użyj Script Editor.app do uruchamiania i debugowania kodu na wypadek zmiany etykiet właściwości w nowszych wersjach macOS.
źródło