根据 MIME 类型关联
① 查看文件 MIME 类型
xdg-mime query filetype
# 或者
mimetype
# 或者
file -i
② 查询打开某类文件的默认程序
gio mime
# 或者
xdg-mime query default
③ 设置打开某类文件的默认程序
gio mime
# 或者
mimeopen -d
# 或者
xdg-mime default
④ 使用示例
$ choi@lanseyujie:~/Desktop$ xdg-mime query filetype Complete\_NGINX\_Cookbook.pdf
application/pdf
$ choi@lanseyujie:~/Desktop$ gio mime application/pdf
Default application for “application/pdf”: foxitreader.desktop
已注册的应用程序:
foxitreader.desktop
gimp.desktop
krita_pdf.desktop
display-im6.q16.desktop
推荐的应用程序:
foxitreader.desktop
gimp.desktop
krita_pdf.desktop
display-im6.q16.desktop
$ choi@lanseyujie:~/Desktop$ gio mime application/pdf foxitreader.desktop
Set foxitreader.desktop as the default for application/pdf
根据后缀名关联
① 创建新的 MIME 类型,此处以为 .tvs 文件为例,.tvs 是 TeamViewer 的录制的视频文件(当然了这个仅仅是演示,目前的 TeamViewer 被唤起后并不能主动播放文件),使用 mimetype 命令查看得知其本质为 text/plain 类型,需要为其设置新的 MIME 类型以便进行关联。
cd ~/.local/share/mime/packages
nano application-x-tvs.xml
# 写入如下内容
TeamViewer Screen Record
# 更新 MIME 数据库
update-mime-database ~/.local/share/mime
② 创建关联的应用程序启动图标
如果没有启动图标,推荐使用 menulibre 来辅助创建,参考《Deepin常见问题及优化技巧》中的 启动器菜单编辑 一节进行安装。
③ 关联默认使用的程序
nano ~/.config/mimeapps.list
[Added Associations]
application/x-tvs=com.teamviewer.TeamViewer.desktop;
④ 关联文件类型图标
将图标命名为 application-x-tvs 按不同尺寸放在 ~/.local/share/icons/hicolor/mimetypes// 或 /usr/share/icons/hicolor//mimetypes/ 文件夹里重启一下 dde-desktop 进程即可生效。
killall dde-desktop