![如何根据文件扩展名而不是 MIME 类型设置默认应用程序?](https://linux22.com/image/1018042/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D%E8%80%8C%E4%B8%8D%E6%98%AF%20MIME%20%E7%B1%BB%E5%9E%8B%E8%AE%BE%E7%BD%AE%E9%BB%98%E8%AE%A4%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我有扩展名为 .txt、.sln 和 .csproj 的文件,它们的 mime 类型均为 text/plain。但它们应该由不同的程序打开。.txt - 由 Vim 打开,.sln 和 .csproj - 由 Rider 打开。我该如何实现这一点?
答案1
这里https://askubuntu.com/a/736954/976481解释了如何根据文件扩展名创建自定义 MIME 类型。我不得不将他们的解决方案更改如下:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/solution">
<comment>Rider solution file</comment>
<glob pattern="*.sln"/>
</mime-type>
</mime-info>
并将此文件作为 rider.xml 添加到 /usr/share/mime/packages。
它确实有效,但看起来仍然像黑客攻击。有没有更简洁的方法来实现这一点?