当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

作为 Pandas ,我也是一名艺术家,我主要在 GIMP 中制作我的作品,并将我的图片保存到我电脑上的某个目录中。但是我有点不便,因为我将图像保存为 jpeg 格式,但是打开 jpeg s 的默认程序是 Image Viewer ,如果为了方便我的作品而将其更改为 GIMP ,这意味着我的所有其他 jpeg s计算机在 GIMP 中打开,我不希望他们这样做,所以这就是问题开始的地方……

因此,我想知道是否有任何方法可以使在我计算机上的某个目录中打开的所有 jpeg 都在 GIMP 中打开,而其他所有其他 jpegImage Viewer 中打开?

最佳思路

您需要一个 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;
      
    • Exec=/home/user/bin/jpeg-wrapper %f 中的 user 替换为您的用户名,输出

      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,例如AltF2 ,类型 rEnter

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

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

    • 点击 Properties

    • 激活选项卡 Open With

    • 选择条目 Special or Standard

    • 点击 Set as default

  5. 享受 😉

脚本检查 here

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12646.html,未经允许,请勿转载。