我正在尝试编写一个脚本来启动给定 mime 类型的默认应用程序。例如,我想说my-script text/plain并让它为我打开 KWrite。
我所知道的是,您可以使用 xdg-mime 来查询给定 mime 类型的默认应用程序是什么
$ xdg-mime query default text/plain
org.kde.kwrite.desktop
Run Code Online (Sandbox Code Playgroud)
但是,我不知道可以使用什么命令来启动给定的 KWrite org.kde.kwrite.desktop。我怎样才能做到这一点?是具有桌面文件足够的名称,或者我还需要找出其存储在何处(/usr/share/applications,.local/share/applications,等)?
顺便说一下,我不认为我可以解决我原来的问题,xdg-open因为 XDG open 期望接收文件名或 URL 作为参数,我希望能够启动我的应用程序而无需传递文件名。例如,我希望能够在空白文件缓冲区上打开文本编辑器或在其主页上打开我的 Web 浏览器。
askubuntu.com 上的这个答案涵盖了解决问题的许多不同方法。最接近做我想做的事情的是gtk-launch命令:
gtk-launch org.kde.kwrite.desktop
Run Code Online (Sandbox Code Playgroud)
我喜欢的一件事gtk-launch是,即使您只给它命名,它也可以找到合适的桌面文件。