Como posso ler as mensagens do NotifyOSD depois que elas são exibidas?

13

Gostaria de ler uma lista de mensagens exibidas por notify-osd de tempos em tempos. Eu estou usando 12.04 ainda, se é importante. Isso é possível?

Estes dois As perguntas de 2010 indicam que um arquivo de log deve existir em ~/.cache/notify-osd.log . Eu não tenho tal arquivo, e gostaria de saber se isso é um bug (nesse caso, essa questão deve ser fechada) ou se esse arquivo de log depende de outra configuração (como Configurações do Sistema - > Privacidade)?

Eu não me importo em armazenar dados entre as reinicializações. Eu só quero procurar mensagens da sessão atual.

EDIT: Duas boas respostas agora, mas gostaria de saber se essas mensagens estão armazenadas em qualquer lugar , (suposição total, / tmp? RAM?) por um curto período após aparecer na tela. Algum tipo de buffer deve existir como eles aparecem um após o outro, alguns segundos cada, mesmo se houver 20-30 notificações durante o período de um minuto ou dois.

Eu não mencionei na minha pergunta original que eu não estou interessado em mais um indicador PPA + ou gravações excessivas de drives, eu só quero saber se é possível ver as mensagens por um curto período de tempo depois que elas aparecerem. / p>

Meu caso de uso para isso é voltar e descobrir qual música foi tocada há alguns minutos em uma estação de rádio streaming. Eu tenho isso como música de fundo, e ocasionalmente uma música fica na minha cabeça depois que eu ouço. Eu não tenho como voltar para ver o que tocou 1-2 músicas atrás.

    
por Tom Brossman 30.04.2013 / 09:58

3 respostas

6

Depois de olhar cuidadosamente ao redor (A LOT) eu encontrei uma mudança de código em 2011 sobre fazer com que notify-osd não saísse por padrão para o arquivo de log porque isso era usado para fins de depuração e escrevia para o HDD toda vez. Para ativar esse recurso, você pode fazer isso de duas maneiras, um método temporário e um mais permanente.

Método Temporário

Abra o terminal Eu digite o seguinte:

Para sistemas de 64 bits:

sudo killall notify-osd
LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd &

Para sistemas de 32 bits:

sudo killall notify-osd
LOG=1 /usr/lib/notify-osd/notify-osd &

Agora você verá o arquivo .cache/notify-osd.log e as informações de depuração nele.

Método Permanente (AVISO: Mudança Global)

Para uma solução mais permanente, faça o seguinte (Mudança Global. Leia o Aviso mencionado por Rinzwind abaixo. Isso afetará todos e matará o gato!):

sudo nano /etc/environment

Adicione a seguinte linha no final e salve:

LOG=1

Reinicie o computador para testar.

Método permanente (alteração específica do usuário)

Para uma solução mais permanente, faça o seguinte (Alteração específica do usuário. Isso afetará apenas você e o cão. O gato ainda sobreviverá.):

sudo nano ~/.bashrc

Adicione a seguinte linha no final e salve:

LOG=1

Reinicie o computador para testar.

Você deve ver as informações começarem a aparecer no arquivo .cache/notify-osd.log . Por exemplo, este eu depois de desconectar duas vezes minha conexão com fio:

GNU nano 2.2.6 Arquivo: .cache / notify-osd.log

[2013-05-04T18:49:55-00:00, NetworkManager ] Connected
Intel

[2013-05-04T18:50:26-00:00, NetworkManager ] Disconnected - you are now offline
Ethernet network

[2013-05-04T18:50:29-00:00, NetworkManager replaced] Connected
Intel
    
por Luis Alvarado 05.05.2013 / 01:20
14

Você pode instalar as notificações de indicador de pacote que controlam notificações que você recebe. Você pode instalar com o seguinte

sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update
sudo apt-get install indicator-notifications

Você terá que sair e fazer login novamente. Ele aparece como uma caixa de correio no painel superior e fica verde quando você recebe novas mensagens.

Isso é no 13.04, mas também deve funcionar no 12.04.

    
por Stump 05.05.2013 / 02:01
6

Isso mostrará todas as mensagens de notificação desde o início até que seja interrompido.

dbus-monitor "interface='org.freedesktop.Notifications'"    |     \
grep --line-buffered  "member=Notify\|string"

Copie e cole-o em uma janela de terminal ( Ctrl + Alt + T

).

Para parar use Ctrl + C ou feche a janela.

Isso é eficaz, embora não discriminatório e bruto, mas pode ser controlado para monitorar apenas os detalhes exatos desejados, de um agente notificador específico, alterando a grep expressão regular "member=Notify\|string" . O texto pode então ser massageado com sed , awk etc. para ter boa aparência.

No passado, ligar o script para executar automaticamente com o agente de escolha a ser monitorado seria mais útil.

referência cruzada:
 - detalhes explícitos em Existe uma maneira de ver o histórico de notificações

    
por troll la la la 01.10.2013 / 10:14