Изменить значок папки для нескольких папок, Музыкальные альбомы [дубликат]

Чтобы изменить значок папки, все, что вам нужно сделать, это щелкнуть правой кнопкой мыши на папку, выберите Свойства , щелкните значок папки, перейдите к выберите значок папки , выберите его и готово!

Но если вам придется делать это на сотнях папок, это будет проблемой. Мне нужен более короткий способ сделать то же самое. Как ярлык, который автоматически выбирает экран изображения или что-то еще, чтобы упростить его.

В каждой папке есть изображение с именем «album art.jpeg» или «cover art.jpg» или что-то в этом роде.

3
задан 11 May 2017 в 09:49

3 ответа

Существует два способа достигнуть того, что Вы хотите. Сначала каждый - просто ярлык

все, что необходимо сделать, нажимают на папку и нажимают Ctrl + я, который взял бы Вас на экран свойств. пропуск 2 шагов в Вашей описанной операции. это логично для некоторых папок, но если бы Вы говорите о 100's папок затем, я предложил бы, чтобы Вы пошли со вторым подходом


Второй путь является немного сложным. это добавляет опцию щелчка правой кнопкой в наутилусе (Ваше приложение файлов) для установки значка папки на все текущие каталоги в одиночном нажатии. Это выберет первое изображение, найденное в папке как значок папки.

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

Откройте gedit текстовый редактор и вставьте сценарий в пробеле gedit страница.

#!/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))
                  ])
  • При сохранении выбора этот путь для того, чтобы сохранить этот недавно созданный файл, /home/sundar/.local/share/nautilus/scripts
  • Сохраните имя файла как set_foldericon без расширения
  • Теперь откройте свое приложение файлов (наутилус) и перейдите в /home/sundar/.local/share/nautilus/scripts
  • Необходимо видеть названный файл set_foldericon
  • Щелчок правой кнопкой Now по тому файлу, выберите Свойства, затем выбирают Полномочия и нажимают на файл выполнения Allow как на программу
  • Теперь выйдите из системы и войдите в
  • Теперь перейдите к папке, где Ваш музыкальный альбом хранится
  • Щелкните правой кнопкой по папке, необходимо рассматривать, что вторая опция как Сценарии выбирает именованный набор опции foldericon
  • Перезагрузка путем нажатия F5
  • Ваши альбомы должны иметь искусства покрытия теперь

Screenshot of albums with cover pics

3
ответ дан 1 December 2019 в 13:23

Для одного каталога

Чтобы установить значок для одного файла или каталога , используйте следующую команду

gvfs-set-attribute -t string <PATH> metadata::custom-icon <IMAGE-URL>

, где <PATH> - путь к файл или каталог, а <IMAGE-URI> - это URI файла изображения, который используется в качестве значка. Чтобы использовать локальный файл изображения, используйте схему file:, e. г. [+1110].

Для нескольких каталогов с одинаковым значком

Теперь, чтобы применить это к нескольким файлам или каталогам, вы можете использовать команду цикла для многократного запуска вышеуказанной программы :

for p in <PATHS...>; do
  gvfs-set-attribute -t string "$p" metadata::custom-icon <IMAGE-URL>
done

Поскольку вводить целую команду каждый раз, когда вы хотите назначить несколько значков, немного сложно, вы можете создать сценарий оболочки и сохранить его в файл, например. г. ~/.local/bin/set-custom-icon.sh:

#!/bin/sh
set -eu
case "$1" in
  *://*) icon="$1";;
  /*) icon="file://$1";;
  *) icon="file://$(readlink -e -- "$1")";;
esac
shift
for p; do
  gvfs-set-attribute -t string "$p" metadata::custom-icon "$icon"
done

Установите разрешение на выполнение для файла

chmod +x ~/.local/bin/set-custom-icon.sh

Теперь вы можете использовать скрипт следующим образом:

~/.local/bin/set-custom-icon.sh <IMAGE> <PATHS...>

Для нескольких каталогов с разными автоматически выбранными значками

Мы можем расширить эту команду, чтобы выбрать разные файлы значков для каждого каталога, поскольку между ними существует простой шаблон.

for p in <PATHS...>; do
  icon="$(find "$p" -mindepth 1 -maxdepth 1 \( -iname 'album*' -o -iname 'cover*' \) -a \( -iname '*.jp[eg]' -o -iname '*.jpeg' -o -iname '*.png' \) -type f -print -quit)"
  [ -z "$icon" ] || gvfs-set-attribute -t string "$p" metadata::custom-icon "file://$(readlink -e -- "$icon")"
done

Для каждого пути $p будет найден обычный файл непосредственно под $p, имя которого начинается с album или cover и заканчивается .jpg, .jpe, .jpeg или .png (без учета регистра), если такой файл существует. Если существует несколько файлов, соответствующих этому шаблону, выбирается произвольный.

Если такой файл существует, он задается как значок для каталога $p.

Для нескольких каталогов с разными, , вручную , выбранных значков

Мы можем сделать это с помощью скрипта, который открывает диалоговое окно файла, чтобы запрашивать местоположение значка повторно и без дальнейшего взаимодействия с пользователем: [ 1140]

for p in <PATHS...>; do
  icon="$(zenity --file-selection --title="Select icon for $p" --file-filter='Supported images | *.jp[eg] *.jpeg *.png *.gif *.svg *.xpm' --file-filter='All files | *')" || break
  gvfs-set-attribute -t string "$p" metadata::custom-icon "$icon"
done

(требуется пакет zenity)

3
ответ дан 1 December 2019 в 13:23

Существует приложение под названием CoverThumbnailer, которое делает именно то, что хочет ОП. Любой JPG или PNG, называемый «обложка» или «папка» будет выбран в качестве эскиза изображения. Работает с любой папкой, а не только с музыкой

sudo add-apt-repository ppa:flozz/flozz
sudo apt-get update
sudo apt-get install cover-thumbnailer
1
ответ дан 1 December 2019 в 13:23

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

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