¿Cómo configurar el programa predeterminado para abrir un determinado tipo de archivo en una carpeta determinada?

21

Además de ser un Panda, también soy un artista, hago mis obras de arte principalmente en GIMP y guardo mis imágenes en un determinado directorio de mi computadora. Sin embargo, tengo un pequeño inconveniente porque guardo mis imágenes en jpegformato, sin embargo, el programa predeterminado para abrir jpegs es el Image Viewer, y si lo cambio GIMPpor conveniencia con mi obra de arte, significa que todos los otros jpegs de mi computadora se abren GIMPy No quiero que lo hagan, así que aquí es donde comienza el problema ...

Entonces, me pregunto si hay alguna manera de hacerlo para que todos los jpegs abiertos en ese cierto directorio en mi computadora se abran GIMP, pero todos los otros jpegs en otro lugar se abran en el Image Viewer?

Braiam
fuente
¿Solo para Nautilus / Files o también para xdg-open?
AB
@AB: Diría ambos si eso se puede hacer.
Porque xdg-openen una terminal tendrías que cambiar el tipo MIME de tus imágenes.
AB
O también podría usar el script en mi respuesta con la ruta completa de la imagen.
AB
44
¡Nunca lo use .jpegcomo formato intermedio! Se incurre en pérdida de generación . ¿Por qué no guardas las imágenes como .xcf, que siempre se abren automáticamente con GIMP?
Leftaroundabout

Respuestas:

21

Necesita un desktoparchivo y un script de envoltura:

  1. El desktoparchivo

    • Crea un archivo de escritorio

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Agregue la configuración a continuación (cambie la propiedad para 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;
      
    • Vuelva a colocar useren Exec=/home/user/bin/jpeg-wrapper %fsu nombre de usuario, la salida de

      echo $USER
      
    • Reemplace el nombre del icono Icon=con un nombre o ruta de su elección

    • Se usa MimeType=image/jpegpara especificar los tipos de archivos mime para los que se aplica la decisión. Separe varios tipos de mimos mediante;

      Obtenga el tipo mime a través de

      mimetype your_file
      

      por ejemplo, para un archivo de texto

      text/plain
      
  2. El script de envoltura

    • Crea un nuevo script

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Agregue el código a continuación

      #!/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
    • Cambie my_special_patha su carpeta de ilustraciones . Todas las subcarpetas también se consideran.

    • Cambie open_with_speciala su aplicación especial (p gimp. Ej. )

    • Haga que su script de envoltura sea ejecutable

      chmod +x ~/bin/jpeg-wrapper
      
  3. Reinicie Unity / GNOME Shell, para GNOME Shell, por ejemplo , Alt- F2, escriba ryEnter

  4. Asociar uno o más tipos de archivo con el archivo de escritorio

    • Abra su administrador de archivos y haga clic derecho en un archivo para el cual la decisión es aplicar

    • Hacer clic Properties

    • Activa la pestaña Open With

    • Selecciona la entrada Special or Standard

    • Hacer clic Set as default

  5. Disfrutar ;)

Guión marcado aquí .

AB
fuente
¿Importa a qué cambio el Namevalor?
No, cambia el nombre como quieras.
AB
Además, su script tiene un pequeño problema ... Uhm ... Todos los archivos en mi carpeta de ilustraciones ahora se abren bien en GIMP, y lo mismo para todos los subdirectorios, sin embargo, si un archivo no está en esa área, simplemente no se abre en absoluto.
Déjame chequearlo.
AB
Ok, funciona bien ahora que eliminaste el bucle infinito. ;)