如何告诉 Chrome 如何处理磁力链接?

如何告诉 Chrome 如何处理磁力链接?

现在 Chrome 会将围裙扔到头上并调用 Firefox,后者会使用 rtorrent 打开链接。我需要做什么才能消除 Firefox 步骤?

答案1

Chrome(或 Chromium)协议处理方式与 Firefox 不同。Firefox 基本上会自行跟踪所有内容,因此您可以在偏好设置中的应用程序部分。然而,Chrome 依赖于xdg-open

xdg-open在正确处理磁力链接之前,您需要做几件事。

  1. 找到要处理磁力链接的程序的桌面文件的名称。假设该程序是 Transmission。它(像往常一样)有它的桌面文件,事实上/usr/share/applications/,通过仔细查看目录列表,我发现我的 transmission 版本实际上是 gtk 版本,所以它的桌面文件名为transmission-gtk.desktop

  2. 桌面文件可能已损坏。因此,您可以检查是否/usr/share/applications/transmission-gtk.desktop包含以下行:

    Exec=transmission-gtk %U
    [some lines omitted]
    MimeType=application/x-bittorrent;x-scheme-handler/magnet;
    

    注意%UExec 行中的。这绝对必要。MimeType 行应如上所示。

  3. xdg-open现在来看看使用 Transmission 打开磁力链接的基本步骤。 在终端中输入:

    xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet 
    
  4. 如果您使用 Gnome、KDE、Xfce 或 LXDE,则无需执行此步骤)最后,xdg-open假设您正在运行标准桌面环境之一:gnome、kde、xfce 和 lxde。如果不是,则xdg-open无法使用磁力链接。Arch wiki 上的建议,您可以直接修改/usr/bin/xdg-open。在文件末尾,您会发现以以下内容开头的部分:

    detectDE
    if [ x"$DE" = x"" ]; then
       DE=generic
    

    更改为、、或generic之一。我之所以选择它,是因为我实际上有一个已配置并偶尔使用的 Xfce 会话。 gnomekdexfcelxdexfce

    这种方法的缺点是,如果xdg-open获得更新,您必须重新执行此操作。Arch wiki 建议使用另一种方法避免此缺陷(但也有其缺点)。

    警告:最后一步的选择比看起来更重要。选择lxde对我来说不起作用!在 中xdg-open,辅助函数open_lxde依赖于pcmanfm(lxde 文件管理器),并且 中的代码有问题,open_lxde或者可能是 的pcmanfm错误。

答案2

只需将磁力链接拖入 Transmission 窗口,它就可以正常工作,无需任何调整......我正在使用 Lubuntu 12.10 的原始版本,没什么特别的......

答案3

在 Lubuntu 中使用 qBitorrent 打开 Chrome 中的磁铁效果非常好

xdg-mime 默认 qBittorrent.desktop x-scheme-handler/magnet

答案4

如果你使用 xfce 并且不想弄乱任何东西,你可以使用我的解决方案。我通过手动编辑 xdg-open 来修复它,如下所示:

首先确保你已经关联了 mime(如前所述,使用 xdg-mime)

然后以 root 身份备份 xdg-open(如果适用,请使用 sudo)

# cp /usr/bin/xdg-open /usr/bin/xdg-open.old

最后,以 root 身份编辑 /usr/bin/xdg-open,找到 open_xfce() 并添加标有 + 的行,例如使用 nano

# nano /usr/bin/xdg-open

open_xfce()
+ if [ "\`echo $1 | sed -n 's/\(^[[:alnum:]+\.-]*\):.*$/\1/p'\`" == "magnet" ]; then
+     gnome-open "$1"
+ else
      exo-open "$1"
+ fi

它仅为磁力链接添加了例外,因此它们将使用 gnome-open 而不是 exo-open 打开。

希望能帮助到你。

相关内容