Comment puis-je intégrer Dropbox dans Thunar? J'utilise Xubuntu 14.04 avec Xfce 4.12 installé via PPA et thunar-dropbox-plugin
a été cassé. J'ai aussi entendu dire que cela ne fonctionnait pas sous Xubuntu 16.04.
Heureusement, Dropbox a récemment développé ses capacités CLI pour inclure des liens de partage, etc. Pour intégrer Dropbox à Thunar, procédez comme suit:
Créez un répertoire ~/bin
dans votre dossier personnel, s'il n'a pas déjà été créé. Téléchargez le Dropbox python script . Renommez-le simplement dropbox
. (L'extension n'est pas nécessaire.) Rendez-le exécutable chmod +x ~/bin/dropbox
.
Si le répertoire ~/bin
n'est pas déjà ajouté à votre $PATH
(la fin de la tabulation ne fonctionne pas pour le script, etc.), vous ajouterez les éléments suivants à ~/.profile
. Puis déconnectez-vous et à nouveau.
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Installez xsel
en collant Sudo apt-get install xsel
dans le terminal. Ce programme donne une fonctionnalité de presse-papiers au script ci-dessous.
Enregistrez le script suivant dans un fichier texte, enregistrez-le dans ~/bin
et exécutez-le. Le mien s'appelle dropbox-online
. Remplacez icon_path="/full/path/to/dropbox-icon.png"
par le chemin de votre icône Dropbox .
#!/bin/bash
# Name: Dropbox Thunar Integration
# Author: jbrock
# Dependencies: xsel (in Ubuntu repository), Dropbox python script https://linux.dropbox.com/packages/dropbox.py
# Installation: http://askubuntu.com/questions/777878/how-to-integrate-dropbox-in-thunar
notify_time=5000
icon_path="/full/path/to/dropbox-icon.png"
internet_status=$(ping -c 1 dropbox.com > /dev/null 2>&1; echo $?)
dropbox_status=$(dropbox status)
web_directory () {
prepend_path="https://www.dropbox.com/home/"
append_path=$(pwd | cut -d "/" -f5-)
xdg-open "$prepend_path$append_path"
}
gui_notify () {
notify-send -t "$notify_time" -i "$icon_path" "$1"
}
# Check: 1. internet connection; 2. if Dropbox is running; 3. if in Dropbox or Public folder.
if [ "$internet_status" != 0 ]; then
gui_notify "There is an internet connectivity issue."
exit 1
fi
if [ "$dropbox_status" = "Dropbox isn't running!" ]; then
gui_notify "Dropbox isn't running."
exit 1
fi
if [[ "$2" != *Dropbox* ]]; then
gui_notify "You are not in Dropbox."
exit 1
fi
if [[ "$1" = -p && "$2" != *Dropbox\/Public* ]]; then
gui_notify "You are not in the Dropbox/Public folder."
exit 1
fi
case "$1" in
-p )
dropbox puburl "$2" | tr -d '\n' | xsel -ib && gui_notify "Public Link Copied" ;;
-s )
dropbox sharelink "$2" | tr -d '\n' | xsel -ib && gui_notify "Share Link Copied" ;;
-d )
web_directory ;;
esac
Intégrer à Thunar. Allez dans Edition> Configurer des actions personnalisées. Cliquez sur le plus pour ajouter une action personnalisée. Configurez les trois actions personnalisées suivantes:
Rappelez-vous également que vous pouvez ajouter votre propre icône pour apparaître dans les éléments du menu contextuel Thunar.
Pour chacun de ces éléments, procédez comme suit dans le deuxième onglet, car vous souhaitez pouvoir partager tout type de fichier ou de répertoire.
Le seul inconvénient est que les trois éléments du menu Dropbox apparaissent globalement dans Thunar, pas seulement dans Dropbox. Cependant, le script vous indique si vous êtes accidentellement en dehors de Dropbox.
Mise à jour: La commande dropbox puburl
ne fonctionne plus. Dropbox n'a plus le dossier Public pour les comptes gratuits et le supprime pour les comptes payants le 1er septembre 2017.
[Cela devrait être un commentaire, excusez-moi mais je n'ai pas encore la réputation.]
@ jbrock
Je vous remercie! J'ai constaté que je devais écrire par exemple pour le lien de partage:
dropbox-online -s %n
plutôt que% f, et il semble être assez intelligent pour savoir où il se trouve dans le système de fichiers.
En outre, j'exécute deux processus Dropbox; pour moi j'en ai absolument besoin pour un seul d'entre eux, c'est pourquoi j'ai placé l'enveloppe HOME env dans les lignes vers la fin de votre script:
HOME=/home/mike/.dropbox-work dropbox sharelink "$2" | tr -d '\n' | xsel -ib && gui_notify "Share Link Copied" ;;
Fonctionne bien.