Bonjour,
Roschan a écritça marche raisonnablement bien
Ça marche très bien oui..! 🙂 Merci Roschan.
En fait, ça ne fonctionne pas avec tous les logiciels.

Par exemple, un fichier jpeg va s'ouvrir en désignant gnome-paint, firefox mais pas pinta ni shotwell ; Une vidéo s'ouvre avec mpv mais pas media-info ni handbrake..?!
Les logiciels listés sont ceux que le dialogue par défaut liste comme "recommandés", c'est-à-dire si j'ai bien suivi ceux dont le lanceur (.desktop) liste le type MIME du fichier qu'on cherche à ouvrir, si il y a un problème il viendrait donc probablement de tes lanceurs (par exemple oublier les types MIME est courant quand on en fait des "personnalisés").

Ceci dit il y a plusieurs autres possibilités :
- quand plusieurs fichiers sont sélectionnés, l'extension est beaucoup moins compétente
- si l'application n'ouvre pas les fichiers à partir de leur URI (je pense que c'est ton cas https://raw.githubusercontent.com/HandBrake/HandBrake/b25af79e205c55f9f09b93a88e3f4f7cc18acb8c/gtk/src/fr.handbrake.ghb.desktop il y a un %f au lieu d'un %U donc il n'accepte pas les URI) en fait ces applications sont listées mais plantent, je corrige ça tout de suite
Bonjour,

Merci Roschan
salut Roschan,
toujours intéressant de voir tes scripts 😉

d'abord le bash
tu vérifies deux fois l'existence de deux dossiers puis deux sous dossiers pour créer une arborescence mais...
mkdir -p permet de créer justement des sous dossiers lorsque ceux ci n'existe pas
donc, si tu ne connais pas, à utiliser sans modération !

avec deux / trois optimisations, ça peut donner ça :
#!/bin/bash

if (( $EUID == 0 )); then
    echo "Checking if adequate folders exist..."

    dir_pyt_ext="/usr/share/nautilus-python/extensions"
    if [ ! -d "${dir_pyt_ext}" ]; then
        mkdir -p "${dir_pyt_ext}"
    fi

    echo "Installing plugin files in ${dir_pyt_ext}"
    cp open-with-menu.py "${dir_pyt_ext}/open-with-menu.py"

else
    echo "Checking if adequate folders exist..."

    dir_pyt_ext="$HOME/.local/share/nautilus-python/extensions/"
    if [ ! -d "${dir_pyt_ext}" ]; then
        mkdir -p "${dir_pyt_ext}"
    fi

    echo "Installing plugin files in ${dir_pyt_ext}"
    cp open-with-menu.py "${dir_pyt_ext}/open-with-menu.py"

fi

exit 0
pour le python...
oui pas d’icônes dans le menu et pas de localisation
ça doit bien exister quelque part puis on l'a déjà en localisé : "Ouvrir avec"
sinon, vu le peu de texte, un petit dico fera l'affaire... puis le sortir et le brancher avec le système pour qu'il suive les préférences locales de l'utilisateur...

le menu devrait également être "Set open with"... ou "Définir ouvrir avec…"

ça manque un peu de docstrings mais, comme le code est court, ça va
... je regarde si j'ai des améliorations constructives...
Ah, tu m'apprends un truc avec ce -p, j'ai plus qu'à refaire les scripts de la moitié de mes dépôts github :o

Sinon les icônes, j'ai essayé mais ça n'a pas l'air de marcher comme le dit la documentation donc j'ai abandonné :/

La traduction c'est juste que je m'en fous, il n'y a qu'une chaîne, ce n'est pas gênant
le menu devrait également être "Set open with"... ou "Définir ouvrir avec…"
Là je ne suis pas d'accord, définir l'application avec laquelle devrait s'ouvrir un type de fichier est une opération très différente de ce que fait ce code
ah oui, en effet, je n'avais que survolé la fonctionnalité du code...
tu fais donc la même chose que Ouvrir avec !
ça m"a au moins permis à voir comment faire avec python...
je vais regarder ça de plus près !
5 mois plus tard
Nouvelle version un peu moins crado si ça intéresse quelqu'un