如何在 Thunar 中集成 Dropbox?

如何在 Thunar 中集成 Dropbox?

我如何将 Dropbox 集成到 Thunar?我正在使用 Xubuntu 14.04,并通过 PPA 安装 Xfce 4.12,但thunar-dropbox-plugin出现故障。我还听说它在 Xubuntu 16.04 上无法运行。

答案1

幸运的是,Dropbox 最近扩展了他们的 CLI 功能包括共享链接等。要将 Dropbox 集成到 Thunar,请执行以下操作:

初始设置

~/bin如果尚未创建目录,请在主文件夹中创建一个目录。下载Dropbox Python 脚本。将其重命名为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

xsel通过粘贴到终端进行安装sudo apt-get install 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。转到编辑 > 配置自定义操作。单击加号以添加自定义操作。设置以下三个自定义操作:

添加分享链接

添加公共链接

在线添加目录

还要记住,您可以添加自己的图标以显示在 Thunar 上下文菜单项上。

对于上述每一个,您需要在第二个选项卡上执行以下操作,因为您希望能够共享任何类型的文件或目录。

外观状况

唯一的缺点是,这三个 Dropbox 菜单项在 Thunar 中是全局显示的,而不仅仅是在 Dropbox 中。不过,如果您不小心超出了 Dropbox 的范围,脚本会提醒您。

更新:该命令dropbox puburl不再有效。Dropbox 不再为免费帐户提供公共文件夹,并于 2017 年 9 月 1 日停止为付费帐户提供该文件夹。

答案2

[这应该是一条评论,抱歉,但我还没有声誉。]

@jbrock

谢谢!我发现我需要为共享链接写一些示例:

dropbox-online -s %n

而不是 %f,而且它似乎足够智能,能够找出它在文件系统中的位置。

另外,我正在运行两个 dropbox 进程;对我来说,我绝大多数只需要其中一个,因此我在脚本末尾的几行中设置了 HOME 环境变量:

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

效果很好。

相关内容