Linux Mint : changer la cible des dossiers par défaut

Par défaut, Linux Mint crée plusieurs dossiers utilisateur dans le répertoire personnel : Bureau, Téléchargements, Documents, Images, Musique, Vidéos, etc.

Ces dossiers sont pratiques, car l’environnement de bureau et beaucoup d’applications savent les retrouver automatiquement. Par exemple, un navigateur peut proposer Téléchargements par défaut, un gestionnaire de fichiers peut afficher Images dans la barre latérale, et certaines applications peuvent enregistrer dans Documents.

Mais il arrive que l’on veuille changer la cible de ces dossiers pour les faire pointer vers une autre partition, un second SSD, un disque externe, un dossier synchronisé ou un partage réseau.

Sous Linux Mint, comme sur beaucoup d’environnements de bureau Linux, ces chemins sont gérés par xdg-user-dirs.

Le fichier user-dirs.dirs

La configuration utilisateur se trouve ici :

$HOME/.config/user-dirs.dirsCode language: PHP (php)

Pour l’éditer :

nano "$HOME/.config/user-dirs.dirs"Code language: JavaScript (javascript)

Voici un exemple de fichier en français :

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.

XDG_DESKTOP_DIR="$HOME/Bureau"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_TEMPLATES_DIR="$HOME/Modèles"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"Code language: PHP (php)

Le commentaire du fichier est important : deux formats sont supportés.

  • un chemin relatif à $HOME, comme $HOME/Documents ;
  • un chemin absolu, comme /mnt/data/Documents.

N’utilisez pas de formats exotiques dans ce fichier. Pas de ~, pas de variables maison, pas de commande shell. Gardez des chemins simples. Le fichier n’est pas un terrain de freestyle, même s’il ressemble vaguement à du shell.

Exemple : déplacer Documents et Téléchargements vers une autre partition

Imaginons que votre second disque soit monté dans :

/mnt/data

Créez d’abord les dossiers cibles :

mkdir -p /mnt/data/Documents
mkdir -p /mnt/data/Téléchargements
mkdir -p /mnt/data/Images
mkdir -p /mnt/data/Vidéos

Vérifiez que votre utilisateur peut écrire dedans :

touch /mnt/data/Documents/test-write
rm /mnt/data/Documents/test-write

Ensuite, modifiez ~/.config/user-dirs.dirs :

XDG_DOCUMENTS_DIR="/mnt/data/Documents"
XDG_DOWNLOAD_DIR="/mnt/data/Téléchargements"
XDG_PICTURES_DIR="/mnt/data/Images"
XDG_VIDEOS_DIR="/mnt/data/Vidéos"Code language: JavaScript (javascript)

Après déconnexion/reconnexion, les applications compatibles XDG utiliseront ces nouveaux chemins.

Distingo, le livret à 2%

Méthode propre : utiliser xdg-user-dirs-update

On peut aussi utiliser la commande xdg-user-dirs-update, qui est faite pour cela.

Par exemple, pour changer le dossier des téléchargements :

xdg-user-dirs-update --set DOWNLOAD "/mnt/data/Téléchargements"Code language: JavaScript (javascript)

Pour les documents :

xdg-user-dirs-update --set DOCUMENTS "/mnt/data/Documents"Code language: JavaScript (javascript)

Pour les images :

xdg-user-dirs-update --set PICTURES "/mnt/data/Images"Code language: JavaScript (javascript)

La page de manuel de xdg-user-dirs-update indique que l’outil sert à mettre à jour les dossiers utilisateur XDG selon la locale, et qu’il peut être lancé automatiquement au démarrage d’une session utilisateur.

Les noms attendus sont en anglais, même si vos dossiers sont en français :

DESKTOP
DOWNLOAD
TEMPLATES
PUBLICSHARE
DOCUMENTS
MUSIC
PICTURES
VIDEOS

Donc on écrit bien :

xdg-user-dirs-update --set DOWNLOAD "/mnt/data/Téléchargements"Code language: JavaScript (javascript)

et non :

xdg-user-dirs-update --set TÉLÉCHARGEMENTS "/mnt/data/Téléchargements"Code language: JavaScript (javascript)

Le terminal est très ouvert d’esprit, mais pas à ce point.

Afficher les dossiers XDG actuels

Pour afficher le fichier actuel :

cat "$HOME/.config/user-dirs.dirs"Code language: JavaScript (javascript)

Pour connaître un dossier précis avec xdg-user-dir :

xdg-user-dir DOWNLOAD
xdg-user-dir DOCUMENTS
xdg-user-dir PICTURES
xdg-user-dir DESKTOP

Exemple :

xdg-user-dir DOWNLOAD

Résultat possible :

/mnt/data/Téléchargements

C’est la méthode la plus simple pour vérifier que les applications compatibles XDG voient bien le bon chemin.

Sauvegarder le fichier avant modification

Avant de modifier le fichier à la main, faites une sauvegarde :

cp "$HOME/.config/user-dirs.dirs" "$HOME/.config/user-dirs.dirs.bak.$(date +%Y%m%d-%H%M%S)"Code language: JavaScript (javascript)

