當前位置: 首頁>>技術教程>>正文


unity – 是否有任何調整可以在 Nautilus 中恢複標誌?

, ,

問題描述

我閱讀了以下開發電子郵件 Removing ‘Backgrounds and Emblems’,當我閱讀這部分內容時:

Note that this does not completely remove the ability for extensions
(e.g. Dropbox) to add emblems programmatically by using the
libnautilus-extension library, just the user-added emblems from the
properties dialog/emblems sidebar.

有能力以編程方式帶來標誌。那麽,我如何使用 libnautilus-extension library 添加一些像 Dropbox 一樣的標誌呢?或者有任何調整工具嗎?

最佳思路

如何…

在 Unity Dash 中,搜索軟件源並啟用 “Multiverse Repository”

現在在終端複製和粘貼(一次一行)

sudo add-apt-repository ppa:dr3mro/nautilus-actions-extra
sudo apt-get update
sudo apt-get install nautilus-actions-extra
nautilus -q

使用以下選項來標記您的文件/文件夾:

筆記

  1. 這將安裝 70Mb 的各種軟件包。更重要的是,您可以看到它安裝了許多 nautilus 附加功能。您可以通過工具 nautilus-actions-config-tool 刪除任何已安裝的腳本

  2. 你必須點擊 F5 來刷新 Nautilus 文件夾的內容才能出現標誌。

source

次佳思路

大聲笑,我剛剛閱讀了一篇關於將徽章添加回 Nautilus 的文章,我來到這裏並找到了這個問題。無論如何,是的,您可以將標誌添加回 Nautilus,方法如下:

請遵循以下說明(來源: http://www.webupd8.org/2011/12/how-to-manually-add-emblems-in-nautilus.html ):

首先,安裝 python-nautilus。在 Ubuntu 中,使用以下命令:

sudo apt-get install python-nautilus

其次,從 HERE 下載 python 腳本,解壓縮下載的存檔並將 nautilus_emblems_menu.py 文件複製到 /usr/share/nautilus-python/extensions/(要能夠做到這一點,請以 root 身份打開 Nautilus:“gksu nautilus /usr/share /nautilus-python/extensions/”)。

三、重啟Nautilus:

nautilus -q

現在,當您在 Nautilus 中右鍵單擊文件或文件夾時,您應該會看到一個名為 “Emblems” 的新項目。

請確保您閱讀了我從中獲得此信息的原始源文章(上麵給出了鏈接),因為它包含有關如何向 Nautilus 添加更多標誌的信息。

第三種思路

新答案

最簡單的方法是安裝 thunar (來自 Xubuntu 發行版 — 應該像 apt-get install thunar 一樣簡單)。 Thunar 開發人員已經離開了標誌選項。一旦你用 thunar 設置它們,它們在 nautilus 中也是可見的……所以如果你不想更改默認文件瀏覽器,則無需更改。

舊答案

還有另一種選擇,請參閱 https://github.com/allefant/Nautilus-Emblems-Menu-Extension/blob/master/nautilus_emblems_menu.py(同一文件中的指令和請求幫助)。

您也可以將文件放在 .local/share/nautilus-python/extensions 目錄中,無需超級用戶。

傷心,我喜歡徽章。如果有人知道如何遊說…

(順便說一句,我試過了。我得到了 WONTFIX 的回答。見 https://bugzilla.gnome.org/show_bug.cgi?id=665735 )

您還可以通過命令行添加標誌。要查看文件/目錄與其關聯的標誌,請發出

gvfs-info -a metadata::emblems file_or_dir

要在文件/目錄上將標誌設置為酷炫和默認設置:

gvfs-set-attribute -t stringv file_or_dir metadata::emblems cool default

清除文件/目錄上的標誌

gvfs-set-attribute -t unset file_or_dir metadata::emblems

仍在尋找一個 gvfs 命令來列出可用的標誌……

第四種思路

如何…

  • 複製下麵的腳本並粘貼到 gedit 中。將文件保存到已知位置 – 例如您的主文件夾 emblem.sh

  • 賦予腳本執行權限

IE。

chmod +x ~/emblem.sh
  • 下載並安裝 32bit or 64bit nautilus-actions 軟件包。注: 11.10 中的默認包不起作用(它崩潰)

  • 下載並安裝 liblineaklineakdpackage for your platform 。 (lineakd 不再在 Oneiric 存儲庫中。我不知道為什麽不。)

IE。

cd ~/Downloads
sudo dpkg -i nautilus-actions*.deb
sudo dpkg -i liblineak*.deb
sudo dpkg -i lineakd*.deb
  • 在終端中運行

IE。

nautilus-actions-config-tool
  • 按如下方式設置新操作:

  • 注銷和登錄

打開 nautilus 並右鍵單擊並歸檔並根據第一個屏幕截圖定義您的標誌。

會徽.sh

#!/bin/bash

# change emblem's in Nautilus with nautilus-actions
# add a new action in nautilus-actions-config-tool with
# Path /path/to/this/script.sh
# Parameter %F

# Germar Reitze <germar.reitze(AT)gmx.de> Nov 2011
# 2011-12-12 Germar Reitze - bugfix and new function to remove emblems in multiple files
# 2011-12-14 Germar Reitze - automatic refresh Nautilus after change

emblem="art cool danger default desktop development documents downloads draft favorite important mail marketing money new nowrite \
ohno OK package people personal photos pictures plan presentation readonly shared sound symbolic-link system \
ubuntuone-unsynchronized ubuntuone-updating unreadable urgent videos web"
#debug=1
xsendkeycode=$(which xsendkeycode)

# ask which emblem to add
pick_emblem() {
   emblem_list=""
   for i in $emblem; do
        if [ $(echo "$@" | grep -c $i) -eq 1 ]; then
           emblem_list="$emblem_list TRUE $i"
        else
           emblem_list="$emblem_list FALSE $i"
        fi
   done
   if [ "$multiple_files" == "true" ]; then
        text="Which embleme to add to files?"
        emblem_list="FALSE DELETE_ALL_EMBLEMS $emblem_list"
   else
        text="Which embleme to set?"
   fi
   # if lineakd is not installed remind to press F5
   if ! [ -x "$xsendkeycode" ]; then
      text="$text \nDon't forget to press [F5] after OK"
   fi
   zenity  --list  --text "$text" --checklist  --column "Pick" --column "Emblem" $emblem_list --separator=" " --height=700 --width=300
   return $?
}

# do we already have emblem's?
get_used_emblem() {
   a=$(gvfs-info "$1" -a metadata::emblems)
   err=$?
   b=${a#*[}
   b=${b%]*}
   echo "$b" | sed -e 's/,//g'
   return $err
}

# emblem won't show without
set_icon_view_auto_layout() {
   if [ $(gvfs-info "$1" -a metadata::nautilus-icon-view-auto-layout | grep -c true) -lt 1 ]; then
        [ $debug ] && echo "SET: metadata::nautilus-icon-view-auto-layout true"
        gvfs-set-attribute -t string "$1" metadata::nautilus-icon-view-auto-layout true
        return $?
   else
        [ $debug ] && echo "metadata::nautilus-icon-view-auto-layout already set"
        return 0
   fi
}

set_emblem() {
   file="$1"
   shift
   gvfs-set-attribute -t stringv "$file" metadata::emblems $@
   return $?
}

del_emblem() {
   gvfs-set-attribute -t unset "$1" metadata::emblems
   return $?
}

report_error() {
   zenity --error --text "Failed in $1"
}


multiple_files=false
if [ $# -gt 1 ]; then
   multiple_files=true
fi

if [ "$multiple_files" == "true" ]; then
   add_emblem=$(pick_emblem)
   err=$?
   if [ $err -gt 0 ]; then
        [ $debug ] && echo "cancel"
        exit 1
   fi
   [ $debug ] && echo "embleme to add: $add_emblem"

   # process every file separate
   while [ $# -gt 0 ]; do
        if [ $(echo "$add_emblem" | grep -c DELETE_ALL_EMBLEMS) -eq 1 ]; then
           [ $debug ] && echo "$1: delete emblems"
           del_emblem "$1"
           err=$?
           [ $err -gt 0 ] && report_error "$1" && exit 1
        else
           used_emblem=$(get_used_emblem "$1")
           err=$?
           [ $err -gt 0 ] && report_error "$1" && exit 1
           emblem_list=""
           for i in $emblem; do
                if [ $(echo "$used_emblem $add_emblem" | grep -c $i) -ne 0 ]; then
                   emblem_list="$emblem_list $i"
                fi
           done
           set_icon_view_auto_layout "$1"
           err=$?
           [ $err -gt 0 ] && report_error "$1" && exit 1

           if [ "$emblem_list" != "" ]; then
                [ $debug ] && echo "$1: $emblem_list"
                set_emblem "$1" $emblem_list
                err=$?
                [ $err -gt 0 ] && report_error "$1" && exit 1
           fi
        fi
        shift
   done
else
   # we only have one file
   add_emblem=$(pick_emblem $(get_used_emblem "$1") )
   err=$?
   if [ $err -gt 0 ]; then
        [ $debug ] && echo "cancel"
        exit 1
   fi
   [ $debug ] && echo "embleme to add: $add_emblem"

   set_icon_view_auto_layout "$1"
   err=$?
   [ $err -gt 0 ] && report_error "$1" && exit 1

   if [ "$add_emblem" != "" ]; then
        [ $debug ] && echo "$1: $add_emblem"
        set_emblem "$1" $add_emblem
        err=$?
   else
        [ $debug ] && echo "$1: delete emblem"
        del_emblem "$1"
        err=$?
   fi
   [ $err -gt 0 ] && report_error "$1" && exit 1
fi

# refresh Nautilus if lineakd is installed
if [ -x "$xsendkeycode" ]; then
   $xsendkeycode 71 1
   $xsendkeycode 71 0
fi

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12995.html,未經允許,請勿轉載。