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

У этого вопроса уже есть ответ здесь: Как установить первое изображение каждой папки в качестве значка своей папки? 1 ответ

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

Но если вам нужно сделать это на 100 папках, это будет больно. То, что я хочу, - это более короткий способ сделать то же самое.

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

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

9 ответов

Есть два способа добиться того, чего вы хотите. Сначала это всего лишь ярлык

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

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

Этот скрипт был написан Якобом Влимом и был первоначально размещен здесь.

Откройте текстовый редактор 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 без расширения. Теперь откройте свой (nautilus) и перейдите к /home/sundar/.local/share/nautilus/scripts. Вы должны увидеть файл с именем set_foldericon. Теперь щелкните правой кнопкой мыши на этом файле, выберите «Свойства», затем выберите «Разрешения» и нажмите «Разрешить выполнение файла как программу». Теперь выйдите из системы и войдите в систему. Теперь перейдите к папка, в которой хранится ваш музыкальный альбом. Щелкните правой кнопкой мыши по папке, где вы увидите второй вариант, поскольку скрипты выбирают параметр «Установить папку». Перезагрузите, нажав F5. Теперь ваши альбомы должны иметь обложки

3
ответ дан 22 May 2018 в 22:44

Есть два способа добиться того, чего вы хотите. Сначала это всего лишь ярлык

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

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

Этот скрипт был написан Якобом Влимом и был первоначально размещен здесь.

Откройте текстовый редактор 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 без расширения. Теперь откройте свой (nautilus) и перейдите к /home/sundar/.local/share/nautilus/scripts. Вы должны увидеть файл с именем set_foldericon. Теперь щелкните правой кнопкой мыши на этом файле, выберите «Свойства», затем выберите «Разрешения» и нажмите «Разрешить выполнение файла как программу». Теперь выйдите из системы и войдите в систему. Теперь перейдите к папка, в которой хранится ваш музыкальный альбом. Щелкните правой кнопкой мыши по папке, где вы увидите второй вариант, поскольку скрипты выбирают параметр «Установить папку». Перезагрузите, нажав F5. Теперь ваши альбомы должны иметь обложки

3
ответ дан 18 July 2018 в 13:31

Есть два способа добиться того, чего вы хотите. Сначала это всего лишь ярлык

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

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

Этот скрипт был написан Якобом Влимом и был первоначально размещен здесь.

Откройте текстовый редактор 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 без расширения. Теперь откройте свой (nautilus) и перейдите к /home/sundar/.local/share/nautilus/scripts. Вы должны увидеть файл с именем set_foldericon. Теперь щелкните правой кнопкой мыши на этом файле, выберите «Свойства», затем выберите «Разрешения» и нажмите «Разрешить выполнение файла как программу». Теперь выйдите из системы и войдите в систему. Теперь перейдите к папка, в которой хранится ваш музыкальный альбом. Щелкните правой кнопкой мыши по папке, где вы увидите второй вариант, поскольку скрипты выбирают параметр «Установить папку». Перезагрузите, нажав F5. Теперь ваши альбомы должны иметь обложки

3
ответ дан 24 July 2018 в 20:11

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

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

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

, где <PATH> - это путь к файлу или каталогу и <IMAGE-URI> - это URI для файла изображения, используемого в качестве значка. Для использования файла локального изображения используйте схему file:, например. г. file:///home/sundar/my-icon.png.

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

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

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.

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

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

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
ответ дан 22 May 2018 в 22:44
  • 1
    Я думаю, что OP хочет использовать несколько изображений для нескольких каталогов, как он заметил выше, будет ли он работать и с несколькими изображениями? – Sumeet Deshmukh 10 May 2017 в 20:03
  • 2
    Мне ясно редактировать – Sundar Labhar 10 May 2017 в 20:11
  • 3
    @SundarLabhar: См. Дополнение к моему ответу. – David Foerster 10 May 2017 в 20:29
  • 4
    @DavidFoerster Сэр, это сбивает меня с толку, я отвечаю за sumeet deshmukh. – Sundar Labhar 11 May 2017 в 08:45

Есть приложение под названием CoverThumbnailer, которое делает именно то, что хочет OP. Любые jpg или png, называемые «обложка» или «папка», будут отображаться в виде уменьшенного изображения. Работает в любой папке, а не только в музыке

sudo add-apt-repository ppa:flozz/flozz
sudo apt-get update
sudo apt-get install cover-thumbnailer
1
ответ дан 22 May 2018 в 22:44

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

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

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

, где <PATH> - это путь к файлу или каталогу и <IMAGE-URI> является URI для файла изображения, используемого в качестве значка. Для использования файла локального изображения используйте схему file:, например. г. file:///home/sundar/my-icon.png.

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

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

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.

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

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

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
ответ дан 18 July 2018 в 13:31

Есть приложение под названием CoverThumbnailer, которое делает именно то, что хочет OP. Любые jpg или png, называемые «обложка» или «папка», будут отображаться в виде уменьшенного изображения. Работает в любой папке, а не только в музыке

sudo add-apt-repository ppa:flozz/flozz sudo apt-get update sudo apt-get install cover-thumbnailer
1
ответ дан 18 July 2018 в 13:31

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

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

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

, где <PATH> - это путь к файлу или каталогу и <IMAGE-URI> - это URI для файла изображения, используемого в качестве значка. Для использования файла локального изображения используйте схему file:, например. г. file:///home/sundar/my-icon.png.

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

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

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.

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

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

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
ответ дан 24 July 2018 в 20:11
  • 1
    Я думаю, что OP хочет использовать несколько изображений для нескольких каталогов, как он заметил выше, будет ли он работать и с несколькими изображениями? – Sumeet Deshmukh 10 May 2017 в 20:03
  • 2
    Мне ясно редактировать – Sundar Labhar 10 May 2017 в 20:11
  • 3
    @SundarLabhar: См. Дополнение к моему ответу. – David Foerster 10 May 2017 в 20:29
  • 4
    @DavidFoerster Сэр, это сбивает меня с толку, я отвечаю за sumeet deshmukh. – Sundar Labhar 11 May 2017 в 08:45

Есть приложение под названием CoverThumbnailer, которое делает именно то, что хочет OP. Любые jpg или png, называемые «обложка» или «папка», будут отображаться в виде уменьшенного изображения. Работает в любой папке, а не только в музыке

sudo add-apt-repository ppa:flozz/flozz sudo apt-get update sudo apt-get install cover-thumbnailer
1
ответ дан 24 July 2018 в 20:11

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

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