Como mostrar a notificação quando um dispositivo USB é inserido?

5

Seria bom saber que quando você conecta um dispositivo USB como uma webcam, ele me notifica que ele funciona ou não.

    
por Keyvan 24.11.2010 / 22:02

4 respostas

3

O pacote libnotify-bin inclui um binário, notify-send , que exibe uma notificação. Veja um exemplo de como invocá-lo:

notificar-enviar "Novo dispositivo USB conectado" "Um novo dispositivo foi conectado: blá blá blá"

Acredito que você poderia criar uma regra do udev para "adicionar" e para "remover" ações para acionar um script pequeno que invocaria uma notificação. Eu não olhei para isso, mas vi scripts semelhantes chamando comandos de criptografia / mouting para dispositivos de armazenamento.

O projeto Guadalinex também tinha esse tipo de funcionalidade [1] que eles demonstraram na UDS Sevilha em 2005 (!), talvez seria mais fácil rastrear se eles submetessem seu trabalho a montante ou se ele estivesse disponível como um separado pacote em algum lugar. NÃO instale os pacotes referidos no bug do Debian que estou citando, isto é apenas para fins de referência, se alguém decidir pesquisá-lo.

[1] link

    
por MagicFab 25.11.2010 / 16:23
2

Existem applets para o painel do gnome, que permitem que você veja dispositivos conectados e permite ejetá-los. Por exemplo, há ejecter , que é um applet, que permite ver dispositivos removíveis montados e permite ejetá-los. O KDE possui um sistema de notificação super legal que permite ver quais dispositivos foram conectados recentemente. Você pode tentar usar o comando lsusb para verificar se o seu dispositivo foi detectado ou não. E se você é do tipo aventureiro, pode escrever suas próprias regras do udev.

    
por tinhed 25.11.2010 / 05:47
2

É realmente surpreendente para mim que, em 2014, ainda não tenhamos esse recurso funcionando por padrão. Parece que há muito pouca gente que precisa desse recurso, mas eu realmente preciso disso.

Primeiro de tudo, eu encontrei o pacote udev-notify , mas infelizmente isso não funciona para mim: funciona por muito pouco tempo (1-2 minutos) e, em seguida, se eu conectar / desconectar qualquer dispositivo, ele falhará:

Traceback (most recent call last):
  File "./udev-notify.py", line 319, in <module>
    notification.show()
glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files

Eu não encontrei nenhuma solução, então tive que removê-la. (arquivado relatório de erros também)

Não há utilidades similares que eu tenha encontrado até agora. Então eu tive que implementar minha própria solução, provavelmente não é brilhante, mas funciona para mim: ele me avisa com notificação visual e de som para qualquer dispositivo que eu plugue / desconecte. O título do dispositivo é recebido por meio de lsusb , de modo que, se eu conectar algum dispositivo desconhecido, pelo menos eu verei seu vendor_id:product_id . Eu gosto disso.

Parece assim:

Detalhes da instalação.

Testado no Ubuntu 12.04, no Xubuntu 12.04, no Xubuntu 13.04, no Linux Mint 13. Acredito que ele deve funcionar em outros derivados do Ubuntu, e espero que funcione em qualquer sistema * nix com udev .

  • Acesse a página do projeto , obtenha fontes de lá e coloque-as em algum lugar. Há apenas um script principal: my-udev-notify.sh , mas o arquivo também contém sons para plug / desconectar notificações, além de mais algumas informações, consulte readme.txt para obter detalhes.
  • Crie o arquivo /etc/udev/rules.d/my-udev-notify.rules com o seguinte conteúdo: (não se esqueça de modificar o caminho para o caminho real no qual você descompactou my-udev-notify.sh !)
 ACTION=="add",    RUN+="/bin/bash /path/to/my-udev-notify.sh -a add    -p '%p' -b '$attr{busnum}' -d '$attr{devnum}'"
 ACTION=="remove", RUN+="/bin/bash /path/to/my-udev-notify.sh -a remove -p '%p' -b '$attr{busnum}' -d '$attr{devnum}'"

Depois disso, ele deve funcionar para dispositivos recém-conectados. Isto é, se você desconectar algum dispositivo, você não receberá uma notificação. Mas quando você liga de volta, você vai. (sim, para mim funciona sem reiniciar o udev. Se não for para você, tente reinicializando)

Para que funcione para todos os dispositivos, basta reiniciar o sistema. NOTA que pode haver muitas notificações durante a primeira inicialização (consulte os problemas conhecidos no readme.txt ). Na segunda inicialização, não haverá notificações (a menos que você conecte um novo dispositivo o sistema está desligado)

Você pode personalizá-lo (ativar / desativar notificações visuais e sonoras ou alterar sons), verifique o arquivo readme.txt no arquivo para obter detalhes.

    
por Dmitry Frank 26.02.2014 / 10:06
0

Eu não acredito que haja essa notificação ainda, (e agora eu não consigo nem lembrar onde configurar as notificações) Eu acredito que pode ser muito difícil fazer um computador concluir se uma webcam funciona corretamente .

quando você insere um dispositivo USB que normalmente aparece em sua área de trabalho, acredito que você terá que usar o programa que está planejando usar com sua webcam para descobrir se a webcam realmente funciona.

vamos dizer skype, por exemplo, você pode fazer um teste para ver se funciona, sem chamar ninguém (opções - dispositivos de vídeo - (então bastante óbvio (isto é, se eu me lembro correto)))

espero que isso responda à sua pergunta: -)

    
por Stenen 24.11.2010 / 22:16