Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
utilisateurs:j5012:brouillons:mes_desktop_scripts [Le 01/04/2017, 07:02] – les scripts appimage J5012 | utilisateurs:j5012:brouillons:mes_desktop_scripts [Le 05/04/2017, 01:18] (Version actuelle) – ajout de section J5012 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | Les lanceurs de bureau sont des scripts au format Freedesktop avec une extension de fichier masqué, point desktop. | ||
+ | * Ils sont installés dans le chemin système (Path) par apt et localisés à ''/ | ||
+ | * Lorsqu' | ||
+ | |||
+ | Si deux lanceurs de même nom se trouvent dans les deux localisations possibles, c'est la version du dossier personnel qui l' | ||
+ | |||
+ | ===== Prérequis ===== | ||
+ | |||
+ | * Un niveau moyen en Anglais | ||
+ | * Lisez la documentation [[https:// | ||
+ | * Lisez la documentation [[http:// | ||
+ | |||
+ | ===== Problématique des applications Java ===== | ||
+ | |||
+ | exemples pratiques : ancestris et jdownloader2 | ||
+ | * ancestris s' | ||
+ | * jdownloader peut s' | ||
+ | |||
+ | dans les deux cas, des lanceurs de bureau sont fournis et correctement installés | ||
+ | * l'icon ne s' | ||
+ | * l'icon ne s' | ||
+ | |||
+ | lorsqu' | ||
+ | |||
+ | ==== JDownloader2 ==== | ||
+ | |||
+ | Code de programme d'un script de lanceur de bureau qui fonctionne : l'icon lié au programme java s' | ||
+ | |||
+ | < | ||
+ | # | ||
+ | [Desktop Entry] | ||
+ | Type=Application | ||
+ | Name=JDownloader 2 | ||
+ | Exec=$HOME/ | ||
+ | Icon=$HOME/ | ||
+ | Categories=Network; | ||
+ | </ | ||
+ | |||
+ | ==== Ancestris ==== | ||
+ | |||
+ | Code de programme d'un script de lanceur de bureau qui ne fonctionne pas : l'icon lié au programme java ne s' | ||
+ | |||
+ | < | ||
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Name=Ancestris | ||
+ | Name[fr]=Ancestris – Programme de Généalogie | ||
+ | Comment=A graphical viewer and editor genealogy program. | ||
+ | Comment[fr]=Programme de généalogie respectant en tous points la norme gedcom. | ||
+ | Exec=ancestris | ||
+ | Icon=ancestris | ||
+ | Terminal=false | ||
+ | Type=Application | ||
+ | Categories=Office; | ||
+ | </ | ||
+ | |||
+ | Le fichier de configuration du menu pour ancestris, / | ||
+ | < | ||
+ | ? | ||
+ | title=" | ||
+ | icon="/ | ||
+ | </ | ||
+ | |||
+ | Le fichier de script / | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | cd / | ||
+ | sh ancestris " | ||
+ | </ | ||
+ | |||
+ | Le fichier de script java / | ||
+ | < | ||
+ | #!/bin/sh | ||
+ | |||
+ | # | ||
+ | # resolve symlinks | ||
+ | # | ||
+ | |||
+ | PRG=$0 | ||
+ | |||
+ | while [ -h " | ||
+ | ls=`ls -ld " | ||
+ | link=`expr " | ||
+ | if expr " | ||
+ | PRG=" | ||
+ | else | ||
+ | PRG=" | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | progdir=`dirname " | ||
+ | APPNAME=`basename " | ||
+ | |||
+ | if [ -f " | ||
+ | . " | ||
+ | fi | ||
+ | |||
+ | # XXX does not correctly deal with spaces in non-userdir params | ||
+ | args="" | ||
+ | |||
+ | case " | ||
+ | Darwin*) | ||
+ | userdir=" | ||
+ | ;; | ||
+ | *) | ||
+ | userdir=" | ||
+ | ;; | ||
+ | esac | ||
+ | while [ $# -gt 0 ] ; do | ||
+ | case " | ||
+ | --userdir) shift; if [ $# -gt 0 ] ; then userdir=" | ||
+ | ;; | ||
+ | *) args=" | ||
+ | ;; | ||
+ | esac | ||
+ | shift | ||
+ | done | ||
+ | |||
+ | if [ -f " | ||
+ | . " | ||
+ | fi | ||
+ | |||
+ | if [ -n " | ||
+ | # #74333: permit jdkhome to be defined as relative to app dir | ||
+ | jdkhome=" | ||
+ | fi | ||
+ | |||
+ | readClusters() { | ||
+ | if [ -x / | ||
+ | echo=/ | ||
+ | else | ||
+ | echo=echo | ||
+ | fi | ||
+ | while read X; do | ||
+ | if [ " | ||
+ | $echo " | ||
+ | fi | ||
+ | done | ||
+ | } | ||
+ | |||
+ | absolutize_paths() { | ||
+ | while read path; do | ||
+ | if [ -d " | ||
+ | (cd " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | } | ||
+ | |||
+ | clusters=`(cat " | ||
+ | |||
+ | if [ ! -z " | ||
+ | clusters=" | ||
+ | fi | ||
+ | |||
+ | nbexec=`echo " | ||
+ | |||
+ | case " | ||
+ | Darwin*) | ||
+ | eval exec sh '" | ||
+ | --jdkhome '" | ||
+ | -J-Dcom.apple.mrj.application.apple.menu.about.name='" | ||
+ | -J-Xdock: | ||
+ | '" | ||
+ | --clusters '" | ||
+ | --userdir '" | ||
+ | ${default_options} \ | ||
+ | " | ||
+ | ;; | ||
+ | *) | ||
+ | sh=sh | ||
+ | # #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well. | ||
+ | if [ -x /bin/bash ] | ||
+ | then | ||
+ | | ||
+ | fi | ||
+ | eval exec $sh '" | ||
+ | --jdkhome '" | ||
+ | --clusters '" | ||
+ | --userdir '" | ||
+ | ${default_options} \ | ||
+ | " | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | Un code de programme de lanceur de bureau qui fonctionnerait pour ancestris devrait modifier la ligne Exec de façon à pointer directement sur le programme java au lieu de passer par un script qui appelle un script qui appelle .... | ||
+ | < | ||
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Name=Ancestris | ||
+ | Name[fr]=Ancestris – Programme de Généalogie | ||
+ | Comment=A graphical viewer and editor genealogy program. | ||
+ | Comment[fr]=Programme de généalogie respectant en tous points la norme gedcom. | ||
+ | Exec=/ | ||
+ | Icon=/ | ||
+ | Terminal=false | ||
+ | Type=Application | ||
+ | Categories=Office; | ||
+ | </ | ||
+ | |||
+ | ===== Problématique des applications scriptées Appimage ===== | ||
+ | |||
+ | * rendre le script appimage exécutable | ||
+ | * indiquer le chemin complet | ||
+ | |||
+ | ou lancer l' | ||
+ | |||
+ | ==== Exemple avec Krita ==== | ||
+ | |||
+ | < | ||
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Version=1.0 | ||
+ | Type=Application | ||
+ | Name=Krita | ||
+ | Icon=krita.png | ||
+ | Exec=/ | ||
+ | StartupNotify=false | ||
+ | StartupWMClass=krita | ||
+ | OnlyShowIn=Unity; | ||
+ | X-UnityGenerated=true | ||
+ | </ | ||
+ | |||
+ | ==== Exemple avec Avidemux ==== | ||
+ | |||
+ | < | ||
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Version=1.0 | ||
+ | Type=Application | ||
+ | Name=Avidemux | ||
+ | Icon=avidemux3_portable | ||
+ | Exec=/ | ||
+ | StartupNotify=false | ||
+ | StartupWMClass=avidemux3_portable | ||
+ | OnlyShowIn=Unity; | ||
+ | X-UnityGenerated=true | ||
+ | </ | ||
+ | |||
+ | ===== Problématique des lanceurs de Bureau sur le bureau ===== | ||
+ | |||
+ | Dans les précédentes versions de Ubuntu, une commande permettait de creer facilement un lanceur de Bureau sur le bureau ... Actuellement cette commande existe toujours mais est seulement disponible hors-depôt officiel. | ||
+ | |||
+ | Pourtant un mécanisme fort simple et méconnu permet de se substituer à cette commande et à toute application externe de création des raccourcis Freedesktop. | ||
+ | |||
+ | Il suffit pour cela de créer un modéle (ou template en anglais) du fichier lanceur de bureau dans le dossier prédéfini " | ||
+ | |||
+ | * Créez le fichier modèle | ||
+ | < | ||
+ | |||
+ | * Remplissez-le | ||
+ | < | ||
+ | [Desktop Entry] | ||
+ | Version=1.0 | ||
+ | Type=Application | ||
+ | Name=Desktop Laucher | ||
+ | Name[fr_FR]=Lanceur de Bureau | ||
+ | Comment=example template with gedit as application | ||
+ | TryExec=gedit | ||
+ | Exec=gedit | ||
+ | Icon=icon | ||
+ | </ | ||
+ | |||
+ | * Rendez-le exécutable | ||
+ | < | ||
+ | |||
+ | Sur le bureau, pour créer un exemple raccourci lanceur, cliquez droit sur un espace vierge du bureau, dans le menu contextuel, choisissez " | ||
+ | |||
+ | Cliquez deux fois dessus, l' | ||
+ | Si vous choisissez de créer manuellement un raccourci lanceur vous-même, ou de déplacer ou copier un raccourci lanceur existant, n' |