更改多个文件夹(电影)的文件夹图标

更改多个文件夹(电影)的文件夹图标

如何更改多个文件夹的图标?

如何将每个文件夹的第一张图片设置为其文件夹图标?

我来过这里,但它对我不起作用。因为我的电影不在主分区中,它们在不同的 ext4 分区中,当我尝试在该命令中输入该分区的位置时,它根本不起作用,因为它会自动输入/主页/sumeet在我输入的位置前面。

第二篇文章中的脚本不起作用!也许我做错了什么。

[编辑 2 详细信息]

{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I -mindepth 1 -maxdepth 1 -type d)

我首先从第一篇文章中运行了这个命令,它给了我一个输出

find: ‘/home/sumeet/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I’: No such file or directory

然后我将一些文件移动到主页/影片/电影按照原始帖子中的建议运行此命令

{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/Videos/Films -mindepth 1 -maxdepth 1 -type d)

一切运行正常,但我无法将我的整个电影收藏移动到主文件夹。

然后我尝试了第二篇提到的帖子中的解决方案并运行

python3 /home/sumeet/change_icon.py </mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I>

并得到这个输出

bash: syntax error near unexpected token `newline'

然后我意识到我做错了什么,于是尝试了这个

python3 /home/sumeet/change_icon.py /mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I

没有得到任何输出但它也不起作用。

然后我尝试了第二个脚本 3 或 4 次。出现了右键单击选项,但不起作用,我已经按照帖子要求做了所有事情。我注销,重新登录,尝试重新启动,-q nautilus

似乎不起作用。

答案1

该脚本由雅各布·弗莱姆最初发布于这里

#!/usr/bin/env python3
import subprocess
import os

# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif", "icns", "ico"]
# ---

# retrieve the path of the targeted folder
current = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI").replace("file://", "").replace("%20", " ")
dr = os.path.realpath(current)

for root, dirs, files in os.walk(dr):
    for directory in dirs:
        folder = os.path.join(root, directory)
        try:
            first = min(p for p in os.listdir(folder) 
                        if p.split(".")[-1].lower() in ext)
        except ValueError:
            pass
        else:
              subprocess.Popen([
                  "gvfs-set-attribute", "-t", "string",
                  os.path.abspath(folder), "metadata::custom-icon",
                  "file://"+os.path.abspath(os.path.join(folder, first))
                  ])

使用

  1. 如果目录尚不存在,则创建该目录

    ~/.local/share/nautilus/scripts
    
  2. 将脚本复制到一个空文件中,将其另存~/.local/share/nautilus/scriptsset_foldericons(无扩展名!),右键单击并转到文件属性并使其可执行

  3. 注销并重新登录,就可以了。

如果你想隐藏所有文件夹图标(这样你就不会意外地认为它们是文件夹),可以在文件名开头添加一个,.例如folder.png.folder.png

一切就绪,只需一个脚本

原作

相关内容