Hobbestigrou

Just another python and perl developer

Monter un support usb automatiquement

planet-libre qtile wm usb udev mount

20 mars 2014 | hobbestigrou | comments

Introduction

Lorsqu'on utilise un gestionnaire de fenêtre sans environnement de bureau, il y a des actions qu'on a pas1, comme par exemple des notifications quand on branche un support de type usb. Depuis quelques temps c'est une opération qui m'arrive de réaliser assez régulièrement pour diverse raison. J'en avais un peu marre de devoir gérer le montage à la main, il faut dire que c'est pas une action super amusante surtout lorsqu'on est pressé. Je suis donc parti à la recherche d'un outil gérant ça de manière automatique, j'ai demandé sur l'un des sites stackexchange et j'ai finalement trouvé mon bonheur grâce à z3bra que je remercie, le projet est ldm est il est disponible sur github.

Installation

Le projet utilise udev, il dépend donc de libudev-dev et libmount-dev. Pour l'installer sous Debian et dérivés il n'y a pas de paquet disponible, il faut donc passer par les sources:

sudo apt-get install libudev-dev libmount-dev
git clone https://github.com/LemonBoy/ldm.git
cd ldm
make
sudo make install

Tout simplement. J'ai aussi fais un petit script avec le module fab pour pouvoir déployer rapidement une nouvelle machine, il y a une commande pour installer ldm.

Usage

Ensuite l'usage est très simple, il y a une option pour le lancer en mode daemon si ce n'est pas déjà géré par le système via systemd par exemple:

export USERID=`id -u`
export GROUPID=`id -g`
sudo ldm -d -u $USERID -g $GROUPID

L'option -d permet de lancer la commande en mode daemon, l'option -u et -g permettent respectivement de spécifier l'uid et le gid à utiliser pour monter le support. Dans l'exemple ci-dessus on utilise la commande id pour récupérer les informations de l'utilisateur courant. Par défaut le support sera monté dans le répertoire racine du système /mnt qu'il est possible de changer avec l'option -p, et l'option -c permet d'indiquer le chemin vers un exécutable qui sera appelé à chaque fois qu'une clé sera monté.

Lancer la commande à l'ouverte de la session

Dans qtile pour lancer la commande au démarrage:

@hook.subscribe.startup
def startup():
    execute_once("automount")

Il faut avoir ajouté la fonction execute_once dans votre fichier de configuration.

Mettre les lignes ci-dessous dans /usr/local/bin/automount, par exemple:

export USERID=`id -u`
export GROUPID=`id -g`
sudo ldm -d -u $USERID -g $GROUPID

Puis rendre le script exécutable.

Conclusion

Une commande simple et légère qui fait bien son travail et pas plus.

Drapeau En Dépôt sur github


  1. En tous les cas pas de base 

comments powered by Disqus