如何设置默认程序打开某个文件夹中的某种文件类型?

如何设置默认程序打开某个文件夹中的某种文件类型?

我不仅是 Panda,还是一名艺术家,我的作品大多使用 GIMP 制作,并将图片保存到计算机上的某个目录中。但是,我遇到了一点不便,因为我以jpeg格式保存图像,但是打开jpegs 的默认程序是Image Viewer,如果我GIMP为了方便使用作品而将其更改为 ,则意味着jpeg我计算机上的所有其他 s 都会以 格式打开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 类型;

      通过以下方式获取 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 Shell,例如Alt- F2,输入rEnter

  4. 将一个或多个文件类型与桌面文件关联

    • 打开文件管理器并右键单击要应用决策的文件

    • 点击Properties

    • 激活选项卡Open With

    • 选择条目Special or Standard

    • 点击Set as default

  5. 享受;)

脚本已检查这里

相关内容