¿Puede la línea de comando "escritura predeterminada" configurar la barra de menú en macOS?

Realmente me gustaría usar un script para habilitar estas cosas en macOS High Sierra, usando los valores predeterminados. Sé cómo crear el script en .bash_profile, ya que usaré una función para él y luego simplemente ejecutaré la función en la terminal. Sin embargo, lo que me falta son las cadenas reales para habilitar lo siguiente:

  • Visualización del icono de Bluetooth
  • Visualización del icono de volumen
  • Visualización del porcentaje de batería
  • Visualización de la fecha completa

¿Alguno de estos se puede configurar mediante programación mediante el uso de valores predeterminados y han cambiado mucho entre 10.6 y 10.13?

Ok, según lo que dijo IconDeamon en la sección de comentarios de esta publicación, pude ir y editar ~/Library/Preferences/com.apple.systemuiserver.plisty pude ver una lista de menús que he habilitado.

Sin embargo, esto no necesariamente me lleva al lugar al que quiero ir. Idealmente, sería bueno encontrar una lista y poder resolver esto. Quiero decir, está bien, ahora, gracias a la ayuda en este foro, sé que los que deseo mostrar son:

/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

y que el menú puede tener una _5o una _3al final para indicar dónde debe ir. Pero..? No es exactamente un archivo de texto escribible por el usuario que solo puedo editar.

Supongo que sabe cómo configurar bash y escribir esto y está buscando las claves (o alguien que diga en el registro, no, no puede hacer esto) para una versión específica de macOS.
sí. estoy ejecutando osx el capitan pero la máquina en la que estoy buscando simplemente escribir "predeterminados" (mi nombre de función en .bash_profile) va a ser una sierra alta.
mira ~/Library/Preferences/com.apple.systemuiserver.plistadentro
gracias @IconDaemon - ahora tengo una lista de lo que tiendo a usar. pero no estoy seguro de cómo usar esta información para escribir en una computadora nueva. además, el menú Battery.menu no parece especificar automáticamente el porcentaje.
El siguiente comando mostrará el porcentaje de batería:defaults write com.apple.menuextra.battery ShowPercent YES; killall SystemUIServer
@ user3439894 Sabes, no pude hacer que eso funcionara en OS X El Capitan. Parece que estos se modifican de vez en cuando, así que probaré este en macOS High Sierra y veré si funciona. Que extraño.
no pude hacerlo funcionar en osx el capitan, high sierra o mojave. no se que pasa actualmente estoy buscando la solución mojave, por supuesto.

Respuestas (2)

Este defaults writecomando habilitará varios íconos de la barra de menú, incluido 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"

Los cambios no surtirán efecto hasta que reinicie SystemUIServer :
killall SystemUIServer

Si desea habilitar elementos adicionales, busque ~/Library/Preferences/com.apple.systemuiserver.plistpara encontrar el nombre específico del menú adicional que está buscando.

Nota: si intenta habilitar un menú adicional que no tiene en su máquina, el comando se atascará en un bucle sin fin. Algunos usuarios pueden no tener el Eject.menu, por ejemplo.

Obtengo un bucle sin fin de 2018-09-25 00:31:35.052 predeterminados [48638:10853265] El argumento de representante no es un diccionario Los valores predeterminados no se han cambiado. 2018-09-25 00:31:35.973 predeterminados[48677:10853403] El argumento de representación no es un diccionario Los valores predeterminados no se han cambiado. 2018-09-25 00:31:36.892 predeterminados[48715:10853535] El argumento de representación no es un diccionario Los valores predeterminados no se han cambiado. 2018-09-25 00:31:37.807 predeterminados[48753:10853666] El argumento de representación no es un diccionario Los valores predeterminados no se han cambiado. con macOS High Sierra. ¿Qué estoy haciendo mal?
@esaruoho El comando debe ser de una línea: si tiene retornos de carro adicionales o líneas en blanco, eso podría causar un problema como el que mencionó.
Lo pegué como una línea y obtuve esos errores.
Hola, después de eliminar Eject, pude hacer que todos funcionaran. Eject.menu estaba creando este bucle sin fin :)
Para mí, el elemento Reloj siempre reaparecería en los valores predeterminados después de ejecutar killall

En macOS Big Sur, parece que algunas de las opciones están configuradas en

~/Library/Preferences/ByHost/com.apple.controlcenter.$hostId

y se puede configurar mediante el defaults -currentHost writecomando.

El porcentaje de batería es uno de ellos.