web-dev-qa-db-fra.com

Comment afficher une notification lorsqu'un périphérique USB est inséré?

Il serait bon de savoir que lorsque vous connectez un périphérique USB comme une webcam, il me notifie que cela fonctionne ou non.

6
Keyvan

Le paquet libnotify-bin comprend un binaire, notify-send qui affiche une notification. Voici un exemple d'invocation:

notify-send "Nouveau périphérique USB connecté" "Un nouveau périphérique a été connecté: blah blah blah"

Je pense que vous pourriez créer une règle udev pour les actions "add" et "remove" afin de déclencher un petit script qui invoquerait une notification. Je n'ai pas étudié la question, mais j'ai vu des scripts similaires invoquer des commandes de chiffrement/montage pour les périphériques de stockage.

Le projet Guadalinex avait également ce type de fonctionnalité [1] qu’il avait présenté à UDS Seville en 2005 (!). Il serait peut-être plus facile de savoir s’ils soumettaient leurs travaux en amont ou s’ils étaient disponibles séparément. N'INSTALLEZ PAS les paquets mentionnés dans le bogue Debian que je cite, c'est uniquement à des fins de référence si quelqu'un décide de le rechercher.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458405

3
MagicFab

C'est vraiment étonnant pour moi qu'en 2014, cette fonctionnalité ne fonctionne toujours pas par défaut. Il semble que très peu de personnes aient besoin de cette fonctionnalité, mais j'en ai vraiment .

Tout d’abord, j’ai trouvé le paquet dev-notify , mais malheureusement, cela ne fonctionne presque pas pour moi: cela fonctionne très peu de temps (1-2 minutes), et ensuite, si je me connecte/déconnecte n'importe quel appareil, il se bloque:

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

Je n'ai trouvé aucune solution, j'ai donc dû l'enlever. (classé rapport de bug également)

Il n'y a pas d'utilitaire similaire que j'ai trouvé jusqu'à présent. J'ai donc dû implémenter ma propre solution, ce n'est probablement pas génial, mais cela fonctionne pour moi: il me notifie par des notifications sonores et visuelles pour tous les périphériques que je branche/débranche. Le titre du périphérique est reçu via lsusb, de sorte que si je branche un périphérique inconnu, au moins je vois son vendor_id:product_id. Je l'aime.

Cela ressemble à ceci:

enter image description here

Détails de l'installation.

Testé sur Ubuntu 12.04, Xubuntu 12.04, Xubuntu 13.04, Linux Mint 13. Je crois que cela devrait fonctionner sur d'autres dérivés d'Ubuntu et j'espère que cela fonctionnera sur tout système * nix avec udev.

  • Allez à page du projet , récupérez les sources et mettez-les quelque part. Il ne contient qu'un seul script principal: my-udev-notify.sh, mais l'archive contient également des sons pour les notifications plug/unplug, ainsi que des informations supplémentaires, voir readme.txt pour plus de détails.
  • Créez le fichier /etc/udev/rules.d/my-udev-notify.rules avec le contenu suivant: (n'oubliez pas de modifier le chemin d'accès vers votre chemin réel où vous avez décompressé 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}'"

Après cela, cela devrait fonctionner pour les périphériques nouvellement connectés. Autrement dit, si vous débranchez un périphérique, vous ne recevrez aucune notification. Mais quand vous le rebranchez, vous le ferez. (oui, pour moi, cela fonctionne sans aucun redémarrage d'UDev. Si ce n'est pas votre cas, essayez de redémarrer)

Pour que cela fonctionne avec tous les appareils, redémarrez simplement votre système. REMARQUE: le premier démarrage peut comporter de nombreuses notifications (voir les problèmes connus dans le readme.txt). Au deuxième démarrage, il n'y aura aucune notification (à moins que vous ne connectiez un nouveau périphérique lorsque le système est éteint)

Vous pouvez le personnaliser (activer/désactiver les notifications visuelles et sonores, ou modifier les sons), consultez le fichier readme.txt dans l’archive pour plus de détails.

3
Dmitry Frank

Il existe des applets pour le panneau de gnome qui vous permettront de voir les périphériques branchés et de les éjecter. Par exemple, il y a éjecteur, une applet qui vous permet de voir les périphériques amovibles montés et de les éjecter. KDE a un système de notification ultra-cool qui vous permet de voir quels périphériques ont été récemment branchés. Vous pouvez essayer d’utiliser la commande lsusb pour vérifier si votre périphérique a été détecté ou non. Et si vous êtes du type aventureux, vous pouvez écrire vos propres règles udev.

2
tinhed

je ne crois pas qu'il y ait encore une telle notification (et pour le moment je n'arrive même pas à me rappeler où configurer les notifications). Je pense qu'il peut être très difficile de faire en sorte qu'un ordinateur conclue si une webcam fonctionne correctement.

lorsque vous insérez un périphérique USB, il apparaît normalement sur votre bureau. Je pense que vous devrez utiliser le programme que vous envisagez d'utiliser avec votre webcam pour savoir si celle-ci fonctionne réellement.

disons que Skype, par exemple, vous pouvez faire un test pour voir si cela fonctionne, sans appeler qui que ce soit (options - périphériques vidéo - (alors assez évident (c'est-à-dire si je me souviens que c'est correct)))

j'espère que cela répond à votre question :-)

0
Stenen