Как я могу интегрировать Dropbox в Thunar? Я использую Xubuntu 14.04 с Xfce 4.12, установленным через PPA, и thunar-dropbox-plugin
был поврежден. Я также услышал, что это не работает над Xubuntu 16.04.
К счастью, Dropbox недавно развернул их возможности CLI включать sharelinks и т.д. Для интеграции Dropbox в Thunar делают следующее:
Создайте a ~/bin
каталог в Вашей домашней папке, если не уже созданный. Загрузите сценарий Python Dropbox. Переименуйте его как просто dropbox
. (Расширение не нужно.) Делают это исполняемым файлом chmod +x ~/bin/dropbox
.
Если ~/bin
каталог уже не добавляется к Вашему $PATH
(т.е. заполнение клавишей Tab не работает на сценарий, и т.д.), Вы добавили бы следующее к ~/.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.
Для каждого из них Вы захотите сделать следование второй вкладки, учитывая, что Вы хотите смочь совместно использовать любой тип файла или каталога.
Единственный недостаток - то, что три пункта меню Dropbox появляются глобально в Thunar, не только в Dropbox. Однако сценарий говорит Вам, если Вы случайно за пределами Dropbox.
Обновление: команда dropbox puburl
больше работы. Dropbox больше не имеет папку Public для бесплатных учетных записей и прекращает ее для заплаченных 1 сентября 2017.
[Это должно быть комментарием, извинениями, но у меня еще нет репутации.]
@jbrock
Спасибо! Я нашел, что должен записать, например, для Ссылки Доли:
dropbox-online -s %n
вместо %f, и это, кажется, достаточно умно разработать, где в файловой системе это.
Кроме того, я выполняю два процесса Dropbox; для меня мне в подавляющем большинстве нужен он для всего одного из них, таким образом, я установил ДОМАШНИЙ огибающий var в строках к концу Вашего сценария:
HOME=/home/mike/.dropbox-work dropbox sharelink "$2" | tr -d '\n' | xsel -ib && gui_notify "Share Link Copied" ;;
Работы хорошо.