Bug 45523

Summary: menulibre ключ Type не найден в desktop-файлах slinux-style
Product: Альт Образование Reporter: igor <igor.bz>
Component: Ошибки работыAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P5    
Version: 10.1   
Hardware: x86_64   
OS: Linux   

Description igor 2023-03-10 11:18:49 MSK
Проблема преимущественно эстетического характера — menulibre пестрит предупреждениями об ошибках разбора "ключ Type не найден", что может вызывать панические настроения у новичков.

Предупреждения по ошибкам разбора связаны с неполным заполнением desktop-файлов, расположенных в /usr/share/slinux-style/applications/. В файлах присутствует всего один атрибут (Hidden), когда по спецификации freedesktop должны присутствовать обязательные атрибуты Type и Name, но на деле достаточно одного атрибута Type=Application.

Ссылка на спецификацию: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys

Если я правильно понимаю рекомендации спецификации, то атрибут Hidden лучше заменить на NoDisplay=true. 

Вариант решения (на вход скрипта передать /usr/share/slinux-style/applications/*.desktop):
#!/usr/bin/env bash

attr="Hidden=true"

for i in $@
do
    if [[ $attr == $(awk '/Hidden/' $i) ]]
    then
        sed -i 's\Hidden=true\NoDisplay=true\; 1 a\Type=Application' $i
    fi
done

exit 0


По итогу все предупреждения об ошибках разбора, связанные с отсутствием Type, будут устранены.