web-dev-qa-db-ja.com

ThunarにDropboxを統合する方法は?

DropboxをThunarに統合するにはどうすればよいですか? PPAを介してXfce 4.12をインストールしたXubuntu 14.04を使用していますが、thunar-dropbox-pluginが壊れています。また、Xubuntu 16.04で動作していないと聞きました。

4
jbrock

幸いなことに、Dropboxは最近 それらのCLI機能 を拡張して共有リンクなどを含めました。DropboxをThunarに統合するには、次のようにします。

初期設定

ホームフォルダーに~/binディレクトリを作成します(まだ作成されていない場合)。 Dropbox python script をダウンロードします。名前をdropboxに変更します。 (拡張機能は必要ありません。)実行可能にしますchmod +x ~/bin/dropbox

~/binディレクトリが$PATHにまだ追加されていない場合(つまり、タブ補完がスクリプトで機能しないなど)、次を~/.profileに追加します。その後、ログアウトして再度ログインします。

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

Sudo apt-get install xselをターミナルに貼り付けて、xselをインストールします。このプログラムは、以下のスクリプトにクリップボード機能を提供します。

次のスクリプトをプレーンテキストファイルに保存し、~/binに保存して、実行可能にします。私の名前はdropbox-onlineです。 icon_path="/full/path/to/dropbox-icon.png"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

Thunar統合

Thunarに統合します。 [編集]> [カスタムアクションの構成]に移動します。プラス記号をクリックして、カスタムアクションを追加します。次の3つのカスタムアクションを設定します。

Add Share Link

Add Public Link

Add Directory Online

Thunarのコンテキストメニュー項目に表示する独自のアイコンを追加できることも忘れないでください。

これらのそれぞれについて、任意のタイプのファイルまたはディレクトリを共有できるようにするには、2番目のタブで次の操作を実行します。

Appearance Conditions

唯一の欠点は、3つのDropboxメニュー項目がDropboxだけでなくThunarでグローバルに表示されることです。ただし、誤ってDropboxの外にいる場合は、スクリプトから通知されます。

更新:dropbox puburlコマンドは動作しなくなりました。 Dropboxには無料アカウント用のパブリックフォルダーがなくなり、2017年9月1日に有料アカウント用に廃止されました。

5
jbrock

[これはコメントであり、謝罪すべきですが、私はまだ評判がありません。]

じゅん

ありがとうございました!私は、たとえば共有リンクのために書く必要があることがわかりました:

dropbox-online -s %n

%fではなく、ファイルシステム内のどこにあるかを判断するのに十分賢いようです。

また、2つのDropboxプロセスを実行しています。私にとっては、そのうちの1つだけが圧倒的に必要なので、スクリプトの最後に向かって、HOME env変数を次の行に設定しました。

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

うまくいく。

0
djnz0feh