MyTetra Share
Делитесь знаниями!
Почему не виден ярлык на рабочем столе Astra Linux 1.6 Update 10?
Время создания: 07.07.2022 13:53
Автор: xintrea
Текстовые метки: linux, astra, fly, рабочий стол, ярлык, иконка, не виден, не появляется, целостность, desktop
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1657191227v74ds5k6de/text.html на raw.github.com

Недавно столкнулся с недокументированными особенностями Desktop Enviroment (DE) Fly, которые влияют на видимость иконки, размещаемой на рабочем столе. Как оказалось, причин того, что иконка не видна может быть несколько. Здесь перечислены те, которые были обнаружены.


Для понимания: иконка - это *.desktop-файл, который размещается в каталоге ~/Desktops/Desktop1 (1 - значит для первого рабочего стола, всего доступно 4 рабочих столов).


Примечание: возможно, данные ограничения актуальны только если в системе активирован контроль целостности.



1. Ограничение на регистр символов в имени файла иконки


Да, это может показаться странным, но большие буквы в имени иконки недопустимы. Да, это особенность проявляется даже на файловой системе Ext3/Ext4. Если кто-то привык давать имена файлов в верблюжьем регистре, то он должен знать, что такой прием недопустим для имен *.desktop - файлов. Нужны только маленькие буквы. Если необходимо разделять слова, то можно пользоваться знаком минус "-".



OurMegaStation.desktop - нельзя

ourMegaStation.desktop - нельзя

our-mega-station.desktop - можно



Если имя файла будет содержать недопустимый символ, такая иконка не будет отображаться на рабочем столе.



2. Иконка приложения должна указывать на реальную программу


Если в коде иконки указано, что иконка является иконкой запуска приложения:



Type=Application



... тогда свойство Exec обязательно должно указывать на существующий исполняемый файл, и данный файл должен иметь атрибуты, разрешающие его исполнение:



Exec=/opt/megaApplication/run.sh



В данном случае файл /opt/megaApplication/run.sh должен существовать, а его права должны позволять его запустить под текущим пользователем. Если эти условия нарушены, иконка на рабочем столе не будет видна.


В случае, если нужно сконфигурировать рабочий стол иконками, когда файлов для исполнения еще просто нет (обычное дело для разработки), то для иконок-пустышек в поле Exec можно указывать какие-нибудь системные программы, например /bin/ls, а когда нужные бинарники появятся, заменить эти значения на реальные.


В более старых версиях Astra Linux сокрытие иконки, которая указывает на несуществующий файл, происходило только при активации режима контроля целостности.



3. Иконка не должна быть скрыта


В коде иконки допустимо использовать поле Hidden. Чтобы иконка была видна, Hidden должно иметь значение "ложь":



Hidden=false



Данное поле, видимо, необходимо для того, чтобы была возможность временно скрывать иконку на рабочем столе, выставляя его значение в "истина" (true). Однако, помимо этого поля еще есть поле NoDisplay:



NoDisplay=false



Его применение полностью аналогично полю Hidden. Зачем сделано два разных поля с одинаковым действием - непонятно. Но что есть, то есть. Поэтому чтобы однозначно увидеть или скрыть иконку, нужно оба этих свойства выставлять в нужное значение.


Работа полей Hidden и NoDisplay не зависит от того, включен контроль целостности или нет.



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования