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

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

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

1 ответ

Решение

Тебе необходимо 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 и введите

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

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

    • Нажмите Свойства

    • Активировать вкладку Открыть с помощью

    • Выберите запись Специальная или Стандартная

    • Нажмите Установить по умолчанию

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

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

Другие вопросы по тегам