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


67

现在,Chrome将其围裙扔到头上,并调用Firefox,后者打开了与rtorrent的链接。我需要做什么来消除Firefox步骤?


您正在运行哪个版本的Google chrome?google-chrome -version
阿尔瓦(Alvar)2012年

当将Firefox设置为默认浏览器时,这发生在我身上(在Ubuntu 14.04.2 LTS上)。如果将Chromium设置为默认浏览器,那么Chromium中只会出现一个新的空白标签。-最后,我/usr/bin/xdg-open按照“ 洪流磁力链接打开新窗口,但不传送 ” 的可接受答案中的建议打补丁,解决了问题。
zrajm

Answers:


90

Chrome(或Chromium)协议的处理方式与Firefox不同。Firefox基本上会对其本身进行跟踪,这就是为什么您可以在PreferencesApplications部分中配置协议处理(如磁链)的原因。但是,Chrome依靠xdg-open

您需要做几件事,才能xdg-open正确处理磁链。

  1. 找到要处理磁铁链接的程序的桌面文件名。假设程序是Transmission。它(像往常一样)具有其桌面文件,/usr/share/applications/并且实际上,通过仔细阅读目录列表,我发现我的传输版本实际上是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;
    

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

  3. 现在是告知xdg-open使用“变速箱”打开磁铁链接的基本步骤。 在终端中,键入:

    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到之一gnomekdexfce,或lxde。我之所以选择它,是xfce因为我实际上已经配置并偶尔使用过一个Xfce会话。

    这种方法的缺点是,如果要xdg-open获取更新,则必须重做。Arch Wiki建议了另一种避免此缺陷的方法(但有其缺点)。

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


7
谢谢!我只是做了一个xdg-mime default deluge.desktop x-scheme-handler/magnet将其与Deluge关联。
贾斯汀原力

1
我有一个(可能)相关的问题。我已经尝试过您的解决方案,但是没有用。
Quinn Culver

2
当专家们更不用说菜鸟无法使Linux运转时,Linux如何成功。我每天都偏爱使用Linux,但是桌面体验还不够好。祝SteamOS好运。
Sam Watkins 2013年

2
还想对您的回答表示感谢,效果很好。由于我使用MATE而不是GNOME Linux Mint的,我所要做的步骤4。奇怪的是,mate没有工作(我本来期望,因为我跑MATE),但gnome做到了。
machineghost 2014年

1
@machineghost感谢您的评论:我也在MATE上,这个答案+您的评论为我排序。
Max Williams

6

只需将磁铁链接拖动到“传输”窗口中,它对我来说就可以正常工作,而无任何调整。


这是另一种方法,我喜欢它。但是,当磁链自动打开时,它并不能解决问题;当传输尚未运行时,它需要很多用户交互(点击)。
JoelSjögren'13年

2

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

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


1

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

首先,确保您具有关联的mime(如前所述,与xdg-mime关联)

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

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

最后,以根目录/ 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来打开。

希望能帮助到你。


1

我发现没有其他建议对我有用,但这在Debian / Xfce(来自http://fluxcode.net/archives/57)下成功了:

在/ usr / bin / xdg-open中,将以下行添加到open_xfce()

open_xfce()
{
 if(echo "$1" | grep -q '^magnet:'); then
    transmission-gtk "$1" 
    if [ $? -eq 0 ]; then
       exit_success
    fi
 fi

exo-open "$1"


0

在XFCE上使用gnome-open对我有效。

这可以通过编辑/ usr / bin / xdg-open并更改来强制执行

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

if [ x"$DE" = x"" ]; then
  DE=generic
fi
DE=gnome

0

这对我来说在ubuntu 18中与FF一起使用(用于洪水):

gio mime x-scheme-handler/magnet deluge.desktop

我知道不能回答问题,但是我也使用Chrome,这比复制和粘贴磁链更好。


-1

我混了几个答案(不幸的是,这对我没用),并提出了使它像魔术一样起作用的东西!无论如何,它可以在XFCE下的Linux Mint 16上工作。

备份/ usr / bin下的xdg-open,使用sudo打开xdg-open,然后使open_xfce()函数完全像这样:

open_xfce()
{    
    if (echo "$1" | grep -q '^magnet:'); then
        gnome-open "$1"
    else
        exo-open "$1"
    fi
}

它很脏,您需要在每次打开xdg的更新中都对其进行编辑,但是,它可以正常工作!


-1

我尝试了多年来解决此问题并切换到Chrome,但似乎没有任何效果。我终于有了一个想法,我不确定为什么我以前没有想到过,并且效果很好。我在Mint中使用Tixati,但它应该可以通用。Chrome将磁铁链接指向usr / bin / transmission-gtk,所以我将其重命名为Transmission-gtk.old,并将tixati重命名为Transmission-gtk,并在chrome中选择该选项以始终执行此操作并点击启动应用,现在mag链接直接进入Tixati就像Firefox。问题终于解决了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.