Wie kann man das Standardprogramm so einstellen, dass ein bestimmter Dateityp in einem bestimmten Ordner geöffnet wird?

21

Ich bin nicht nur ein Panda, sondern auch ein Künstler. Ich erstelle meine Kunstwerke hauptsächlich in GIMP und speichere meine Bilder in einem bestimmten Verzeichnis auf meinem Computer. Ich habe jedoch leichte Unannehmlichkeiten, da ich meine Bilder im jpegFormat speichere. Das Standardprogramm zum Öffnen von jpegs ist jedoch das Image Viewer. Wenn ich es GIMPaus Gründen der Benutzerfreundlichkeit für meine Grafiken ändere , bedeutet dies, dass alle anderen jpegs auf meinem Computer in GIMPund geöffnet werden Ich möchte nicht, dass sie das tun. Hier beginnt das Problem ...

Ich frage mich also, ob es eine Möglichkeit gibt, es so zu gestalten, dass alle jpegin diesem bestimmten Verzeichnis auf meinem Computer geöffnet werden GIMP, alle anderen an jpeganderer Stelle jedoch in der geöffnet werden Image Viewer.

Braiam
quelle
Nur für Nautilus / Files oder auch für xdg-open?
AB
@AB: Ich würde beides sagen, wenn das geht.
Denn xdg-openin einem Terminal müssten Sie den Mimetyp Ihrer Bilder ändern.
AB
Oder Sie können auch das Skript in meiner Antwort mit dem vollständigen Bildpfad verwenden.
AB
4
Niemals .jpegals Zwischenformat verwenden! Es entsteht ein Generationsverlust . Warum speichern Sie die Bilder nicht einfach als .xcf, was immer automatisch mit GIMP geöffnet wird?
Linksabfahrt

Antworten:

21

Sie benötigen eine desktopDatei und ein Wrapper-Skript:

  1. Die desktopDatei

    • Erstellen Sie eine Desktop-Datei

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Fügen Sie die Konfiguration unten hinzu (ändern Sie die Eigenschaft für 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;
      
    • Ersetzen Sie userin Exec=/home/user/bin/jpeg-wrapper %fmit Ihrem Benutzernamen die Ausgabe von

      echo $USER
      
    • Ersetzen Sie den Symbolnamen Icon=durch einen Namen oder Pfad Ihrer Wahl

    • Verwenden Sie MimeType=image/jpegdiese Option, um die MIME-Dateitypen anzugeben, für die die Entscheidung gilt. Trennen Sie mehrere MIME-Typen über;

      Holen Sie sich den MIME-Typ über

      mimetype your_file
      

      zB für eine Textdatei

      text/plain
      
  2. Das Wrapper-Skript

    • Erstellen Sie ein neues Skript

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Fügen Sie den folgenden Code hinzu

      #!/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
    • Ändern Sie my_special_pathzu Ihrem Kunstwerk Ordner. Alle Unterordner werden ebenfalls berücksichtigt.

    • Wechseln Sie open_with_specialzu Ihrer speziellen Anwendung (zB gimp)

    • Machen Sie Ihr Wrapper-Skript ausführbar

      chmod +x ~/bin/jpeg-wrapper
      
  3. Restart Unity / GNOME Shell, für die GNOME Shell zB Alt- F2, Art rundEnter

  4. Ordnen Sie der Desktop-Datei einen oder mehrere Dateitypen zu

    • Öffnen Sie Ihren Dateimanager und klicken Sie mit der rechten Maustaste auf eine Datei, für die Sie sich bewerben möchten

    • Klicken Properties

    • Aktivieren Sie die Registerkarte Open With

    • Wählen Sie den Eintrag aus Special or Standard

    • Klicken Set as default

  5. Genießen ;)

Skript hier überprüft .

AB
quelle
Ist es wichtig, auf was ich den NameWert ändere ?
Nein, ändern Sie den Namen, wie Sie möchten.
AB
Außerdem hat Ihr Skript ein kleines Problem ... Ähm ... Alle Dateien in meinem Grafikordner werden jetzt in GIMP problemlos geöffnet, und dies gilt auch für alle Unterverzeichnisse. Befindet sich eine Datei jedoch nicht in diesem Bereich, wird sie einfach nicht geöffnet überhaupt.
Lass mich nachschauen.
AB
Ok, es funktioniert nun gut, da Sie die Endlosschleife entfernt haben. ;)