Изменить значок папки в нескольких папках (фильмы) [дубликат]

Как изменить значки многих папок?

Как установить первую картинку каждой папки в качестве значка папки?

Я был здесь, но это не работает для меня. Потому что мои фильмы находятся не в домашнем разделе, а в другом разделе ext4, и когда я пытаюсь указать местоположение этого раздела в этой команде, она просто не работает, потому что автоматически ставит /home/sumeet перед местом, которое я ввожу.

Скрипты во 2-м посте не работают! Может я что-то не так делаю?

[EDIT 2 DETAILED]

{ 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

Затем я переместил некоторые файлы в home/videos/films, как было предложено в первом сообщении, и выполнил эту команду

{ 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)

Что сработало отлично, но я не могу переместить всю коллекцию фильмов в папку home.

Затем я попробовал решение из второго сообщения и запустил

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

Похоже, не работает.

2
задан 26 April 2017 в 12:58

1 ответ

Этот сценарий был записан Jacob Vlijm и был первоначально отправлен здесь .

#!/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/scripts как set_foldericons (никакое расширение!), щелкните правой кнопкой и перейдите к свойствам файла, и делают это исполняемым файлом .

  3. Выходят из системы и въезжают задним ходом, это работает.

, Если Вы хотите скрыть все значки папок (так, чтобы Вы случайно не предполагали, что они - папки) добавляют . в начале имен файлов, например folder.png становится .folder.png

all set, with one script

Исходная работа

6
ответ дан 2 December 2019 в 01:43

Другие вопросы по тегам:

Похожие вопросы: