web-dev-qa-db-fra.com

Utiliser une commande personnalisée pour ouvrir des fichiers

L'application gedit est définie comme application par défaut pour les fichiers texte. Supposons que j'ai un script avec des droits d'exécution dans /usr/bin, comment puis-je configurer ce script pour qu'il soit exécuté lorsque j'ouvre un fichier texte à l'aide de Nautilus ou xdg-open?

/usr/bin/foo:

echo "Works!"
gedit $*

Si je fais foo my_text_file, alors le message Works! apparaîtra et gedit s'exécutera. Comment définir ce script foo pour qu'il soit exécuté comme application par défaut?

6
Ionică Bizău

La méthode la plus simple consiste à créer un fichier .desktop pour votre script, puis à en faire l'éditeur de texte par défaut.

  1. Créez un fichier appelé /usr/share/applications/foo.desktop avec le contenu suivant:

    [Desktop Entry]
    Name=foo
    Exec=/usr/bin/foo.sh %U
    Terminal=false
    Type=Application
    MimeType=text/plain;
    
  2. Faites-en le programme par défaut pour le type text/plain:

    xdg-mime default foo.desktop "text/plain" 
    

En tant que sale bidouille, vous pouvez également simplement appeler votre script gedit:

Sudo mv /usr/bin/gedit /usr/bin/gedit.orig
Sudo mv /path/to/yourscript.sh /usr/bin/gedit

Ensuite, faites que votre script appelle l'original:

echo "Works!"
/usr/bin/gedit.original "$@"
9
terdon