How change icons for folders in Thunar on XFCE

Як змінити іконки папок в файловому менеджері Thunar на XFCE?

Thunar – файловий менеджер Linux в десктопному середовищі XFCE. Проблема з якою я стикнувся полягала у неможливості задати кастомну іконку для тої чи іншої папки стандартними засобами. Через контекстне меню Thunar передбачає лише підсвітку кольором та емблеми, які з’являться поряд зі значком. На жаль, вбудованої функції зміни іконки, як це реалізовано у відомому файловому менеджері Nautilus, в Thunar відсутня. Тому довелося шукати кастомне рішення. І я його знайшов. Нижче покрокова інструкція. Подяка лінуксоїду NM64 за ідею.

1) Переходимо в root й створюємо новий файл folder-thumbnailer в папці /usr/bin з наступним змістом:

#!/bin/bash
size="$1"
folder_path="$2"
output="$3"
uri="$4"

# Список можливих файлів-іконок
icons=(
    "\$ folder.png" ".\\$ folder.png" "folder.png" ".folder.png"
    "\$ folder.jpeg" ".\\$ folder.jpeg" "folder.jpeg" ".folder.jpeg" 
    "\$ folder.jpg" ".\\$ folder.jpg" "folder.jpg" ".folder.jpg"
)

# Шукаємо перший існуючий файл
for icon in "${icons[@]}"; do
    if [[ -f "$folder_path/$icon" ]]; then
        convert -thumbnail "$size" "$folder_path/$icon" "$output" 2>/dev/null && exit 0
    fi
done

# Якщо іконка не знайдена, видаляємо кеш
cache_files=(
    "$HOME/.cache/thumbnails/normal/$(echo -n "$uri" | md5sum | cut -d " " -f1).png"
    "$HOME/.thumbnails/normal/$(echo -n "$uri" | md5sum | cut -d " " -f1).png"
    "$HOME/.cache/thumbnails/large/$(echo -n "$uri" | md5sum | cut -d " " -f1).png"
    "$HOME/.thumbnails/large/$(echo -n "$uri" | md5sum | cut -d " " -f1).png"
)

for cache_file in "${cache_files[@]}"; do
    [[ -f "$cache_file" ]] && rm -f "$cache_file"
done

exit 1

Задайте йому права на виконання: chmod +x folder-thumbnailer

2) Тепер необхідно створити ще один файл folder.thumbnailer в папці /usr/share/thumbnailers:

[Thumbnailer Entry]
Version=1.0
Encoding=UTF-8
Type=X-Thumbnailer
Name=Folder Thumbnailer
MimeType=inode/directory;
Exec=/usr/bin/folder-thumbnailer %s %i %o %u

Задаємо йому права на виконання: chmod +x folder.thumbnailer

3) Встановлюємо системний пакет imagemagick:

Ubuntu/Debian

sudo apt install imagemagick

Arch Linux

sudo pacman -S imagemagick

magick --version

4) Перезавантажуємо систему. Переходимо в папку, де потрібно змінити іконку, вставляємо будь-яку іконку в форматі png/jpg і просто задаємо ім’я folder, наприклад folder.png.

ЧИТАЙТЕ ТАКОЖ:  Куди тікає трафік? Моніторинг споживання інтернету в Linux

Перезапускаємо Thunar і тішимся результату: іконка повинна оновитися! Таким чином можна змінити іконку будь-якої папки. Корисно, якщо у вас колекція каталогів.

How change icons folders in Thunar
Приклад змінених іконок в Thunar

Примітка: даний спосіб був протестований на збірці Arch Linux з XFCE Desktop в Thunar 4.20.4. Також він відмінно працює на Linux Mint.

Альтернативні рішення:

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Поштові сервери сьогодні використовуються повсюдно для різних задач. Епоха, коли…