2015年12月2日 星期三

KDE 5 中的 Dropbox

0. 環境:

openSUSE Leap 42.1 KDE Plasma 5.4.2


1. Dropbox 安裝

Dropbox 是以 nautilus-plugin 的方式支援 linux

KDE 並不在支援範圍內

若您沒有安裝 nautilus (例如 KDE )

請參考 https://www.dropbox.com/install?os=lnx 透過指令列安裝 Dropbox

若您需要申請 Dropbox 帳號,請按此 -- 介紹人和受邀者都可獲得免費空間獎勵


2. 應用程式圖示

您可以自行建立一個 Dropbox.desktop

[Desktop Entry]
Name=Dropbox
Name[zh_TW]=Dropbox
GenericName=File Synchronizer
GenericName[zh_TW]=檔案同步
Comment=Sync your files across computers and to the web
Comment[zh_TW]=在不同電腦間及網站上同步您的檔案
Categories=Network;FileTransfer;
Exec=$HOME/.dropbox-dist/dropboxd
Icon=dropbox.png
StartupNotify=false
Terminal=false
Type=Application
X-KDE-SubstituteUID=false

將此檔案放在

$HOME/.local/share/applications/

找一個 dropbox.png 放到

$HOME/.local/share/icons/

您就可以在選單中找到 Dropbox















3. 系統匣圖示的問題

請參考 https://www.dropboxforum.com/hc/en-us/community/posts/201908279-Systray-icon-not-showing-in-KDE-Plasma-5-2

openSUSE Leap 42.1 KDE 5 的系統匣已經加入了 xembed-sni-proxy 所以可以顯示舊圖示

但效果不好







注意:如果您使用 fcitx (因為某種不明原因...)

您需要手動執行 xembedsniproxy



您可以用其他的系統匣程式來顯示 dropbox 的圖示

我是使用 trayer-srg

您可以到 http://software.opensuse.org/ 搜尋 trayer-srg 安裝

編輯 $HOME/bin/dropbox.sh 內容為

#!/bin/bash
killall xembedsniproxy
trayer --edge right --align center --width 20 --tint 0xdfdfe0 --transparent false --alpha 0 &
$HOME/.dropbox-dist/dropboxd































效果如上圖










如果有其他不支援新系統匣的圖示也會一併顯示在此



4. Service Menu 修改

Dropbox ServiceMenu 可建立一個 Dolphin 右鍵選單,方便分享

但已經很久沒更新了...

Dropbox 在這段期間也改變了 API 所以有些功能不能運作

要在 KDE 5 上運作需要進行一些修改

(1) 下載 Dropbox ServiceMenu ,解壓縮

(2) 修改目錄中的 dropbox_all.desktop dropbox_directories.desktop dropbox_files.desktop

將此3個檔案中的

`kde4-config --localprefix`/share/kde4/services 改成

$HOME/.local/share/kservices5

(您可以用文字編輯器的"取代"功能輕鬆完成這件事)

(3) 然後將這3個檔案放在 $HOME/.local/share/kservices5/ServiceMenus/

(4) 修改 dropbox-scripts/dropbox_menu.sh

`kde4-config --localprefix`share/kde4/services 改成

$HOME/.local/share/kservices5

(5) 修改 dropbox_menu.sh

revisions() {
    get_uid
    if [ "$is_in_dropbox" != "" ]; then
xdg-open https://www.dropbox.com/revisions/"$relative_path"?_subject_uid="$my_uid"
    else
$python ${SCRIPTS_PATH}dropbox-notify.py --icon dialog-error -t $error_timeout Dropbox "$revisions_error"
    fi
}

get_uid() {
    testurl=`$python ${SCRIPTS_PATH}dropbox.py puburl "$dropbox_path"/Public/index.html`
    my_uid=`set - $(IFS="/"; echo $testurl); echo $4`
}

(6) 修改 dropbox-scripts/get_dropbox_folder.sh



  if [ -f "$HOME/.dropbox/config.db" ]
  then
    local DBFILE="$HOME/.dropbox/config.db"

改成

  if [ -f "$HOME/.dropbox/instance1/config.db" ]
  then
    local DBFILE="$HOME/.dropbox/instance1/config.db"

(7) 將整個 dropbox-scripts 目錄複製到 $HOME/.local/share/kservices5/ServiceMenus/

(8) 大功告成



















Dolphin 的右鍵選單會多出 Dropbox 選項



















因為使用 KDE 4 的 qdbus org.kde.klipper 所以會多出一個剪貼簿圖示





















但兩個都可正常使用

(9) 幾個修改後的檔案您可以由我的 dropbox 資料夾中下載





沒有留言: