[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debian 11 - créer une "desktop icon"... simplement



Le 05/03/2023 à 22:57, roger.tarani@free.fr a écrit :
C'est un point accessoire, puisque je livre un programme à un utilisateur qui va l'exploiter en connaissance sur sa machine.
Il fera clic droit "Rendre exécutable", voire chmod +x.
L'installateur copiera automatiquement le pgm dans /usr/local/bin pour permettre un lancement depuis n'importe quel chemin dans un terminal.
Je pourrais envisager un paquet .deb .

Ah d'accord, j'avais pas compris ta demande. Si c'est un programme que tu fait et que tu fournis, en effet il faut trouver une solution.

Je ne pensais pas que ce serait si compliqué avec gnome

Avant tu parlais de xfce, la tu parle de gnome, au final c'est quel bureau sur l'ordi ou tu veux que l'installateur crée une icone sur le bureau ?

Qui a fait ça récemment sur un hôte debian 11 ?

Je suis sous mate et je viens d'essayer.

Clic droit sur le bureau puis "creer un lanceur". Ca m'ouvre une fenetre, je choisis le nom, la commande a executer, l'icone que je veux, je clique sur "ok".

Ca me fait une icone sur le bureau qui execute la commande spécifiée quand je clique dessus.

Je regarde le contenu de ce machin avec cat Bureau/test.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/usr/local/share/icon/test.png
Icon[fr_FR]=test
Name[fr_FR]=test
Exec=/usr/local/bin/test
Name=test

Ce truc est un bete fichier texte, avec le nom qui finit par .desktop ce qui est le standard de freedesktop.org. Il m'appartiens (ben oui, il est sur mon bureau) et il a les droits d'execution.

J'en comprend que si je fais un fichier contenant les bonnes infos et que je le met sur le bureau, ca doit marcher. J'essaye : je fais un fichier retest.desktop contenant :

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/usr/local/share/icon/autretest.png
Icon[fr_FR]=autretest
Name[fr_FR]=retest
Exec=/usr/local/bin/retest
Name=retest

Je l'enregistre sur le bureau, je lui donne les droits d'execution et… ca marche. Comme c'est un truc qui est visiblement fait selon le standard de freedesktop.org, je pense que ca marchera tout aussi bien sur d'autres bureaux (gnome, cinammon, kde, xfce, lxde, etc…). A tester quand meme.

Vu que tu fais un installateur qui copie automatiquement le programme dans /usr/local/bin, ce meme installateur peut tout aussi bien copier un fichier d'icone dans /usr/local/share/icons et un fichier de lanceur sur le bureau, puis changer le proprietaire et donner les droits d'execution pour ce lanceur.

PS : si tu veux faire un lanceur dans le menu aussi, ca se passe dans /usr/local/share/applications. Je te laisse aller voir les fichiers *.desktop qui sont dans /usr/share/applications et t'en inspirer pour faire le tiens.

PS : d'ailleurs, y a-t-il moyen de lancer un pgm en tant que sudoer depuis le le navigateur de fichiers ?
(le menu contextuel ne propose pas ça ; et admin:// dans la barre d'adresse déclenche une demande de pwd sudoer mais n'ajoute pas plus de "exécuter (comme root) dans un menu contextuel)

La ca va beaucoup dépendre du navigateur de fichiers, et comme tu nous dit pas lequel tu utilise c'est une question très floue.

PS2 : dans le fichier retest.desktop sur mon bureau, j'ai modifié la commande a executer, j'ai mis : Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/local/bin/retest Comme ca il me demande le mot de passe administrateur quand je clique sur le lanceur.

PS3: c'est chiant de se trimballer des variables d'environnement a chaque fois qu'on tape pkexec, alors j'ai fait un alias
alias pkexec='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'
dans /etc/bash.bashrc et je m'en soucie plus.


Reply to: