Большая трудность заключается в том, что клавиша menuExtras
в com.apple.systemuiserver
представляет собой массив, который переупорядочивается при перетаскивании дополнительных элементов меню в строке меню (а также добавлении и удалении их).
В вышеупомянутом случае Wi-Fi Menu Extra является вторым элементом (который является индексом массива 1, потому что эти массивы индексируются нулями, как массивы C), поэтому вы можете удалить его с помощью PlistBuddy
, которого нет в вашем $PATH
потому что он спрятан в /usr/libexec
. Вы должны использовать PlistBuddy
потому что команда defaults
не имеет синтаксиса для указания индекса массива. Затем убейте SystemUIServer, чтобы перезагрузить его:
/usr/libexec/PlistBuddy -c 'Delete :menuExtras:1' ~/Library/Preferences/com.apple.systemuiserver.plist
killall SystemUIServer
Чтобы добавить его обратно, сделайте что-то вроде этого:
/usr/libexec/PlistBuddy -c 'Add :menuExtras:1 string "/System/Library/CoreServices/Menu Extras/AirPort.menu"' ~/Library/Preferences/com.apple.systemuiserver.plist
killall SystemUIServer
Обратите внимание, что это сломается, если вы когда-либо удалите или добавите «Дополнения меню», так что «Дополнение меню Wi-Fi» не будет вторым «Дополнением меню» слева в строке меню. Приложив немного больше скриптов, вы можете пройтись по массиву menuExtras
поисках дополнительного меню AirPort (Wi-Fi), отметить его индекс, а затем ввести его в команду PlistBuddy.