O driver não tem nada a ver com isso, apenas gerencia o dispositivo e permite que o kernel se comunique com ele. O que você quer é uma função de alavanca muito maior.
A maneira de fazer isso é usar udev
, o gerenciador de dispositivos para o kernel Linux:
-
Crie um script que enviará as notificações. Salve as seguintes linhas em um arquivo em seu diretório pessoal, por exemplo,
~/usbnotify.sh
:#!/bin/bash export DISPLAY=":0" notify-send "New device plugged in: $@"
Torne o script executável executando
chmod +x ~/usbnotify.sh
-
Crie um novo arquivo chamado
/etc/udev/rules.d/95-usbnotify.rules
com o seguinte conteúdo (adaptado de aqui ) :KERNEL!="sd[a-z]*", GOTO="media_by_label_auto_mount_end" ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="media_by_label_auto_mount_end" # Get label PROGRAM=="/sbin/blkid -o value -s LABEL %N", ENV{dir_name}="%c" # use basename to correctly handle labels such as ../mnt/foo PROGRAM=="/usr/bin/basename '%E{dir_name}'", ENV{dir_name}="%c" ENV{dir_name}=="", ENV{dir_name}="usbhd-%k" ACTION=="add", ENV{dir_name}!="", RUN+="/home/akshay/usbnotify.sh %c", GOTO="media_by_label_auto_mount_end" # Exit LABEL="media_by_label_auto_mount_end"
Certifique-se de usar o caminho correto para o script, usei
/home/akshay/usbnotify.sh
, mas edite para apontar para o seu diretório pessoal.
Salve o script e pronto. Agora você deve receber uma notificação para cada dispositivo que você conecta e que esteja montado como uma unidade. Isso provavelmente não funcionará para câmeras e afins, mas qualquer dispositivo de armazenamento conectado como /dev/sd*
deve funcionar.