Como integrar o Dropbox no Thunar?

4

Como posso integrar o Dropbox ao Thunar? Eu estou usando o Xubuntu 14.04 com o Xfce 4.12 instalado via PPA, e thunar-dropbox-plugin foi quebrado. Eu também ouvi dizer que não está funcionando no Xubuntu 16.04.

    
por jbrock 26.05.2016 / 19:44

2 respostas

5

Felizmente, o Dropbox recentemente expandiu seus recursos de CLI para incluir sharelinks etc. Para integrar o Dropbox ao Thunar, faça o seguinte :

Configuração inicial

Crie um diretório ~/bin em sua pasta pessoal, caso ainda não tenha sido criado. Faça o download do script Python do Dropbox . Renomeie como apenas dropbox . (A extensão não é necessária.) Torne-a executável chmod +x ~/bin/dropbox .

Se o diretório ~/bin ainda não tiver sido adicionado ao seu $PATH (ou seja, a conclusão da guia não funcionar para o script, etc.), adicione o seguinte a ~/.profile . Então saia e entre novamente.

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Instale xsel colando sudo apt-get install xsel no terminal. Este programa fornece funcionalidade da área de transferência para o script abaixo.

Salve o seguinte script em um arquivo de texto simples, salve-o em ~/bin e torne-o executável. O meu é chamado dropbox-online . Altere icon_path="/full/path/to/dropbox-icon.png" para o caminho para o seu ícone do 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: https://sobrelinux.info/questions/35035/how-to-integrate-dropbox-in-thunar"/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

Integração Thunar

Para integrar no Thunar. Vá para Editar > Configure ações customizadas. Clique no sinal de mais para adicionar uma ação personalizada. Configure as três ações personalizadas a seguir:

Lembre-setambémdequevocêpodeadicionarseupróprioíconeparaaparecernositensdomenudecontextodoThunar.

Paracadaumdessesitens,vocêdeveráfazeroseguintenasegundaguia,desdequequeirapodercompartilharqualquertipodearquivooudiretório.

A única desvantagem é que os três itens de menu do Dropbox aparecem globalmente no Thunar, não apenas no Dropbox. No entanto, o script informa se você está acidentalmente fora do Dropbox.

Atualização: O comando dropbox puburl não funciona mais. O Dropbox não tem mais a pasta Pública para contas gratuitas e a descontinua para as contas pagas em 1º de setembro de 2017.

    
por jbrock 26.05.2016 / 19:44
0

[Este deve ser um comentário, desculpas, mas eu ainda não tenho a reputação.]

@jbrock

Obrigado! Eu descobri que preciso escrever, por exemplo, para o link de compartilhamento:

dropbox-online -s %n

em vez de% f, e parece ser inteligente o suficiente para descobrir onde está o sistema de arquivos.

Além disso, estou executando dois processos de caixa de depósito; para mim eu preciso disso para apenas um deles, então eu configurei o HOME env var no final do seu script:

HOME=/home/mike/.dropbox-work dropbox sharelink "$2" | tr -d '\n' | xsel -ib && gui_notify "Share Link Copied" ;;

Funciona bem.

    
por djnz0feh 30.10.2017 / 11:31