Как разработать модуль YaST, доступный в главном меню YaST?

#!/bin/sh

dir='/'

select name in $( find "$dir" -type d ! -name "$dir" -maxdepth 1 ); do
    if [ -z "$name" ]; then
        echo 'error' >&2
    else
        break
    fi
done

printf 'User picked "%s"\n' "$name"

Это простой сценарий оболочки, который перечисляет каталоги в $dirи предоставляет пользователю меню для выбора одного из них.

Выбранная запись будет сохранена в $name.

Проверка:

$ sh script.sh
 1) /altroot                             7) /root
 2) /bin                                 8) /sbin
 3) /dev                                 9) /tmp
 4) /etc                                10) /usr
 5) /home                               11) /var
 6) /mnt                                12) /tmp_mnt
#? q
error
#? 0
error
#? 9
User picked "/tmp"

Этот сценарий, вероятно, завершится ошибкой, если какое-либо из найденных имен каталогов содержит необычные символы, например символы новой строки.

1
20.11.2019, 17:15
1 ответ

Создайте /usr/share/applications/YaST2/myModule.desktopсо следующим содержимым:

[Desktop Entry]
Type=Application
Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Software;

X-KDE-ModuleType=Library
X-KDE-HasReadOnlyMode=true
X-SuSE-YaST-Call=myModule.ycp

X-SuSE-YaST-Group=Software
X-SuSE-YaST-Argument=
X-SuSE-YaST-RootOnly=true
X-SuSE-YaST-AutoInst=
X-SuSE-YaST-Geometry=
X-SuSE-YaST-SortKey=20
X-SuSE-YaST-AutoInstResource=
X-SuSE-YaST-Keywords=myModule

Icon=yast-sw_single
Exec=xdg-su -c "/sbin/yast2 myModule.ycp"

Name=My module
GenericName=My module that does cool stuff
StartupNotify=true

Ваш модуль должен появиться в категории «Программное обеспечение».

Проверьте файлы.desktop других модулей в /usr/share/applications/YaST2/для вдохновения (, чтобы выбрать соответствующую категорию, значок и т. д.)

1
27.01.2020, 23:40

Теги

Похожие вопросы