web-dev-qa-db-fra.com

Comment configurer le programme par défaut pour ouvrir un certain type de fichier dans un certain dossier?

En plus d’être un panda, je suis aussi un artiste, mais je réalise mes œuvres principalement dans GIMP et enregistre mes images dans un répertoire particulier de mon ordinateur. Cependant, j'ai un léger inconvénient parce que j'enregistre mes images au format jpeg, mais le programme par défaut pour ouvrir jpegs est le Image Viewer, et si je le change en GIMP pour Avec mon travail, cela signifie que tous les autres jpeg de mon ordinateur sont ouverts dans GIMP, et je ne le souhaite pas, alors c’est là que le problème commence ...

Je me demande donc s’il est possible de faire en sorte que toutes les jpegs ouvertes dans ce répertoire de mon ordinateur s’ouvrent dans GIMP, mais que toutes les autres jpegs ouvrent ailleurs dans la Image Viewer?

21
user364819

Vous avez besoin d’un fichier desktop et d’un script de wrapper:

  1. Le fichier desktop

    • Créer un fichier de bureau

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Ajoutez la configuration ci-dessous (changez la propriété pour Name)

      [Desktop Entry]
      Name=Special or Standard
      Comment=Open a JPEG depending of the path
      Exec=/home/user/bin/jpeg-wrapper %f
      Icon=
      Terminal=false
      Type=Application
      Categories=Editor;
      StartupNotify=true
      MimeType=image/jpeg;
      
    • Remplacez user dans Exec=/home/user/bin/jpeg-wrapper %f par votre nom d’utilisateur, le résultat de

      echo $USER
      
    • Remplacez le nom de l'icône dans Icon= par un nom ou un chemin d'accès de votre choix.

    • Utilisez MimeType=image/jpeg pour spécifier les types de fichiers MIME pour lesquels la décision doit s’appliquer. Séparez plusieurs types de mime via ;

      Obtenez le type de mime via

      mimetype your_file
      

      par exemple. pour un fichier texte

      text/plain
      
  2. Le script wrapper

    • Créer un nouveau script

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Ajoutez le code ci-dessous

      #!/usr/bin/env bash
      image_path=$(dirname "$1")
      my_special_path="$HOME/tmp"
      open_with_special="gimp"
      open_with_standard="eog"
      
      if [[ $(mimetype -b "$1") == "image/jpeg" ]] && [[ "$image_path" == "$my_special_path"* ]]; then
              "$open_with_special" "$1"
      else
              "$open_with_standard" "$1"
      fi
      
    • Remplacez my_special_path par votre dossier d'illustrations . Tous les sous-dossiers sont également pris en compte.

    • Remplacez open_with_special par votre application spéciale (par exemple, gimp).

    • Rendez votre script wrapper exécutable

      chmod +x ~/bin/jpeg-wrapper
      
  3. Redémarrez Shell Unity/GNOME pour le shell GNOME, par exemple. Alt-F2, tapez r et Enter

  4. Associer un ou plusieurs types de fichiers au fichier de bureau

    • Ouvrez votre gestionnaire de fichiers et cliquez avec le bouton droit de la souris sur un fichier pour lequel vous souhaitez décider.

    • Cliquez sur Properties

    • Activer l'onglet Open With

    • Sélectionnez l'entrée Special or Standard

    • Cliquez sur Set as default

  5. Enjoy ;)

Script vérifié ici .

21
A.B.