问题描述
我阅读了以下开发电子邮件 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
使用以下选项来标记您的文件/文件夹:
笔记
-
这将安装 70Mb 的各种软件包。更重要的是,您可以看到它安装了许多 nautilus 附加功能。您可以通过工具
nautilus-actions-config-tool
删除任何已安装的脚本 -
你必须点击
F5
来刷新 Nautilus 文件夹的内容才能出现标志。
次佳思路
大声笑,我刚刚阅读了一篇关于将徽章添加回 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 中的默认包不起作用(它崩溃) -
下载并安装
liblineak
和lineakd
的 package 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