我对 Ubuntu 还很陌生,但我知道一些基础知识。
我读过“如何更改“位置”菜单中的文件夹图标?”但它没有帮助,因为我想为单个目录指定它(现在)。
所以我该怎么做?
我有 SVG 格式的文件夹图像:
/usr/share/icons/hicolor/scalable/apps/
/usr/share/icons/hicolor/scalable/places/
我想要使用的图像:
我想要它的位置:
答案1
地点菜单中出现的书签图标无法更改,请参见:https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/423890
但是,正如您所看到的,用户文件夹(如视频和图片)确实有不同的图标,这是因为位置菜单仅查看标准::图标:属性,而自定义图标仅更改元数据::自定义图标:属性。我发现没有办法更改标准::图标:属性。在“普通”文件夹中,此属性将始终相同。
我使用的一个解决方法是将用户文件夹(我不使用)的目录更改为必须更改图标的文件夹的目录,然后替换该用户文件夹的图标文件。
步骤1)
可以通过编辑文件 ~/.config/user-dirs.dirs 来更改用户文件夹的目录。您可以在终端窗口中输入以下行来打开它:
gedit .config/user-dirs.dirs
或者通过导航到您的主文件夹按 Ctrl+H,搜索文件夹 .config 并从那里打开 user-dirs.dirs 文件。
该文件的输出将如下所示:
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_VIDEOS_DIR="$HOME/Videos"
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PICTURES_DIR="$HOME/Pictures"
注意:在开始编辑此文件之前,请先将其保存为 user-dirs.dirs.bak 之类的名称进行备份
在此文件中,您可以更改用户文件夹的目录。例如,如果您想将公共文件夹的目录更改为 Dropbox 文件夹的目录,请更改以下行:
XDG_PUBLICSHARE_DIR="$HOME/Public"
到:
XDG_PUBLICSHARE_DIR="$HOME/Dropbox"
(假设您的 Dropbox 文件夹位于您的主目录中)
完成此操作后,您会注意到您的 Dropbox 文件夹(如果您使用 Ambiance 主题)将如下所示:
将它拖到 Nautilus 的侧边栏并添加为书签后,它将出现在您的位置菜单中,如下所示:
如果不是这种情况,请尝试按 Ctrl+R 或 F5 刷新窗口,如果仍然不起作用,请检查 users-dirs.dirs 文件是否存在任何可能犯的错误。
第2步)
虽然这是一个非常漂亮的图标,但它不是您想要使用的图标。您必须用自己的图标替换用户文件夹的图标。用户文件夹公共的图标名为“folder-publicshare.svg”,可以在以下位置找到:
/usr/share/icons/Humanity/places/16/
/usr/share/icons/Humanity/places/22/
/usr/share/icons/Humanity/places/24/
/usr/share/icons/Humanity/places/32/
/usr/share/icons/Humanity/places/48/
/usr/share/icons/Humanity/places/64/
因为我很无聊,所以我编写了一个 bash 脚本来让你轻松完成这件事
#!/bin/bash
i=0
for d in `ls -d $2*/`
do cp $1 $d$3
echo copying $1 to $d$3
let i++
done
echo "The file $3 was copied to a total of $i locations"
您可以将其复制到文本编辑器(如 gedit)中,并将其保存在您的主文件夹中,名称为 copy.sh 或您更喜欢的其他名称。保存后,您必须打开终端窗口并输入:
sudo chmod +x ./copy.sh
这将使您刚刚创建的文件可执行,以替换图标类型:
sudo ./copy.sh /dir/to/icon.png /usr/share/icons/Humanity/places/ folder-publicshare.svg
将第一个参数 /dir/to/icon.png 替换为您的图标的位置,第二个参数是存储图标的文件夹的父目录,第三个参数是需要替换的图标的名称(如果脚本用于其他目的,则此参数是可选的)。
使用此脚本还会将其复制到不需要的 128 文件夹中,这不会造成任何损害,但如果您想删除它,您可以在终端窗口中输入以下行来执行此操作:
sudo rm /usr/share/icons/Humanity/places/128/folder-publicshare.svg
退出并再次登录后,结果将是这样的(荷兰语):
如您所见,我的菜单中还有另一个自定义图标,名为 School(上面有我的 School 徽标),这个图标替换了用户文件夹 Templates(猜想没有人真正使用该文件夹)。用户文件夹 Templates 的图标名为 folder-templates.svg,可以在与用户文件夹 public 的图标相同的位置找到。在替换这些图标时,我没有使用上面发布的 bash 脚本,而是手动复制了它们,因为我制作了六个具有不同分辨率的不同图标。
这种方法的缺点是您总共只能自定义七个图标,并且必须提供一个标准用户文件夹。
注意:除非您知道自己在做什么,否则请不要更改桌面的目录。
我希望这能回答你的问题,它可能看起来工作量很大,但只需一分钟就能完成。