Czy wiersz poleceń „defaults write” może skonfigurować pasek menu w systemie macOS?

17

Naprawdę chciałbym użyć skryptu, aby włączyć te rzeczy w systemie macOS High Sierra, używając ustawień domyślnych. Wiem, jak utworzyć skrypt w .bash_profile, ponieważ użyję do niego funkcji, a następnie po prostu uruchomię funkcję w terminalu. Jednak brakuje mi rzeczywistych ciągów, które umożliwiają:

  • Wyświetlanie ikony Bluetooth
  • Wyświetlanie ikony głośności
  • Wyświetlanie procentu baterii
  • Wyświetlanie pełnej daty

Czy którekolwiek z nich można programowo ustawić za pomocą ustawień domyślnych i czy zmieniły one wiele między 10.6 a 10.13?

Ok, w oparciu o to, co IconDeamon powiedział w sekcji komentarzy do tego postu, mogłem przejść i edytować ~/Library/Preferences/com.apple.systemuiserver.plistoraz zobaczyć listę menu, które włączyłem.

Jednak niekoniecznie prowadzi mnie to miejsca, do którego chcę się udać. Idealnie byłoby znaleźć listę i móc ją rozwiązać. Mam na myśli, okej, dzięki pomocy na tym forum wiem, że te, które chcę wyświetlić, to:

/System/Library/CoreServices/Menu Extras/Script Menu.menu

/System/Library/CoreServices/Menu Extras/RemoteDesktop.menu

/System/Library/CoreServices/Menu Extras/Bluetooth.menu

/System/Library/CoreServices/Menu Extras/TimeMachine.menu

/System/Library/CoreServices/Menu Extras/AirPort.menu

/System/Library/CoreServices/Menu Extras/TextInput.menu

/System/Library/CoreServices/Menu Extras/Battery.menu

/System/Library/CoreServices/Menu Extras/Volume.menu

/System/Library/CoreServices/Menu Extras/Clock.menu

i że na końcu menu może znajdować się znak „ a” _5lub „a”, _3wskazujący, gdzie powinien się udać. Ale..? Nie jest to do końca zapisywalny przez użytkownika plik tekstowy, który mogę po prostu edytować.

esaruoho
źródło
Zakładam, że wiesz, jak ustawić bash i skrypt i szukasz kluczy (lub kogoś do powiedzenia na płycie - nie możesz tego zrobić) dla konkretnej wersji macOS.
bmike
tak. używam osx el capitan, ale maszyna, którą chcę po prostu wpisać „defaults” w (nazwa mojej funkcji w .bash_profile), będzie wysoką sierrą.
esaruoho,
1
Zajrzyj do środka ~/Library/Preferences/com.apple.systemuiserver.plist.
IconDaemon,
Dzięki @IconDaemon - teraz mam listę co i mają tendencję do używania. ale nie jestem pewien, jak wykorzystać te informacje do pisania na nowym komputerze. także menu Battery.menu nie wydaje się automatycznie określać procentu.
esaruoho,
Następujące polecenie pokaże Procent baterii:defaults write com.apple.menuextra.battery ShowPercent YES; killall SystemUIServer
user3439894

Odpowiedzi:

12

To defaults writepolecenie włączy kilka ikon paska menu, w tym Bluetooth.

defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu" "/System/Library/CoreServices/Menu Extras/Displays.menu" "/System/Library/CoreServices/Menu Extras/Volume.menu"

Zmiany zaczną obowiązywać dopiero po ponownym uruchomieniu SystemUIServer :
killall SystemUIServer

Jeśli chcesz włączyć dodatkowe elementy, poszukaj ~/Library/Preferences/com.apple.systemuiserver.plistkonkretnej nazwy dodatkowego menu, którego szukasz.

Uwaga: Jeśli spróbujesz włączyć dodatkowe menu, którego nie masz na swoim komputerze, polecenie utknie w nieskończonej pętli. Niektórzy użytkownicy mogą Eject.menuna przykład nie mieć .

Wade Williams
źródło
Dostaję nieskończoną pętlę domyślnych wartości domyślnych 00-09: 00: 31: 35.052 [48638: 10853265] Argument Rep nie jest słownikiem Domyślne wartości nie zostały zmienione. 2018-09-25 00: 31: 35.973 wartości domyślne [48677: 10853403] Argument Rep nie jest słownikiem Wartości domyślne nie zostały zmienione. 2018-09-25 00: 31: 36.892 wartości domyślne [48715: 10853535] Argument Rep nie jest słownikiem Wartości domyślne nie zostały zmienione. 2018-09-25 00: 31: 37.807 wartości domyślne [48753: 10853666] Argument Rep nie jest słownikiem Wartości domyślne nie zostały zmienione. z systemem macOS High Sierra. Co ja robię źle?
esaruoho,
2
@esaruoho Polecenie musi składać się z jednej linii - jeśli masz dodatkowe znaki powrotu karetki lub puste linie, może to powodować problem taki jak ten, o którym wspomniałeś.
Wade Williams,
Wkleiłem go jako jedną linię i otrzymałem te błędy.
esaruoho
2
Cześć, po usunięciu Eject udało mi się sprawić, by wszystkie działały. Eject.menu tworzył tę niekończącą się pętlę :)
esaruoho,
Dla mnie element Zegar zawsze pojawiałby się domyślnie po uruchomieniu killall
felixfbecker