我想使用xdg-open
打开irc://
链接,如何设置所需的参数?
我想使用xdg-open
打开irc://
链接,如何设置所需的参数?
Answers:
xdg-open基本上只是看您拥有的桌面环境,然后运行gnome-open,gvfs-open,xfce-open等。有关桌面环境的特定说明,请参见下文...
Gnome使用gnome-open程序,该程序使用gconf存储所有内容。例如,在我的运行Ubuntu 10.10的计算机上,运行gnome-open irc:// blah会打开xchat,因为xchat包含一个gconf设置补丁,用于添加irc://处理程序。
这显示了gnome如何使用中的gconf设置来做到这一点/desktop/gnome/url-handlers/
。参见xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
示例。
对于KDE,您应该查看/ usr / share / kde4 / services /中的.protocol文件,为您的新协议创建一个新协议,并将其放在〜/ .kde / share / kde4 / services /中,如果它超级有用的话,那么考虑将其添加到软件包中以作为其他用户的修补程序。
KDE是否使用kde-open或kfmclient取决于可用的软件和KDE的版本。
XFCE使用一个名为exo-open的程序,该程序没有任何配置它或添加uri处理程序的方法。查看源代码可以发现它使用桌面文件来仅指定三种类型的程序。TerminalEmulator,WebBrowser和EmailClient。
使用XFCE4(可能还有其他),可以配置xdg-open来定义自定义协议处理程序。在某些情况下,您必须创建/编辑以下文件:
〜/ .local / share / applications / protocolhandler.desktop〜/ .local / share / applications / mimeapps.list
在stackexchange.com 2上提供了为ed2k协议添加处理程序的示例。
我将用magnet:
URI类型和传输(即痛苦的情况)来描述这一点,但是相同的方法可以应用于任何方案或文件类型。
我也用Debian Jessie进行了检查,实际上我没有Ubuntu机器,但是我相信它应该可以正常工作(至少对于xdg-open来说,请注意文件管理器可能会选择使用不同的逻辑)。
找出MIME类型字符串。 对于文件MIME类型,可以使用file命令找到它:
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
对于上述文件,MIME类型为video/webm
。
对于URI处理程序,类型为x-scheme-handler/<scheme>
,其中
<scheme>
URI是冒号前面的部分,例如“ http”,“ mailto”,“ irc”或“ magnet”。以下是有效的MIME类型的示例:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
找出应用程序.desktop文件的名称。
通常,它与“正式”名称不同,而是小写形式,或者完全不同的名称。已安装的.desktop文件位于/ usr / share / applications下。由于它们是普通的文本文件,并且包含“正式”名称,因此以下命令可以为您提供帮助:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
该命令实际上表示“列出此目录下包含单词'Transmission'的文件”。某些应用程序可能只为用户安装,在这种情况下,路径为
~/.local/share/applications
。
如果您有一个“奇怪的”应用程序,可能根本没有该文件,则可以始终创建一个文件(并可能将其发送给应用程序开发人员)。一种简单的方法是复制一个现有字段,重写您了解的字段,然后删除您不了解的字段。有关详细信息,请参阅 规格。
使用xdg-mime命令进行分配:
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
请注意,无论文件实际位于何处(/usr/share/applications、~/.local/share/applications ...),您始终 仅使用名称,而不使用完整路径。
通常,该命令不会输出任何内容-可以。如果要验证您刚才所做的事情,或者查看当前分配给任何MIME类型的内容而无需打开它:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
注意1:如果要检出其他MIME类型,可以查看/etc/mime.types。它不包含世界上所有的类型;例如URI处理程序,但它可以用于处理关联的“激进”形式。例如:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
将所有已知的视频格式与VLC相关联。
注意2: .desktop文件通常包含它们声称可以使用using MimeType
字段处理的MIME类型列表。 xdg-mime
手册页说,.desktop文件必须声明MIME类型,然后上述命令才能起作用,但是对我来说,即使缺少该字段,它也似乎可以起作用。(我的意思是,将应用关联并启动应用程序-如果它确实可以处理类型则是另一个问题)。我不确定什么是缺点(也许将来xdg-mime的限制会更多)。
xdg-mime query filetype FILE
是XDG查找哑剧类型的方法。2)您也可以自己编辑默认值,以使事情井井有条,并在以后备份它们:.config/mimeapps.list
是文件。
xdg-mime query filetype xyz.wbem
OTOH提供的信息较少,输入的方式更多。
我想将postman
链接与手动安装的Postman应用程序(而不是chrome扩展名)相关联,以便可以从浏览器中打开Postman文档,如下所示:
我想要关联的链接如下所示:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
要进行关联,我执行了以下步骤:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
postman
通过运行以下命令将xdg链接与应用程序相关联:xdg-mime default Postman.desktop x-scheme-handler/postman
如果有人感兴趣,我可以取消此配置:https : //github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml