制作与文件大小相关的编辑器(针对相同的 mimetype)

制作与文件大小相关的编辑器(针对相同的 mimetype)

我的驱动器中有一些非常大的数据文件。我的默认编辑器是 gedit。我想知道是否可以将我的默认编辑器更改为其他编辑器,例如 glogg,用于处理超过特定大小阈值的文件。也就是说,我可以根据文件大小选择默认应用程序,即使文件格式相同?

答案1

您需要一个desktop文件和一个包装脚本:

  1. 文件desktop

    • 创建桌面文件

      nano ~/.local/share/applications/wrapper.desktop
      
    • 添加下面的配置

      [Desktop Entry]
      Name=File size dependent editor
      Comment=File size dependent editor
      Exec=/home/user/bin/wrapper %f
      Icon=gedit
      Terminal=false
      Type=Application
      Categories=Editor;
      StartupNotify=true
      MimeType=text/plain;
      
    • user用你的用户名替换Exec=/home/user/bin/wrapper %f,输出

      echo $USER
      
    • Icon=gedit用您选择的名称或路径替换图标名称

    • 用于MimeType=text/plain指定要应用该决策的文件的 MIME 类型。通过以下方式分隔多个 MIME 类型;

      通过以下方式获取 mime 类型

      mimetype your_file
      

      例如文本文件

      text/plain
      
    • 如果你想使用带有 CLI 的编辑器(如 nano),则将其false替换Terminal=falsetrue

  2. 包装器脚本

    • 创建新脚本

      mkdir -p ~/bin
      nano ~/bin/wrapper
      
    • 添加以下代码

      #!/usr/bin/env bash
      LARGE_FILE_EDITOR="glogg"
      SMALL_FILE_EDITOR="gedit"
      
      MAX_SMALL_FILE_SIZE=1000000
      
      FILESIZE=$(stat -c%s "$1")
      
      if [ "$FILESIZE" -le $MAX_SMALL_FILE_SIZE ]; then
              "$SMALL_FILE_EDITOR" "$1"
      else
              "$LARGE_FILE_EDITOR" "$1"
      fi
      exit 0
      
    • 定义大文件编辑器LARGE_FILE_EDITOR,例如glogg

    • 定义小文件编辑器SMALL_FILE_EDITOR,例如gedit

    • $SMALL_FILE_EDITOR定义文件的最大大小MAX_SMALL_FILE_SIZE,例如 1000000 表示 1MB

    • 使包装脚本可执行

      chmod +x ~/bin/wrapper
      
  3. 重新启动 Unity/GNOME Shell,对于 GNOME Shell,例如Alt- F2,输入rEnter

  4. 将一个或多个文件类型与包装器关联

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

    • 点击Open With Other Application

    • 点击按钮View All Applications

    • 选择条目File size dependent editor

  5. 享受;)

相关内容