Как установить первое изображение каждой папки в качестве значка папки?
На вопрос, связанный выше, есть ответ, состоящий из сценария, который работал для меня. Это просто нужно немного улучшить.
Что оно делает?
Он находит файлы с расширениями .jpg, .jpeg, .png, .gif, .icns, .ico и устанавливает их в качестве значка папки, в которой был найден файл. Работает на нескольких папках, рекурсивно. В основном он пытается найти файл изображения внутри папки, и первое найденное изображение устанавливается как значок папки. Он отлично работает для многих сценариев, и настройка этого скрипта - обычно первое, что я делаю после новой установки (потому что это потрясающе).
В чем проблема?
Там может быть несколько каталогов, которые содержат много файлов изображений, и первый файл изображения в этом каталоге может не подходить для значка папки.
Что это должно сделать?
Вместо того, чтобы основываться на расширении, если оно стало основанным на имени файла и предназначалось для одного (например folder.png
) или нескольких (например albumart.png
cover.png
) имен файлов, тогда эта проблема могла бы быть решена.
или еще лучше, чтобы оба подхода работали в одном скрипте
- Найти предопределенный
filenames
- Если найдено, установите его как значок папки и перейдите к следующей папке
- Если НЕ найдено, найдите предопределенное расширение, установите его в качестве значка папки и перейдите к следующей папке.
источник
Ответы:
Я мог бы все еще "изобразить это немного", но ниже отредактированные версии связанных.
В чем разница?
Я добавил предопределенный список в раздел заголовка:
и я заменил:
по:
так что сценарий сначала пытается найти (файл) совпадения в списке
specs
(только), если их нет, он переходит к поиску совпадающего расширения и выполняет свою задачу, если находит подходящее изображение.1. Базовая версия
Для использования с целевым каталогом в качестве аргумента:
Как пользоваться
change_icon.py
Запустите его с целевым каталогом в качестве аргумента:
Это оно!
2. Отредактированная опция щелчка правой кнопкой мыши, которая будет использоваться в качестве скрипта nautilus (щелчок правой кнопкой мыши)
Использовать
Создайте, если он еще не существует, каталог
Скопируйте скрипт в пустой файл, сохраните его
~/.local/share/nautilus/scripts
какset_foldericons
(без расширения!) И сделайте его исполняемым .Если по какой-то причине вы хотите сбросить значки в папке на их значки по умолчанию, используйте скрипт здесь
источник
file://
. Вместоreplace("%20", " ")
вас следует использовать правильное декодирование URI (напримерurllib.parse.unquote
) и более позднюю кодировку (urllib.parse.quote
).subprocess.Popen
на,subprocess.call
но в огромных каталогах с почти 700 + sub не все значки папок chnage.urllib.parse.quote
отлично работает на "сухом" тесте, а не в скрипте. Нужно выяснить почему, но пока оставляем рабочую версию скрипта.unquote
как положено?