Aviso de inserção / remoção de dispositivo USB
Dica publicada em Linux / Hardware
Aviso de inserção / remoção de dispositivo USB
Sempre achei aquela notificação auditiva de determinado SO proprietário muito útil e elegante, no caso de inserção e remoção de dispositivos USB. Tive então a idéia de reproduzi-la no Linux. No meu caso, usuário Fedora, a inserção de um dispositivo USB de armazenamento de dados, como um "PenDrive", por exemplo, invoca um script que pede ao usuário a ação a ser tomada, como no sistema proprietário, porém sem o apelo do áudio. Então, para implementar este recurso no Linux, devemos:
Criar uma regra UDEV/HotPlug (se sua distro já manipula o UDEV, tanto melhor, pois sendo só uma dica, não nos deteremos em minúcias - forneço o código da regra do UDEV pronto.) que detecte a inserção / remoção do dispositivo; e invocar, a partir da regra casada, um script que acione o som correspondente (Inserir / Remover).
Observe que é chamado, nos scripts respectivos, o comando "play" para execução dos sons.
Seguem abaixo os códigos:
Regras do UDEV:
Criar uma regra UDEV/HotPlug (se sua distro já manipula o UDEV, tanto melhor, pois sendo só uma dica, não nos deteremos em minúcias - forneço o código da regra do UDEV pronto.) que detecte a inserção / remoção do dispositivo; e invocar, a partir da regra casada, um script que acione o som correspondente (Inserir / Remover).
Observe que é chamado, nos scripts respectivos, o comando "play" para execução dos sons.
Seguem abaixo os códigos:
Regras do UDEV:
# 49udev-usb.rules - copie-o na pasta de regras UDEV de sua distro
# (normalmente /etc/udev/rules.d)
BUS=="usb", ACTION=="add", SUBSYSTEM=="usb_device", DRIVER!="", RUN+="/scripts/toca.usb.add.sh"
BUS=="usb", ACTION=="remove", RUN+="/scripts/toca.usb.rem.sh"
# (normalmente /etc/udev/rules.d)
BUS=="usb", ACTION=="add", SUBSYSTEM=="usb_device", DRIVER!="", RUN+="/scripts/toca.usb.add.sh"
BUS=="usb", ACTION=="remove", RUN+="/scripts/toca.usb.rem.sh"
Duas coisas sobre arquivos de regras UDEV: cada declaração deve ocupar uma linha e a extensão é - obrigatoriamente - .rules - senão o UDEV não a processa.
Scripts:
#!/bin/sh
### toca.usb.add.sh ###
/usr/bin/play /usr/share/sounds/KDE_Dialog_Appear.wav &
### toca.usb.add.sh ###
/usr/bin/play /usr/share/sounds/KDE_Dialog_Appear.wav &
O arquivo acima, toca.usb.add.sh, toca um som indicativo da inserção de dispositivo USB. Ele é invocado pela regra que codificamos.
#!/bin/sh
### toca.usb.rem.sh ###
/usr/bin/play /usr/share/sounds/KDE_Dialog_Disappear.ogg &
### toca.usb.rem.sh ###
/usr/bin/play /usr/share/sounds/KDE_Dialog_Disappear.ogg &
Este outro script, toca.usb.rem.sh, faz o contrário, ou seja, toca um som na remoção de dispositivo USB. Lembre-se de colocar, na regra UDEV, o caminho certo dos scripts, no parâmetro RUN+ e lembre-se, claro, de torná-los executáveis.
Testando vários dispositivos, como chaveiros (Pendrives), tocadores MP4, videocâmeras e discos rígidos (gavetas), todos foram detectados e executaram os sons de acordo com a ação (Inserir / Remover), dando um retorno auditivo bastante agradável. Se não gostar dos sons que utilizei, pode mudá-los, é claro, nos scripts.
Bom proveito.
Parabéns pela idéia.