Как настроить программу по умолчанию для открытия файлов определенного типа в определенной папке?


21

Помимо того, что я панда, я также художник, я делаю свои работы в основном в GIMP и сохраняю свои фотографии в определенном каталоге на моем компьютере. Тем не менее, у меня есть небольшое неудобство, потому что я сохраняю свои изображения в jpegформате, однако программа по умолчанию, открывающая jpegs, - это Image Viewer, и если я изменяю ее GIMPдля удобства с моими рисунками, это означает, что все остальные jpegфайлы на моем компьютере открываются GIMP, и Я не хочу их, так что это, где начинается проблема ...

Поэтому мне интересно, есть ли способ сделать так, чтобы все jpegоткрытые в этом определенном каталоге на моем компьютере открывались GIMP, а все остальные в jpegдругом месте открывались в Image Viewer?


Только для Наутилус / Файлы или также для xdg-open?
AB

@AB: Я бы сказал, если это можно сделать.

Ведь xdg-openв терминале вам нужно изменить тип изображения ваших миме.
AB

Или вы можете также использовать сценарий в моем ответе с полным путем изображения.
AB

4
Никогда не используйте .jpegв качестве промежуточного формата! Это влечет за собой потерю поколений . Почему бы вам просто не сохранить изображения как .xcf, которые всегда автоматически открываются с помощью GIMP?
оставил около

Ответы:


21

Вам нужен desktopфайл и скрипт-обёртка:

  1. desktopфайл

    • Создать файл рабочего стола

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Добавьте конфигурацию ниже (измените свойство на 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;
      
    • Замените userна Exec=/home/user/bin/jpeg-wrapper %fваше имя пользователя, вывод

      echo $USER
      
    • Замените имя значка Icon=на имя или путь по вашему выбору

    • Используется MimeType=image/jpegдля указания типов файлов MIME, для которых будет применяться решение. Разделите несколько типов пантомимы с помощью;

      Получить тип MIME через

      mimetype your_file
      

      например, для текстового файла

      text/plain
      
  2. Скрипт оболочки

    • Создать новый скрипт

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Добавьте код ниже

      #!/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
    • Изменение my_special_pathв вашу работе папку. Все подпапки также учитываются.

    • Перейдите open_with_specialв свое специальное приложение (например gimp)

    • Сделайте ваш скрипт-скрипт исполняемым

      chmod +x ~/bin/jpeg-wrapper
      
  3. Перезапустите Unity / GNOME Shell, для оболочки GNOME, например Alt- F2, введите rиEnter

  4. Свяжите один или несколько типов файлов с файлом рабочего стола

    • Откройте ваш файловый менеджер и щелкните правой кнопкой мыши на файле, к которому будет применяться решение

    • щелчок Properties

    • Активировать вкладку Open With

    • Выберите запись Special or Standard

    • щелчок Set as default

  5. Наслаждайтесь ;)

Сценарий проверен здесь .


Имеет ли значение, на что я меняю Nameзначение?

Нет, измените имя как хотите.
AB

Кроме того, у вашего скрипта есть небольшая проблема ... Хм ... Все файлы в моей папке с обложками теперь нормально открываются в GIMP, и то же самое для всех подкаталогов, однако, если файл не находится в этой области, он просто не открывается вообще.

Позволь мне проверить.
AB

Хорошо, теперь все работает нормально, когда вы удалили бесконечный цикл. ;)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.