Ceci est une ancienne révision du document !



Thunar

Thunar est le gestionnaire de fichiers de XFCE. Il a été développé pour être à la fois léger et très convivial.
Il est également extensible par l'ajout de greffons installables s'ils ne le sont pas déjà sur votre système.

Thunar est installé par défaut sur Xubuntu et avec l'environnement de bureau XFCE.

Installation sur Gnome/KDE

Pré-requis
Installation

Greffons

La plupart des greffons (ou plugins) sont inclus par défaut dans Xubuntu. Si ce n'est pas le cas ou que vous êtes sur un autre environnement que XFCE, installez-les :

Pour installer ces 3 greffons en une fois, cliquez ici.

Il existe également un greffon qui ajoute la prévisualisation du contenu dans les miniatures pour divers formats de fichiers.1)

  • Pour Ubuntu versions 11.10 et + → Le paquet thunar-thumbnailers n'étant plus disponible dans les dépôts, il vous faudra l'installer au choix :
    • depuis les sources disponibles sur la page officielle du greffon ici
    • installer un paquet .deb disponible :
      • soit pour Debian Squeeze que vous trouverez ici
      • soit pour une version antérieure d'Ubuntu que vous trouverez ici

        FIXME :!: Aucune des deux méthodes précédentes n'a été testée :!: Si vous l'avez fait, merci de rectifier en conséquence.
Notez que si vous installez Thunar dans un environnement Gnome ou KDE sur une version récente d'Ubuntu, il est possible que vous bénéficiez des mécanismes de prévisualisation des miniatures déjà intégrés dans votre système et dans ce cas certains types de fichiers comme les PDF, XCF ou PS seront déjà prévisualisés dans Thunar sans avoir à ajouter le greffon thunar-thumbnailers.
Greffons disponibles seulement pour Ubuntu versions 12.04 & +

Sachez qu'à partir d'Ubuntu 12.04, deux nouveaux greffons sont disponibles dans les dépôts :

  • Issu du projet GtkHash [en], le greffon thunar-gtkhash permet le calcul de sommes de contrôle sur les fichiers.2)
Vous trouverez des informations complémentaires sur les possibilités offertes par les différents greffons et leur utilisation en consultant la section qui leur est consacrée sur le site Xfce Goodies Project [en].3)

Parcourir des dossiers distants

Par défaut, et à la différence de Nautilus, Thunar ne peut pas, seul, parcourir des dossiers distants (ftp, dossiers partagés via Samba…).
Pour palier à ce problème, vous pouvez utiliser gigolo [en], comme expliqué sur la page dédiée mais également ici et ici.4)

  • Pour Ubuntu versions 11.04 et + → Thunar permet de parcourir les dossiers distants sans devoir utiliser Gigolo.

Partage de dossiers

Par défaut, et à la différence de Nautilus, Thunar ne permet pas directement de partager ses dossiers sur un réseau local (NFS ou Samba).
Les utilisateurs de Xubuntu devront utiliser shares-admin pour configurer leurs partages.

Thunar permet de définir des actions personnalisées. Cela consiste à créer un script (un "action personnalisée"), qui sera disponible via le clic droit de la souris (dans Thunar), sur un répertoire ou un fichier.

Pour créer un script, il faut lancer Thunar, puis

  • allez dans Editer > Configurer les actions personnalisées
  • cliquez sur l'icone "+" pour créer un nouveau script
  • dans le 1er onglet (Base) remplissez comme vous le souhaitez les zones Nom (ce qui apparaîtra dans le menu contextuel du clic droit) et Description (un simple commentaire optionnel)
  • Vous pouvez affecter une icone (non obligatoire) en cliquant sur le bouton Icone
  • la zone importante est la zone Commande. On y place un ligne de commande ou l'appel à un script externe.
  • Dans le second onglet Conditions d'apparition, vous devez choisir le type de fichier qui, une fois cliqué (clic droit) fera apparaître le script dans le menu contextuel. Si l'action personnalisée doit copier des fichiers ou des répertoires, il est logique de tout cocher. Si l'action personnalisée consiste à redimensionner une image, il est logique de ne cocher que fichiers vidéo, etc…

Quelques exemples d'actions personnalisées

1-Lancer un script dans un terminal

Dans la ligne commande de l'onglet 1, tapez xfce4-terminal -e %f ; dans l'onglet Conditions d'apparition cochez les fichiers Textes et Autres.

Sur xUbuntu 12;04, si dans le chemin du script figure un nom de dossier avec un espace à l'intérieur le script ne se lancera pas

2-Corriger le problème lié à la copie de plusieurs fichiers

Les informations qui sont données par Thunar sont erronées.

