A linha de comando "defaults write" pode configurar a barra de menus no macOS?

16

Eu realmente gostaria de usar um script para habilitar essas coisas no macOS High Sierra, usando padrões. Eu sei como criar o script em .bash_profile, pois usarei uma função para isso e, em seguida, apenas execute a função no terminal. No entanto, o que estou perdendo são as strings reais para permitir o seguinte:

  • Exibindo do ícone Bluetooth
  • Exibindo o ícone Volume
  • Exibição da porcentagem de bateria
  • Exibição da data completa

Algum deles pode ser programaticamente definido usando Padrões, e eles mudaram bastante entre 10.6 e 10.13?

Ok, com base no que o IconDeamon disse na seção de comentários deste post, eu pude ir e editar ~/Library/Preferences/com.apple.systemuiserver.pliste pude ver uma lista de menus que eu habilitei.

No entanto, isso não necessariamente me leva ao lugar que eu quero ir. Idealmente, seria bom encontrar uma lista e resolver isso. Quero dizer, tudo bem, agora, graças à ajuda neste fórum, eu sei que os que desejo exibir são:

/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

e que o menu pode ter um _5ou um _3no final para indicar para onde deve ir. Mas..? Não é exatamente um arquivo de texto gravável pelo usuário que eu possa editar.

esaruoho
fonte
Suponho que você saiba como definir o bash e o script e esteja procurando as chaves (ou alguém para dizer no registro - não, você não pode fazer isso) para uma versão específica do macOS.
bmike
Sim. Estou executando osx el capitan, mas a máquina que estou procurando digitar "default" em (meu nome da função em .bash_profile) será uma serra alta.
esaruoho
1
Olhe dentro ~/Library/Preferences/com.apple.systemuiserver.plist.
IconDaemon
graças @IconDaemon - agora eu tenho uma lista do que eu tendem a usar. mas não sei como usar essas informações para escrever em um computador novo. Além disso, o Battery.menu parece não especificar automaticamente a porcentagem.
esaruoho
O comando a seguir mostrará a porcentagem da bateria:defaults write com.apple.menuextra.battery ShowPercent YES; killall SystemUIServer
user3439894

Respostas:

11

Este defaults writecomando habilitará vários ícones da barra de menus, incluindo 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"

As alterações não terão efeito até você reiniciar o SystemUIServer :
killall SystemUIServer

Se você deseja ativar itens adicionais, procure ~/Library/Preferences/com.apple.systemuiserver.plisto nome específico do menu extra que você está procurando.

Nota: Se você tentar ativar um menu extra que não possui na sua máquina, o comando ficará preso em um loop sem fim. Alguns usuários podem não ter o Eject.menu, por exemplo.

Wade Williams
fonte
Estou recebendo um loop infinito de 2018-09-25 00: 31: 35.052 padrões [48638: 10853265] O argumento rep não é um dicionário Os padrões não foram alterados. 2018-09-25 00: 31: 35.973 padrões [48677: 10853403] O argumento rep não é um dicionário Os padrões não foram alterados. 2018-09-25 00: 31: 36.892 padrões [48715: 10853535] O argumento rep não é um dicionário Os padrões não foram alterados. 2018-09-25 00: 31: 37.807 padrões [48753: 10853666] O argumento rep não é um dicionário Os padrões não foram alterados. com o macOS High Sierra. O que estou fazendo errado?
esaruoho 25/09
2
@esaruoho O comando precisa ser de uma linha - se você tiver retornos de carro extras ou linhas em branco, isso poderá causar um problema como o que você mencionou.
Wade Williams
Eu colei como uma linha e obtive esses erros.
esaruoho
2
Olá, depois de remover o Eject, consegui fazê-los funcionar. Eject.menu foi criar este anel sem fim :)
esaruoho
Para mim, o item Relógio sempre reaparecem nos padrões depois de executar killall
felixfbecker