当前位置: 首页>>技术教程>>正文


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/article/12995.html,未经允许,请勿转载。