Voici un script dégoté il y a un bout de temps, et modifié afin qu'il fonctionne pour plusieurs fichiers.
Si vous souhaitez que celui-ci puisse couper/coller des fichiers, il suffit de remplacer à la ligne 30

cmd="cp -Rp"

par

cmd="mv"

et aux lignes 18, 22, 24, 27, 28, "copie" par "déplacement" et "copié" par "déplacé".

Il suffit donc d'enregistrer ça dans un fichier ayant par exemple comme nom cp_p.sh 5), puis, depuis Thunar, faire un clic droit dessus → "Propriétés…", aller dans le 3ème onglet → "Permissions" et cocher "Autoriser ce fichier à être exécuté comme un programme".
Ensuite, toujours dans Thunar, menu Éditer → "Configurer les actions personnalisées…", et sur la droite, premier bouton → "Ajouter une action personnalisée".

Vous renseignerez comme suit :

  • Nom : "Copie améliorée"
  • Commande : si le fichier du script est dans votre répertoire principal : ~/cp_p.sh %F. Attention le F doit bien être majuscule.

Puis aller sur le 2ème onglet → "Conditions d'apparition" et cocher toutes les possibilités, et enfin valider.

Maintenant, quand vous cliquez droit, vous avez une fonction "Copie améliorée", qui permet d'utiliser le script cp_p.sh à la place de la copie normale.

cp_p.sh
#! /bin/bash
 
# SRC
# https://help.ubuntu.com/community/Nautilus_Scripts
# http://ubuntuforums.org/showthread.php?t=101859
# http://ubuntuforums.org/showthread.php?t=417978
# http://forums.archlinux.fr/topic1223.html
 
# PRESENTATION: les +
# annulation fonctionnelle (kill process fils, residu supprimé)
# check de l'espace libre, des droits.
 
# EXECUTION
# à executer en mode graphique avec l'option %m dans nautilus-actions
# ou lancer en CLI en se plaçant dans un repertoire où se trouve un gros fichier puis executer Copievers.sh grosFichier.avi
 
# INITIALISATION
copy="Copie en cours..."
title_copy="Veuillez patienter..."
title_success="Succès"
title_error="Erreur"
title_conflict="Conflit durant la copie"
title_select="Selectionnez un répertoire"
error="Une erreur est survenue lors de la copie"
error_w="Vous n'avez pas les droits en écriture sur"
error_s="Pas assez espace disque!"
success="correctement copié(s)"
progress="Copie en cours"
conflict="Voulez-vous remplacer"
cmd="cp -Rp"
copied=0
nbFiles=0
 
# FONCTIONS
function copie ()
{
   ORIG_SIZE=`du -k "$arg"|awk '{print $1}'`
   checkFreeSpace $ORIG_SIZE
   $cmd "$arg" "$location" &
   CP_SIZE=`du -k "$location/${arg//*\//}"|awk '{print $1}'`
   [ "$CP_SIZE" == "" ] && CP_SIZE=0
   (
   echo "0"
   sleep 0.2
   while (( $CP_SIZE != $ORIG_SIZE )); do
      # un echo est obligatoire dans ce while
      echo "$(( $(( $CP_SIZE * 100 )) / $ORIG_SIZE ))"; sleep 0.2
      CP_SIZE=`du -k "$location/${arg//*\//}"|awk '{print $1}'`
      [ "$CP_SIZE" == "" ] && CP_SIZE=0
   done
   if [ "$CP_SIZE" == "$ORIG_SIZE" ]; then
   {
   	echo "100"
   }
   fi
   ) | zenity --progress --auto-close --percentage=0 --text "$copy \"$arg\"..."
   # ^ barre de progression de zenity
   # v on controle si annulation ou pas.   
   controlCp
}
 
# un paramètre: la taille du fichier
function checkFreeSpace ()
{
# location sera de la forme /, /tmp, /home, /opt...
# on split le path pour trouver la partition
   part=`echo $location | cut -d'/' -f2`
   findit=`df | grep $part`
   # si findit est vide alors concerne la partition /
   if [ "$findit" == "" ]; then
      findit=`df / | grep /`
   fi
      tab=( $findit )
      # point de montage se trouve sur 5
          mountPoint=${tab[5]}
      # l'espace libre sur 3
          freeSpace=${tab[3]}
   if [ $1 -gt $freeSpace ]
   then
      zenity --error --text="$error_s" --title "$title_error";
      exit 1
   fi
}
 
