Как изменить значок типа файла в XFCE (Thunar)?


13

Как изменить значок, используемый для отображения файлов определенного типа в Thunar / XFCE.

Ответы:


12

Значки, отображаемые Thunar, основаны на информации, хранящейся в базе данных mimetypes. И поэтому, чтобы изменить иконку mimetype, нам нужно изменить эту базу данных. Существует графический интерфейс Gnome, называемый assogiate, который может быть использован для этого, но я пока еще не пробовал. Или мы можем просто изменить информацию mimetype вручную, отредактировав / создав определенные XML-файлы.

В качестве примера я попытаюсь изменить значок для файлов .html. Во-первых, я получу его mimetype из командной строки ...

$ file --mime-type testfile.html 
testfile.html: text/html

Затем мне нужно получить информацию об определении mimetype из базы данных mimetype системы. База данных находится в каталоге / usr / share / mime /, но, в частности, определения xml исходного mimetype находятся в подпапке / usr / share / mime / packages. Итак, я попытаюсь найти, какой xml-файл содержит объявление mime-типа для text / html.

$ cd /usr/share/mime/packages/
$ fgrep -Hn '<mime-type type="text/html">' *
freedesktop.org.xml:25295:  <mime-type type="text/html">

Итак, я нашел xml-файл, который содержит определение mime-типа для text / html. Но этот XML-файл может содержать определения для десятков типов MIME. Поэтому мы должны открыть его в редакторе и найти небольшой раздел файла, который начинается с mime-type type = "text / html" и заканчивается / mime-type> , как показано ниже.

  <mime-type type="text/html">
    <comment>HTML document</comment>
      .
      .
      .
  </mime-type>

Теперь, если мы изменим базу данных системного mimetype, она может быть перезаписана обновлением пакета. Вместо этого мы создадим новый XML-файл в базе данных mimetype локальных пользователей, который находится по адресу ~ / .local / share / mime. А поскольку этот новый xml-файл будет содержать определение исходного mimetype, он будет помещен в подпапку ~ / .local / share / mime / packages. Итак, мы создадим новый XML-файл там, но с использованием придуманного имени ...

$ cd ~/.local/share/mime/packages
$ gedit html_example.xml &

и вставьте текст, найденный выше, но добавив две дополнительные строки вверху и одну дополнительную строку внизу ...

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="text/html">
    <comment>HTML document</comment>
      .
      .
      .
  </mime-type>
</mime-info> 

В этом примере в моем Linux я не вижу строк, связанных со значками, в определении mimetype для text / html. Но если вы видите какие-либо строки, похожие на эти ...

<generic-icon name="xx_yada_yada_xx"/>
<icon name="xx_blah_blah_xx"/>

тогда, пожалуйста, отредактируйте их. И, наконец, мы добавим собственную запись имени значка. В этом случае я выбрал значок для iceweasel, но вы можете выбрать свой собственный. Любой значок, который доступен в вашей системе. Так что теперь новый XML-файл выглядит примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="text/html">
    <comment>HTML document</comment>
      .
      .
      .
  <icon name="iceweasel"/>
  </mime-type>
</mime-info> 

А теперь сохраните файл. Теперь, изменив определения локального источника mimetype, мы должны перестроить локальную базу данных mimetypes ...

$ cd ~/.local/share/mime
$ update-mime-database $PWD

Если ~ / .local / share / mime ранее был пуст, то теперь он будет содержать различные файлы базы данных. Таким образом, после перезагрузки вашей системы измененная информация в локальной базе данных mimetype должна переопределить информацию в основной базе данных системы. И, надеюсь, ваши html-иконки в Thunar тоже будут изменены.

Ну вот как я это делаю. Я надеюсь, что это работает для вас. Дополнительную информацию о общей базе данных MIME-info freedesktop.org можно найти здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.