Может ли командная строка «запись по умолчанию» настроить строку меню в macOS?

17

Мне бы очень хотелось использовать скрипт для включения этих вещей в macOS High Sierra с использованием значений по умолчанию. Я знаю, как создать скрипт в .bash_profile, так как я буду использовать для него функцию, а затем просто запускать функцию в терминале. Однако, то, что я пропускаю, является фактическими строками, чтобы включить следующее:

  • Отображение значка Bluetooth
  • Отображение значка громкости
  • Отображение процента заряда батареи
  • Отображение полной даты

Устанавливаются ли какие-либо из них программно с помощью значений по умолчанию, и сильно ли они изменились между 10.6-10.13?

Хорошо, основываясь на том, что IconDeamon сказал в разделе комментариев к этому сообщению, я смог перейти и отредактировать ~/Library/Preferences/com.apple.systemuiserver.plistи смог увидеть список меню, которые я включил.

Однако это не обязательно приведет меня к месту, куда я хочу пойти. В идеале было бы хорошо найти список и решить эту проблему. Я имею в виду, хорошо, теперь, благодаря помощи на этом форуме, я знаю, что я хочу показать:

/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

и что меню может иметь _5или _3в конце, чтобы указать, куда оно должно идти. Но..? Это не совсем написанный пользователем текстовый файл, который я могу просто отредактировать.

esaruoho
источник
Я предполагаю, что вы знаете, как установить bash и скрипт, и ищете ключи (или кто-то, кто скажет в записи - нет, вы не можете этого сделать) для конкретной версии macOS.
bmike
Ага. я использую osx el capitan, но машина, на которой я собираюсь просто ввести «значения по умолчанию» (имя моей функции в .bash_profile), будет иметь высокую степень.
esaruoho
1
Посмотри ~/Library/Preferences/com.apple.systemuiserver.plist.
IconDaemon
спасибо @IconDaemon - теперь у меня есть список того, что я склонен использовать. но я не уверен, как использовать эту информацию для записи на совершенно новом компьютере. Кроме того, Battery.menu автоматически не указывает процент.
esaruoho
Следующая команда покажет процент заряда батареи:defaults write com.apple.menuextra.battery ShowPercent YES; killall SystemUIServer
user3439894

Ответы:

12

Эта defaults writeкоманда активирует несколько значков строки меню, включая 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"

Изменения не вступят в силу, пока вы не перезапустите SystemUIServer :
killall SystemUIServer

Если вы хотите включить дополнительные пункты, ~/Library/Preferences/com.apple.systemuiserver.plistнайдите конкретное название нужного вам дополнительного меню.

Примечание. Если вы попытаетесь включить дополнительное меню, которого у вас нет на вашей машине, команда застрянет в бесконечном цикле. Некоторые пользователи могут не иметь Eject.menu, например.

Уэйд Уильямс
источник
Я получаю бесконечный цикл значений по умолчанию 2018-09-25 00: 31: 35.052 [48638: 10853265] Аргумент Rep не является словарем. Значения по умолчанию не были изменены. 2018-09-25 00: 31: 35.973 значения по умолчанию [48677: 10853403] Параметр Rep не является словарем. Значения по умолчанию не были изменены. 2018-09-25 00: 31: 36.892 значения по умолчанию [48715: 10853535] Аргумент Rep не является словарем. Значения по умолчанию не были изменены. 2018-09-25 00: 31: 37.807 значения по умолчанию [48753: 10853666] Аргумент Rep не является словарем. Значения по умолчанию не были изменены. с macOS High Sierra. Что я делаю не так?
esaruoho
2
@esaruoho Команда должна состоять из одной строки - если у вас есть дополнительные символы возврата каретки или пустые строки, это может вызвать проблему, подобную той, которую вы упомянули.
Уэйд Уильямс
Я вставил это как одну строку и получил те ошибки.
esaruoho
2
Привет, после удаления Eject, я смог заставить их всех работать. Eject.menu создавал этот бесконечный цикл :)
esaruoho
Для меня пункт Часы всегда появлялся в настройках по умолчанию после запуска killall
felixfbecker