function controlCp ()
{
   # On peut utiliser $? ou ${PIPESTATUS[0]}
   if [ "$?" != "0" ]; then
      # si annulation on kill le fils et on sort du script
      killChildProcess
      # on vire le residu
      pathfile="$location/${arg//*\//}"
      # on evite les rm -R avec pour paramètre * ~ / .
      if [ ${#pathfile} -gt 1 ] && [ ${#location} -gt 1 ] && [ ${#arg} -gt 1 ]; then
         rm -R "$pathfile"
      fi      
      exit 1
   else copied=`expr $copied + 1`
   fi
}
 
function killChildProcess ()
{
   # normalement il n'y en a qu'un seul...au cas où.
   for child in $(ps --ppid $$ -o pid,cmd | grep -R "$cmd" | awk '{print $1}')
   do
     kill $child
   done
}
 
# TRAITEMENT
# on renseigne le repertoire de destination
while ((1))
do
location=`zenity --file-selection --directory --title="$title_select"`
if [ "$?" = 0 ]; then
# si on a pas annuler...on check les droits en écriture
   if [ -w "$location" ]; then
      for arg
      do
         nbFiles=`expr $nbFiles + 1`
         # on vérifie si le fichier courant n'existe pas à la destination
         if [ -e "$location/${arg//*\//}" ]; then
         # s'il existe message -> conflit
         zenity --question --title="$title_conflict" --text="$conflict $location/${arg//*\//} ?"
            if [ "$?" = 0 ]; then
            # si on souhaite tout de même écraser
               copie
            fi
         else
         # s'il n'existe pas on copie
            copie
         fi
      done
      # on check copied / nbFiles
      if [ $copied -gt 0 ]; then
         zenity --info --text="$copied/$nbFiles $success" --title "$title_success";
      fi
      break
   else
   {
   	zenity --question --title="$title_error" --text="$error_w $location"
   	if [ "$?" = 1 ]; then
   	{
   		exit 1
   	}
   	fi
   }
   fi
fi
done

Thunar se bloque lors du premier lancement de chaque session

Au premier lancement, il met près d'une minute à démarrer, puis démarre en double. Ce bogue serait lié au mécanisme de montage automatique des partages réseau et, pour certains utilisateurs, celui-ci serait résolu lors de la désactivation de ce mécanisme (comme il a été vu ici [en]) :

- lancer la commande suivante :

gksu leafpad /usr/share/gvfs/mounts/network.mount

- mettre la clé "AutoMount", à la valeur "false":

[Mount]
Type=network
Exec=/usr/lib/gvfs/gvfsd-network
AutoMount=false

- enregistrer le fichier et faire une déconnexion/connexion de la session

Ainsi le bogue est contourné mais on peut toujours accéder au réseau dans Thunar.

Non reconnaissance des partitions NTFS avec Thunar < 1.1.1

Ce bug ne concernerait que les versions de Thunar ≥ 0.9.0 (installées avec XFCE 4.4 & 4.6) et < 1.1.1 (XFCE < 4.8). Soit les versions disponibles par défaut avec Ubuntu 8.04 et 10.04. (Voir les différentes versions avec la liste des paquets disponibles dans les dépôts pour Thunar et pour XFCE.)

Si Thunar reconnaît par défaut les clés USB, les médias amovibles et les lecteurs/graveurs de CD et DVD, par contre, avec les versions 0.9.0 et 1.0.1 (installées avec XFCE 4.4.2 & 4.6.1.3), il ne reconnaît plus les partitions de type NTFS et ne monte pas tout seul ce type de partitions.
→ Cf. Lost NTFS mounts with xfce 4.4.2 [en] et Change log : "thunar" package [en].

Vous pouvez toujours utiliser disk-manager, ou tout autre programme ou commande, pour monter vos partitions NTFS. Et si vous voulez que vos partitions figurent dans le panneau de droite de Thunar, il faudra faire un clic droit sur le dossier "Documents" (par exemple) et faire "Envoyer Vers" → "Side Pane".

Ce problème est résolu depuis la version 1.1.1 de Thunar, donc pas de souci avec XFCE 4.8 et suivants.


1)
EPS, Postscript, PDF, DVI, OpenDocument Format (unzip requis), SVGZ, Fig (.fig), LaTeX (teTeX requis), images Raw (raw-thumbnailer et/ou dcraw requis), Grace (grace requis), vidéos (ffmpegthumbnailer requis), images XCF (format natif de The GIMP), images PSD (format de Photoshop)
2)
Les fonctions de hachage disponibles avec GtkHash sont MD5, MD6, SHA1, SHA256, SHA512, RIPEMD, TIGER et WHIRLPOOL.
3)
A l'exception du greffon thunar-gtkhash pour lequel il n'y a pas encore de page dédiée sur Xfce Goodies Project fin juin 2012 et pour lequel les maigres informations disponibles se trouvent sur la page du projet GtkHash [en] et sur les pages des paquet pour Ubuntu.
4)
Cette page parle de "Sion" qui est l'ancien nom de Gigolo.
5)
pour copie_personnalisée
  • thunar.1363105341.txt.gz
  • Dernière modification: Le 12/03/2013, 17:22
  • par 72.53.142.138