Esta é mais uma questão de como usar a instrução de linha de comando, mais do que como adicionar itens ao painel de notificação do Unity.
Eu tenho que ter uma CLI de uma linha para adicionar um novo item ao systray-whitelist com.canonical.Unity.Panel.
O procedimento padrão para fazer isso é:
sudo gsettings get com.canonical.Unity.Panel systray-whitelist
Nós temos
['JavaEmbeddedFrame', 'Wine', 'Skype']
Então nós fazemos o segundo comando
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"
Enquanto isso é ótimo e tudo, requer que as pessoas copiem e colem o resultado da primeira linha e, para um script que estou escrevendo, quero fazê-lo em um comando.
Até agora é isso que eu tenho:
sudo gsettings set com.canonical.Unity.Panel systray-whitelist | gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/']$/,'shutter']/" | awk 'NF{print "\"" $0 "\""}'
Eu acho que estou perdendo alguma coisa.
Em primeiro lugar, não tenho certeza se estou inserindo a string corretamente na função gsettings set. Em segundo lugar, enquanto eu acho que estou analisando a saída do gsettings get function corretamente, não encontrei uma maneira de adicionar "" o resultado modificado usando o sed, então tive que canalizar outro comando awk nessa bagunça.
Obrigado a todos que ajudam.
fonte
Respostas:
Depois de acertar erro após erro, finalmente percebi por que não aceitava as aspas. Você pode simplesmente colocar as aspas em torno da variável real, sem precisar digitá-las no comando real.
Isso funcionará:
(Além disso, você precisa remover o 'in sed -e "s /'] $ / no seu exemplo para que isso funcione).
Edição posterior: a propósito, não execute gsettings com sudo ... ele não funcionará.
fonte