Как автоматически генерировать .desktop файл?

Если я понимаю Ваш вопрос правильно, Вы могли бы сделать что-то как:

wget -qO- 'https://www.gravatar.com/avatar/22e8a29fced165b37995aa5e05e6449b?s=32&d=identicon&r=PG' |
 anytopnm |
 tail -n +4 |
 perl -ne 'BEGIN{$/=\3}
   ($r,$g,$b)=unpack"C3";$ar+=$r;$ag+=$g;$ab+=$b
   END{printf "#%02x%02x%02x\n", $ar/$.,$ag/$.,$ab/$.}'

Который для Вашего аватара (DevNoov avatar) дает: #c350c2 (некоторые светло-красные во время записи).

Это принимает anytopnm всегда возвраты a PNM в P6 формат. Могли бы быть случаи, где это не делает такого как тогда, когда изображение является шкалой полутонов, в этом случае convert - ppm:- от ImageMagick может быть более безопасным.

7
30.10.2015, 18:53
2 ответа

Похоже, все, что вам нужно сделать, это распаковать архив .deb , добавить файл .desktop и перестроить пакет. Это довольно простой процесс. Чтобы извлечь:

dpkg-deb -R package.deb extract_dir

Примечание -R - это необработанный экстракт для получения управляющих файлов. Затем создайте / usr / share / applications / , если он еще не существует:

mkdir -p extract_dir/usr/share/applications/

Затем просто добавьте свой файл .desktop (будьте осторожны, имя не будет конфликтовать с чем-либо еще, что вы, вероятно, установите) и перестроите:

cp desktop_file.desktop extract_dir/usr/share/applications/
dpkg-deb -b extract_dir package_new.deb

Обратите внимание, что вы также можете использовать dpkg-deb -b extract_dir. , чтобы создать пакет с его каноническим именем, но вам, вероятно, придется сначала убрать исходный файл, иначе он будет затерт.

Источники:
6
27.01.2020, 20:18

Если вы создадите этот пакет, вы можете запустить скрипт или выполнить некоторые команды после того, как пользователь его установит. Это использование скрипта оболочки 'postinst', расположенного в папке debian в пакете с исходным кодом. Из него вы можете сгенерировать файл .desktop или сделать что-нибудь ещё.

'postinst': Это обычный скрипт оболочки, содержащий все команды, которые будут выполняется (по порядку) после установки пакета. dpkg будет запустите это автоматически.

Итак, всё, что вам нужно сделать, это создать скрипт оболочки перед упаковкой вашего пакета исходных текстов в двоичный пакет, назвать его 'postinst' и поместить его в каталог debian.Читайте подробнее об этом: [11674]https://askubuntu. com/questions/101962/script-to-only-execute-during-first-install-of-a-package

1
27.01.2020, 20:18

Теги

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