Прочитал интернет-статьи по этому вопросу и увидел, что этой проблеме более 2х лет в XFCE и она не решилась до сих пор.
Вот хороший рабочий "костыль" (сам проверил): (оригинал статьи на английском тут:
https://forum.xfce.org/viewtopic.php?id=7597 )
1) -----------------------------------------------------------------------
Создаем скрипт iconlockset.sh в какой нибудь папке (например scripts) в каталоге пользователя (см. ниже в блоке кода)
в этом же каталоге (или любом) создаем папку icons и создаем (или копируем и переименовываем) две иконки там
icon-lock.png
icon-unlock.png
В скрипте переписываем путь к файлам иконок под свой (там по умолчанию папка Linux_stuff/Icons)
#!/bin/bash
if grep -q "LockStatus=Locked" "/home/xxx/Desktop/IconLockSet.desktop"; then
echo "It is Locked...we will Unlock it"
sudo chattr -i ~/.config/xfce4/desktop/icons*
sed '/Icon=/ c\Icon=\/home\/xxx\/Linux_stuff\/Icons\/icon-unlock.png' < /home/xxx/Desktop/IconLockSet.desktop > /home/xxx/Desktop/tmp.desktop
rm /home/xxx/Desktop/IconLockSet.desktop
sed '/LockStatus=/ c\LockStatus=Unlocked' < /home/xxx/Desktop/tmp.desktop > /home/xxx/Desktop/IconLockSet.desktop
rm /home/xxx/Desktop/tmp.desktop
else
if grep -q "LockStatus=Unlocked" "/home/xxx/Desktop/IconLockSet.desktop"; then
echo "It is UnLocked...we will Lock it"
sed '/Icon=/ c\Icon=\/home\/xxx\/Linux_stuff\/Icons\/icon-lock.png' < /home/xxx/Desktop/IconLockSet.desktop > /home/xxx/Desktop/tmp.desktop
rm /home/xxx/Desktop/IconLockSet.desktop
sed '/LockStatus=/ c\LockStatus=Locked' < /home/xxx/Desktop/tmp.desktop > /home/xxx/Desktop/IconLockSet.desktop
rm /home/xxx/Desktop/tmp.desktop
sudo chattr +i ~/.config/xfce4/desktop/icons*
fi
fi
в этом скрипте меняем "ххх" на свое имя пользователя.
Делаем скрипт исполняемым (sudo chmod +x iconlockset.sh)
2) -----------------------------------------------------------------------
на рабочем столе (если он по английски пишется Desktop, иначе переделываем в скрипте путь к рабочему столу) создаем ярлык
IconLockSet.desktop название обязательно такое, под другое название переделайте скрипт, указанный выше в тексте.
[Desktop Entry]
Version=1.0
Type=Application
Name=IconLockSet
Comment=
Exec=/home/xxx/scripts/iconlockset.sh
Icon=/home/xxx/scripts/icons/icon-lock.png
Path=/home/xxx/Desktop
Terminal=true
StartupNotify=false
LockStatus=Locked
GenericName=
3) -----------------------------------------------------------------------
Создаем скрипт перезагрузки рабочего стола при запуске XFCE
название: reloaddesktop.sh
#!/bin/sh
sleep 13
xfdesktop --reload
p.s.: если на рабочем столе много иконок и ПК медленный, то число 13 заменить на 20 или 30
делаем скрипт исполняемым (sudo chmod +x reloaddesktop.sh)
добавляем скрипт в автозагрузку XFCE (например открываем меню настройки - сеансы и запуск - автозагрузка и добавляем туда 2й наш скрипт
ВСЕ!
P.S.: основной скрипт у меня работает немного странно (не меняет иконки файла), поэтому я его положил прямо в домашнюю папку и на нижней панели XFCE добавил кнопку запуска прямо на наш 1й скрипт. Выводы echo переименовал для себя на русском языке.
Работа скрипта:
запускаем.
пишет что иконки заблокированы...
вводим пароль и окошко консоли закрывается
перемещаем иконки на рабочем столе как нам надо
запускаем снова скрипт
пишет что иконки разблокированы...
вводим пароль и готово. После перезагрузки все иконки на месте!