Как изменить значок для определенного типа файла?
Я пытаюсь изменить значок для application/x-hwp
файлы. Я добавил иконки в нужные места и проверил их с помощью assoGiate (после прочтения этой темы). Это показывает, что мой нужный значок связан с типом файла. Тем не менее, Наутилус все еще показывает старую икону. Как я могу заставить Наутилус показывать правильный значок?
4 ответа
Вот набор инструкций, которые должны получить пользовательский значок для файлов hwp.
Откройте терминал:
Проверьте, существует ли тип MIME:
grep 'hwp' /etc/mime.types
если вы получаете вывод, напоминающий
application/x-hwp hwp
пропустить следующий шаг.Создайте MIME-тип
sudo -H gedit /etc/mime.types
и добавьте строкуapplication/x-hwp hwp
Добавьте значок (который должен называться
application-x-hwp.svg
):sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
(не забудьте заменить PathToIcon)
Получил информацию отсюда
Основная хитрость заключается в том, чтобы правильно узнать, где находятся реальные значки.
Чтобы определить это, давайте проанализируем значки HTML. Соглашение об именах для значков такое же, как и для MIME-типа, только /
заменяется на -
и заглавные буквы не допускаются. Т.е. MIME-тип, скажем, text/x-changelog
будет иметь иконку с именем text-x-changelog.svg
(или же png
). MIME-тип для HTML text/html
, Так что его иконка будет text-html.*
Если мы запустим команду
find /usr/share/icons/ -type f | grep 'text-html\.'
мы получим несколько мест, где расположены эти иконки:
/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/
Если мы посетим каждого из них с Наутилусом, мы увидим, что Humanity/
папка содержит наши текущие иконки, gnome/
- некоторые старые. HighContrast/
нас не интересует. Таким образом, чтобы изменить какой-либо значок, мы должны заменить значки, расположенные в Humanity/
папка.
Также обратите внимание, что text-html.svg
значки, которые можно масштабировать и которые должны быть помещены в scalable
вложенные папки (что должно быть логично) вместо этого помещаются в папки разных размеров, так же, как растровые файлы PNG.
После замены значков (во всех подпапках в соответствии с их размерами) на нужные необходимо обновить кеш значков:
sudo gtk-update-icon-cache /usr/share/icons/Humanity
Вот и все.
Есть еще один способ определить приоритетность схем значков - проверить их index.theme
файлы. Если мы посмотрим внутрь /usr/share/icons/Humanity/index.theme
, посмотрим:
Inherits=gnome,hicolor
Это означает, что значки из gnome
а также hicolor
папки будут иметь меньший приоритет, чем папки из Humanity
, Это объясняется здесь.
Как ни странно, Наутилус не подчиняется этим правилам наследования. Когда я добавил новый MIME-тип, я попытался поместить его значки в /usr/share/icons/gnome/
, /usr/share/icons/hicolor
, ~/.local/share/icons/hicolor
Обновление иконки базы на каждом шаге - все напрасно. Эти значки правильно отображались в assogiate
на первой вкладке, но никогда в Наутилусе. Но когда я поместил их в Humanity
папки и обновленные иконки базы данных, они появились сразу.
NB Все это относится к теме значков по умолчанию. Если вы используете какую-то собственную тему значков, вы должны проверить, где находятся настоящие значки, и вместо этого добавить / изменить значки. Также в более новых дистрибутивах эти правила наследования могут измениться. Затем вы должны найти новую папку, в которой хранятся фактические значки (если это не так Humanity
больше), как объяснено ранее.
Я надеюсь, что вы попытались выйти из системы и войти, чтобы обновить кэш иконок.
Также проверьте, доступен ли ваш значок в правильном размере (тот, который вы используете для отображения типа файла в nautilus).
Вы также можете пропустить бег gtk-update-icon-cache
,
Попробуйте этот учебник: http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-Type+(mimetype)+Icons+in+Ubuntu/chcrf
Попробуйте вручную создать icon.theme, вот пример из awn:
[Icon Theme]
Name=awn-theme
Directories=scalable
[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable
Руководство находится здесь: http://live.gnome.org/GnomeArt/Tutorials/IconThemes
1)
sudo apt-get install assogiate
следуйте этому хорошему учебнику с красивыми картинками
http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html
2)
Если тип файла не определен правильно или отображается неверный тип файла, найдите тип файла, определяющий символы
Пример: rar, перейдите на http://filext.com/file-extension/rar
идентификатор "Hex: 52 61 72 21 1A 07 00, ASCII: Rar!"
откройте файл в bless или любом шестнадцатеричном редакторе и найдите идентификатор и смещение (где начинаются ваши ключевые слова)
в нашем случае это первый бит, поэтому смещение равно "0".
Затем перейдите в "Редактор типов файлов", отредактируйте или создайте новый элемент, затем выберите "Редактировать" и под содержимым файла
выберите "строку" из выпадающего списка, введите "Rar!" и установите смещение "0".
Готово