Aparició d'icones a l'escriptori

A partir d'un article (pdf) a Bulma sobre com aconseguir l'auto-muntat de dispositius de memòria USB, se'm va encendre la bombeta i l'he aprofitat per adaptar-ho al que jo volia.




La qüestió és que amb el mètode de l'article s'aconsegeix el muntat automàtic i l'aparició d'una icona del dispositiu quan apareix. L'script també aconsegeix el desmuntat quan fa un cert temps que no s'utilitza. Jo, no necessitava automuntatge ni res d'això. A més m'agrada la idea que s'utilitza en altres distribucions com és el cas de Knoppix o SuSE que quan s'introdueix la memòria USB a l'escriptori hi apareix una icona de DiscDur.



Aquesta és la manera de com ho he fet.Primer, i seguin l'article abans esmentat, caldrà tenir instal·lats usbutils i hotplug. Amb Debian és molt senzill (i amb consta que amb d'altres "distros" també, que ningú s'enfadés:).


# apt-get install hotplug usbutils


El paquet autofs no caldrà perquè ja he comentat que l'objectiu no és montar automàticament els dispositiu sinó obtenir l'icona de disc a l'escriptori.



Parteixo que ja hi ha la configuració del kernel i els paquets necessaris per a treballar amb aquest tipus de dispositiu en funcionament. En el meu cas, tinc les següents linies a /etc/fstab Que m'indiquen els punts de muntatge del dispositiu. I dic punts en plural perquè està particionat amb vfat i ext2.


/dev/sda1 /pen-win auto noauto,user 0 0
/dev/sda2 /pen-linux auto noauto,user 0 0


Ara només cal afegir una linia /etc/hotplug/usb.agent la següent linia al final de l'arxiu:

. ./usb/usb-storage &


Com ho tinc fet jo és posant aquestes linies a l'arxiu en qüestió /etc/hotplug/usb/usb-storage:



#!/bin/sh
HOME=/home/xavier
DEV[1]=/dev/sda1
DEV[2]=/dev/sda2
NAME[1]=pen-win
NAME[2]=pen-linux
MOUNT[1]=/pen-win
MOUNT[2]=/pen-linux

sleep 2

PENIN=`cat pen.dil`

if [ $PENIN == "0" ];
then
MOUNTED=1
echo 1 > pen.dil
else
MOUNTED=0
echo 0 > pen.dil
fi
for i in 1 2
do
if [ $MOUNTED == 1 ];
then
mkdir ${MOUNT[$i]}
Dev=${DEV[$i]}
Encoding=UTF-8
Icon=pendrive_mount
MountPoint=/${NAME[$i]}
ReadOnly=false
Type=FSDevice
UnmountIcon=pendrive_umount" > $HOME/Desktop/${NAME[$i]}
else
rm -f $HOME/Desktop/${NAME[$i]}
rm -r ${MOUNT[$i]}
fi
done

Com es pot veure és un script molt senzill, tant senzill com millorable, ho se. Però de moment em serveix per aconseguir que quan connecti el pendrive al port usb m'apareguin les icones a l'escriptori, i que desapareguin quan el desconnecto.



Com a inconvenients respecte al sistema platejat a Bulma tots els relacionats amb l'automuntatge (i demuntat, clar). Així cal tenir la precaució de desmuntar el dipositiu (com sempre) abans de treure'l.