Ensuite seulement, éditez :

nano "$HOME/.config/user-dirs.dirs"Code language: JavaScript (javascript)

Si quelque chose ne fonctionne plus, vous pouvez restaurer la sauvegarde.

Déplacer les fichiers existants

Modifier user-dirs.dirs ne déplace pas toujours automatiquement vos fichiers existants. Il faut donc transférer le contenu vous-même si nécessaire.

Exemple avec rsync :

rsync -avh --progress "$HOME/Documents/" "/mnt/data/Documents/"
rsync -avh --progress "$HOME/Téléchargements/" "/mnt/data/Téléchargements/"
rsync -avh --progress "$HOME/Images/" "/mnt/data/Images/"Code language: JavaScript (javascript)

Une fois la copie vérifiée, vous pouvez renommer les anciens dossiers au lieu de les supprimer immédiatement :

mv "$HOME/Documents" "$HOME/Documents.old"
mv "$HOME/Téléchargements" "$HOME/Téléchargements.old"Code language: JavaScript (javascript)

Gardez-les quelques jours si les données sont importantes. Rien ne presse, sauf le disque plein, qui lui a toujours un sens de l’urgence très développé.

Attention aux partitions non montées

Si vous faites pointer vos dossiers XDG vers une autre partition, assurez-vous que cette partition est montée avant l’ouverture de session.

Sinon, vous pouvez vous retrouver avec un chemin inexistant, des dossiers recréés dans $HOME, ou des applications qui enregistrent au mauvais endroit.

Vérifiez le montage actuel :

findmnt /mnt/data
df -h /mnt/data

Pour monter une partition automatiquement, utilisez /etc/fstab. Commencez par récupérer l’UUID :

lsblk -f
blkid

Exemple de ligne /etc/fstab pour une partition ext4 :

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults,noatime 0 2

Testez toujours fstab avant de redémarrer :

sudo mount -a

Si cette commande ne retourne pas d’erreur, c’est bon signe. Si elle râle, corrigez avant reboot. Un mauvais fstab, c’est le genre de détail qui transforme un redémarrage tranquille en mini escape game.

Cas d’un disque externe

Pointer Documents ou Téléchargements vers un disque externe peut fonctionner, mais ce n’est pas toujours idéal.

Si le disque n’est pas branché au démarrage, certaines applications peuvent créer un nouveau dossier vide à la place, échouer à enregistrer, ou revenir vers $HOME.

Pour un disque externe, je préfère souvent garder les dossiers XDG principaux dans $HOME, puis créer des sous-dossiers ou raccourcis vers le disque externe.

Exemple :

$HOME/Documents
$HOME/Documents/Archives -> /media/matt/Archive/DocumentsCode language: PHP (php)

C’est moins “pur”, mais beaucoup plus robuste si le disque n’est pas toujours présent.

Cas d’un partage réseau

Vous pouvez aussi faire pointer un dossier XDG vers un partage réseau monté localement, par exemple :

/mnt/nas/Documents

Mais attention : au démarrage de session, le réseau peut ne pas être encore disponible. Dans ce cas, certaines applications peuvent mal réagir.

Pour un NAS, je recommande généralement de monter le partage proprement via fstab ou systemd automount, puis de vérifier que le chemin existe avant de l’utiliser dans user-dirs.dirs.

Exemple de vérification :

findmnt /mnt/nas
touch /mnt/nas/Documents/test-write
rm /mnt/nas/Documents/test-write

Si le montage réseau est instable, évitez d’y placer directement Bureau. Le bureau qui disparaît parce que le Wi-Fi tousse, c’est une expérience utilisateur assez conceptuelle.

Alternative : utiliser des liens symboliques

Une autre méthode consiste à garder les chemins XDG inchangés, puis à remplacer certains dossiers par des liens symboliques.

Exemple avec Documents :

rsync -avh "$HOME/Documents/" "/mnt/data/Documents/"
mv "$HOME/Documents" "$HOME/Documents.old"
ln -s "/mnt/data/Documents" "$HOME/Documents"Code language: JavaScript (javascript)

Avantage : beaucoup d’applications continuent de voir $HOME/Documents.

Inconvénient : si la partition cible n’est pas montée, le lien symbolique pointe dans le vide.

Pour des dossiers comme Documents, Images ou Vidéos, cette approche peut être pratique. Pour Bureau, je serais plus prudent.

Empêcher xdg-user-dirs de recréer certains dossiers

xdg-user-dirs-update peut être lancé automatiquement à l’ouverture de session. Son rôle est justement de maintenir les dossiers utilisateur standards.

Si vous supprimez certains dossiers, ils peuvent revenir selon votre configuration.

Le fichier global se trouve souvent ici :

/etc/xdg/user-dirs.conf

On y trouve généralement une option :

enabled=TrueCode language: PHP (php)

Vous pouvez la passer à :

enabled=FalseCode language: PHP (php)

