Table des matières

, ,

Comment avoir une icône spéciale pour les dossiers partagés par Samba ?

Cet article va vous permettre d'avoir une icône “dossiers partagés” pour les dossiers partagés par Samba.

Pour cela, il va falloir insérer un script Python qui va se charger d'ajouter automatiquement l'emblème “shared” à l'icône du dossier partagé.

Ubuntu 10.10 : cette manipulation n'est plus nécessaire sous les dernières versions d'Ubuntu, une icône de partage (une double flèche) s'affiche automatiquement en cas de partage avec SAMBA :
partagesamba.jpg

Prérequis

Pour permettre cette option, il vous faut installer l'extension Python à Nautilus. Pour cela, il suffit d'installer le paquet python-nautilus.

Installation

Dans une console :

gksudo gedit /usr/lib/nautilus/extensions-1.0/python/shared.py

Il semble que depuis Hardy, le sous-dossier extensions-1.0 ait été remplacé par extensions-2.0

La commande pour Hardy devient donc :

gksudo gedit /usr/lib/nautilus/extensions-2.0/python/shared.py

Le fichier vierge s'ouvre…

import nautilus
import urllib
import os
import datetime,time
 
 
class NCol_Shared(nautilus.InfoProvider):
    def __init__(self):
        pass
 
    def update_file_info(self, file):
        if not os.path.isfile("/tmp/.shared"):
           self._shared()
        if time.mktime(datetime.datetime.now().timetuple()) - os.path.getmtime("/tmp/.shared") > 300:
            self._shared()
 
        uri = urllib.unquote(file.get_uri()[7:])
        if self._isShared(uri):
            file.add_emblem("shared")
 
    def _isShared(self,uri):
        f = open("/tmp/.shared",'r')
        lignes = f.readlines()
        f.close()
        try:
            i = lignes.index("%s\n"%uri)
            return True
        except ValueError:
            return False
 
    def _shared(self):
        os.system("cat /etc/samba/smb.conf | grep path | awk '{print $3;}' > /tmp/.shared")
nautilus -q

La valeur 300 dans le script indique le délai en seconde avant régénération du cache (fichier : /tmp/.shared). J'ai pour ma part modifié cette valeur à 1 pour que l'icône se modifie instantanément dès le rafraichissement de Nautilus (touche F5).

Voici donc ce que vous devriez obtenir :

shared.jpg

Article original et informations complémentaires :
http://www.blognote-info.com/index.php?2005/07/31/190-avoir-l-icone-dossier-partage&cos=1


Contributeurs : PiTiLeZarD,Gogy.