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

Примітка: даний спосіб був протестований на збірці Arch Linux з XFCE Desktop в Thunar 4.20.4. Також він відмінно працює на Linux Mint.
Альтернативні рішення:
Автор: © Konrad Ravenstone, KR. Laboratories Research