Mais je ne le ferais pas en premier réflexe. Cette modification désactive le mécanisme globalement pour la machine. Je préfère d’abord configurer proprement ~/.config/user-dirs.dirs ou utiliser xdg-user-dirs-update --set.

Sur le forum Linux Mint, on retrouve justement des cas où des utilisateurs désactivent cette mise à jour automatique via /etc/xdg/user-dirs.conf, mais cela reste une solution à utiliser consciemment.

Remettre les dossiers par défaut

Pour recréer les dossiers par défaut selon votre langue :

xdg-user-dirs-update

Pour réinitialiser manuellement, vous pouvez supprimer ou renommer le fichier :

mv "$HOME/.config/user-dirs.dirs" "$HOME/.config/user-dirs.dirs.old"
xdg-user-dirs-updateCode language: JavaScript (javascript)

Ensuite, vérifiez :

cat "$HOME/.config/user-dirs.dirs"Code language: JavaScript (javascript)

Exemple complet : déplacer tous les dossiers utilisateur vers /mnt/data

Voici un exemple complet pour déplacer les principaux dossiers utilisateur vers /mnt/data.

Créer les dossiers :

mkdir -p /mnt/data/{Bureau,Téléchargements,Modèles,Public,Documents,Musique,Images,Vidéos}Code language: PHP (php)

Configurer les dossiers XDG :

xdg-user-dirs-update --set DESKTOP "/mnt/data/Bureau"
xdg-user-dirs-update --set DOWNLOAD "/mnt/data/Téléchargements"
xdg-user-dirs-update --set TEMPLATES "/mnt/data/Modèles"
xdg-user-dirs-update --set PUBLICSHARE "/mnt/data/Public"
xdg-user-dirs-update --set DOCUMENTS "/mnt/data/Documents"
xdg-user-dirs-update --set MUSIC "/mnt/data/Musique"
xdg-user-dirs-update --set PICTURES "/mnt/data/Images"
xdg-user-dirs-update --set VIDEOS "/mnt/data/Vidéos"Code language: JavaScript (javascript)

Vérifier :

cat "$HOME/.config/user-dirs.dirs"
xdg-user-dir DOCUMENTS
xdg-user-dir DOWNLOAD
xdg-user-dir PICTURESCode language: JavaScript (javascript)

Déconnectez-vous puis reconnectez-vous pour que l’environnement de bureau et les applications relisent proprement la configuration.

Mémo rapide

# Fichier de configuration.
nano "$HOME/.config/user-dirs.dirs"

# Sauvegarde.
cp "$HOME/.config/user-dirs.dirs" "$HOME/.config/user-dirs.dirs.bak.$(date +%Y%m%d-%H%M%S)"

# Voir les dossiers actuels.
cat "$HOME/.config/user-dirs.dirs"
xdg-user-dir DOWNLOAD
xdg-user-dir DOCUMENTS

# Changer le dossier Téléchargements.
xdg-user-dirs-update --set DOWNLOAD "/mnt/data/Téléchargements"

# Changer le dossier Documents.
xdg-user-dirs-update --set DOCUMENTS "/mnt/data/Documents"

# Changer le dossier Images.
xdg-user-dirs-update --set PICTURES "/mnt/data/Images"

# Recréer la configuration par défaut.
mv "$HOME/.config/user-dirs.dirs" "$HOME/.config/user-dirs.dirs.old"
xdg-user-dirs-update

# Copier les anciens fichiers.
rsync -avh --progress "$HOME/Documents/" "/mnt/data/Documents/"

# Vérifier un montage.
findmnt /mnt/data
df -h /mnt/dataCode language: PHP (php)

Conclusion

Pour changer la cible des dossiers par défaut sous Linux Mint, la méthode directe consiste à modifier :

$HOME/.config/user-dirs.dirsCode language: PHP (php)

Vous pouvez aussi utiliser la commande dédiée :

xdg-user-dirs-update --set DOWNLOAD "/mnt/data/Téléchargements"Code language: JavaScript (javascript)

Pour une autre partition, utilisez des chemins absolus et assurez-vous que le disque est monté avant l’ouverture de session. Pour un disque externe ou un partage réseau, soyez prudent : si le chemin disparaît, certaines applications peuvent revenir vers $HOME ou créer des dossiers vides.

En résumé : user-dirs.dirs est simple à modifier, mais le vrai sujet est la fiabilité du chemin cible. Un dossier Documents déplacé vers un disque non monté, c’est comme une boîte aux lettres installée dans une rue qui n’existe pas encore. Techniquement ambitieux, mais rarement pratique.

Gravatar for Matt Biscay

Je suis Matt Biscay, développeur WordPress & WooCommerce certifié chez Codeable, administrateur système et enseignant.

J’aide les entreprises à créer, optimiser et fiabiliser leurs sites WordPress avec une approche technique propre : performance, sécurité, maintenance, développement sur mesure et résolution de problèmes complexes.

Sur Skyminds, je partage des tutoriels WordPress, WooCommerce, Linux et administration système, avec des solutions testées sur des cas réels et pensées pour durer.

Découvrez mes services WordPress et WooCommerce.

Opinions