使用特定程序打开任何文件?

使用特定程序打开任何文件?

我想设置一个默认的特定程序来打开任何文件,绝对任何文件(*.*),任何扩展名,任何 MIME 类型。绝对所有

我建立了一个python程序来自动为任何文件选择程序。app-chooser.py内容:

#!/usr/bin/python
import sys, os, os.path
filename = sys.argv[1];
extension = os.path.splitext(filename)[1];

if extension == "txt":
  os.system("gedit " + filename);

if extension == "mp4":
  os.system("vlc " + filename);

if extension == "html":
  os.system("opera " + filename);

if extension == ".py":
  os.system("python " + filename);

if extension == ".sh":
  os.system("bash " + filename);

if extension == ".exe":
  os.system("wine " + filename);

exit()

app-chooser.py 在独立的 Linux 可执行文件中编译,位于“/usr/bin/app-chooser”。

答案1

你可以为你的程序定义一个新的 mimetype:

  1. 创建一个文件,例如~/.local/share/mime/packages/application-x-app-chooser.xml包含以下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
        <mime-type type="application/x-app-chooser">
            <comment>mime type matching all files with an extension</comment>
            <icon name="application-x-app-chooser"/>
            <glob-deleteall/>
            <glob pattern="*.*"/>
        </mime-type>
    </mime-info>
    
  2. 更新 MIME 数据库:

    update-mime-database ~/.local/share/mime
    
  3. 设置.desktop用于打开匹配文件的文件:

    xdg-mime default /path/to/file.desktop application-x-app-chooser
    

使用~/.local/share/mime将其安装为用户特定的 mime 类型,将此路径替换/usr/share/mime为系统范围的安装。

相关内容