如何配置Chrome以使用大量代码打开磁铁网址?


37

从10.10升级到Ubuntu 11.04(natty)后,我无法再在Chromium中打开磁铁(torrent)链接,并且将deluge设置为自动打开并接受URL。

(编辑:当前“ .torrent”文件不是问题,但是磁石url的格式(例如“ magnet:?xt = urn:...”)现在是唯一的问题。不确定是否进行了更新...? )

相反,现在只有传输会自动打开torrent,磁力链接等。似乎没有一种方法可以将deluge设置为默认的torrent客户端。(并且,似乎也没有“ BitTorrent客户端”的“默认应用程序”设置来替换带有洪水的传输。)

笔记:

  • 我在这个问题上发现了一些旧的线程,只有一个两个新的线程。较新的线程似乎暗示应该指责xdg-open。但是似乎没有多少人遇到这个问题,所以……也许只是我吗?
  • 不使用firefox,因此无法手动为mime类型或扩展名设置应用程序(在chrome / chromium,afaik中这不是选项-您必须依赖于操作系统)
  • 我卸载了传输,然后单击Torrent / Magnet链接时基本上什么也没有发生。
  • 从外壳运行还会打开传输(不会泛滥):xdg-open“ magnet:?xt = urn:bt ..&tr = http://tracker.....com/announce”

我当前的网址处理程序是:

$ gconftool -a /desktop/gnome/url-handlers/magnet
command = deluge "%s"
needs_terminal = false
enabled = true

我唯一的解决方法(确实可行)是重命名/usr/bin/transmission-gtk{,.bak}并创建自己的/ usr / bin / transmission-gtk:

$ cat /usr/bin/transmission-gtk
#!/bin/bash
deluge "$@"

还有其他人遇到这个问题,知道有错误,解决方法还是...?


这似乎是一个愚蠢的问题,但是...如果在nautilus中右键单击.torrent文件,找到属性的“打开方式”选项卡,然后选择“洪水”怎么办?它行得通吗?Deluge是否至少显示在该列表中?
MestreLion,2011年

1
这不是一个愚蠢的问题。问题在于磁铁的URL。“ .torrent”文件不是问题。带有磁铁的URL,没有文件可下载。就像“ ftp:// ...”或“ https:// ...”或file:// ...“。使用鹦鹉螺,我可以双击并用洪流打开种子;使用” xdg-open“ foo.torrent”,torrent文件会被大量洪水正确打开。 但是,使用“ magnet:?...”甚至“ xdg-open'magnet:?...'”之类的链接,无论我进行的任何gconf设置如何,传输都会打开(我将在问题中澄清这一点...)
迈克尔

实际上,最初的种子文件也是一个问题。但是令人惊讶的是,现在种子文件确实可以工作。我不知道是否更改了某些内容(必须是xdg-open吗?)...或者是否更改了某些内容才能使其开始工作。因此,现在我可以使用torrent文件作为解决方法。磁铁链接在某些情况下(显然吗?)比较好使用,但是...很高兴找出这是否确实是错误或我的(损坏的)配置。
迈克尔

哼,澄清。是的,我知道什么是磁铁链接。其类似于apt链接。我只是不确定世卫组织会处理它们-操作系统还是浏览器。我的意思是...浏览器是告诉将磁铁请求传递给OS,还是处理并启动应用程序本身?在这个问题上,这可能是您的答案。同时,

Firefox拥有自己的应用程序启动器(或……至少它曾经使用过吗?)...我只是再次搜索了一下,发现最近的论坛上贴出了答案(请参阅下文...)。感谢您的评论,它迫使我再看看这个。我刚开始手动打开磁铁链接。有点痛苦。
迈克尔,

Answers:


37

对于12.04至16.04

在12.04和13.04中, 桌面文件中确实包含x-scheme-handler/magnet=deluge.desktop;了deluge 。就我而言,传输仍在打开磁链。我不得不告诉我gvfs-open更喜欢洪水:

gvfs-mime --set x-scheme-handler/magnet deluge.desktop

18.04

gvfs-mime 已弃用,而是使用“ gio mime”代替:

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

1
为16.04LTS工作
Tico

在18.04和FF为我工作
uvasal 18-11-5

谢谢。目前,我遇到了错误:无法为经理加载信息,是否有解决的办法?
Ambigus9

17

答案实际上是洪水包装中的一个错误(或者,也许洪水是相同的,并且周围的一切都发生了变化……我想这取决于您的观点。)有关详细信息,请参见此处的论坛主题

基本上,通过gconf-editor设置xdg-open的配置无法解决任何问题,因为从Natty开始,文件打开功能由gvfs-open处理,后者不使用gconf设置。而是,gvfs-open查看与每个应用程序捆绑在一起的“ .desktop”文件,以确定可以处理的文件类型(如果未安装,请运行sudo apt-get install gvfs-bin)。

从论坛发帖来看,该/usr/share/applications/deluge.desktop文件有几个问题;应该说Exec=deluge-gtk %U(而不仅仅是“ Exec=deluge-gtk"),这样的参数传递给应用程序。第二,而不仅仅是MimeType=application/x-bittorrent;它应该说MimeType=application/x-bittorrent;x-scheme-handler/magnet;

更新应该很快就会通过... 如果您想自己进行更改,这是更新的桌面文件的链接;只需运行sudo update-desktop-database,一切都将开始工作(甚至不必重新启动chrome / chromium)。


哼,很好!为此+1(但是当您必须回答自己的问题时,它很糟糕,不是吗?)。无论如何...如果Natty要求.desktop文件现在在Exec语句中具有参数,哇,基本上我的所有软件都无法工作(我使用Mint 10)
MestreLion 2011年

Natty在Exec语句中要求参数是没有意义的。IT部门的巨大变化将需要为每个应用程序重写每个.desktop。使文件保持不变并调整gvfs-open调用以将任何传递的参数自动附加到Exec语句中的命令会更好。至少直到所有应用程序都已修复。
MestreLion 2011年

我应该提到,我还安装了该工具以使其正常工作(如果您没有此工具,则可能会得到不同的结果):sudo apt-get install gvfs-bin
michael

2
如果您不想弄乱文件,/usr也可以将.desktop文件复制到.local/share/applications/并在此update-desktop-database .local/share/applications之后运行。
孟买

@炸弹:不错的方法。而且您甚至可能不需要更新桌面数据库。Gnome通常具有守护程序,这些守护程序会在将新文件放入该目录时自动刷新菜单。
MestreLion'5

8

的Ubuntu

最近,还需要将以下行添加到[Added Associations]下的〜/ .local / share / applications / mimeapps.list中。

x-scheme-handler/magnet=deluge.desktop;

库本图

但是,在Kubuntu上,您必须在〜/ .kde / share / kde4 / services / magnet.protocol中创建以下文件

[Protocol]
exec=deluge "%u"
protocol=magnet
input=none
output=none
helper=true
listing=false
reading=false
writing=false
makedir=false
deleting=false

注意:完成这些更改后,请不要忘记重新登录。


在Ubuntu 12.04上为我工作
Umair A. 2014年

在Ubuntu 16.04上为我工作
thethakuri

4

我正在使用Ubuntu 13.04,在安装Deluge之后,我只需要运行以下命令即可让Chromium使用Deluge打开磁铁:

xdg-mime default deluge.desktop x-scheme-handler/magnet

希望这可以帮助 :)


还可能需要:gvfs-mime --set x-scheme-handler / magnet deluge.desktop既执行相同的操作,又获取gnome conf数据库(该数据库可能与freedesktop DB相同或不同)
Fordi

3

我做了所有这些,但是没有用。

在尝试了我看到的所有其他内容之后,我终于设法deluge不仅通过改变

MimeType=application/x-bittorrent;

MimeType=application/x-bittorrent;x-scheme-handler/magnet;

在中/usr/share/applications/deluge.desktop,也可以通过删除

x-scheme-handler/magnet;

/usr/share/applications/transmission-gtk.desktop跑步前

sudo update-desktop-database

2

这本来应该是评论,但我需要上传一张图片,所以就这样:

  • 在我的设置中,FireFox 3.6和Chromium 11.0都打开了Deluge

  • Chromium要求您进行确认,以向我们提供发生情况的提示:

在此处输入图片说明

这表明Chromium不会直接启动Deluge ...它依赖于此xdg-open。意味着所有必须研究(和修复)的是操作系统,而不是Chromium。没有修复或更改浏览器中的内容。

这不是一个答案,但是它将把您的精力集中在正确的地方……您必须解决的问题与浏览器无关,而与操作系统无关。


您可以在评论中添加图片;)
Rinzwind

您可以?哇!怎么样?无论如何,我认为那看起来很糟糕:P
MestreLion

有趣的是,这表示xdg-open用于打开磁体链接。...我无法获得该对话框,因为我的铬“记住”了我自动打开磁体URL的偏好。(而且,是的,即使设法使它变成灰色,我也尝试了“清除自动打开设置”。)但是作为我的“修复”程序的一部分,我也安装了gvfs-open( sudo apt-get install gvfs-bin)。现在,如果检查外壳程序脚本中的/ usr / bin / xdg-open,则函数“ open_gnome()”仅调用gvfs-open(如果存在),否则调用gnome-open。(真是一团糟...)
迈克尔


@michael_n:那就是为什么我发布了屏幕截图..我认为它将帮助您确定Chromium所依赖xdg-open(因为它的确应该……非标准URI必须由操作系统而不是浏览器来处理)
MestreLion

2

下载并安装此用户脚本。现在,您应该能够将torrent文件快速添加到Chrome中的Deluge 1.2+ WebUI!

在11.10上测试。对于其他操作系统,您必须自己尝试一下,但是我希望它也可以在它们上正常工作。


1

在带有Deluge和chrome的Ubuntu 10.04上,我必须执行以下操作:

gconftool -t string -s /desktop/gnome/url-handlers/magnet/command "deluge-gtk '%s'"

1

我在10.10上,尝试了很多方法,这是可行的:

gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "/usr/bin/deluge-gtk %s"
gconftool-2 -s /desktop/gnome/url-handlers/magnet/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true

1

我认为这不能真正解决问题,但至少对我有用(lubuntu 12.04):

  • 将鼠标悬停在磁铁链接上,直到磁铁地址显示在屏幕底部。
  • 右键单击并选择“复制链接地址”。
  • 打开传输,然后在“文件”下选择“打开URL”。
  • 将URL粘贴在框中,然后开始下载。

顺便说一句,我担心我现在正在做些修改,但是上述解决方案对我而言不起作用,我的回答可能对其他人有用,因为此页面是我在Google上搜索此问题时的第一个结果。


1

在Linux Mint 16 Petra中,我必须在Applications文件夹中编辑Transmissions.desktop文件,还必须在/usr/share/applications/mimeinfo.cache中而不是mimeapps.list中进行编辑。

另外,/ home / [user] /。local / share / applications中还有另一个mimeinfo.cache文件,也可以对其进行编辑,但是我认为这只会影响当前用户,而applications文件夹中的文件会影响当前用户。全部用户。

希望这会有所帮助。

编辑:

哈哈,看来此功能已内置在最新版本的Deluge中。您可以转到“编辑”->“首选项”->“其他”->,并将默认的磁铁链接与Deluge关联。


0

现在看来,Deluge 的最新版本(ppa)确实解决了所选答案的要点。但是,这并不能解决我的问题,Google Chrome无法在我的Ubuntu Precise 12.04中启动Torrent。

而是看起来好像xdg-mime使用了xdg-open不正确的设置。我在这里找到了可行的解决方案。即

$ xdg-mime default deluge.desktop x-scheme-handler/magnet
$ xdg-mime default deluge.desktop application/x-bittorrent

然后快速检查

$ xdg-mime query default x-scheme-handler/magnet
deluge.desktop
$ xdg-mime query default application/x-bittorrent
deluge.desktop

现在终于可以正常工作了。


0

对我来说,有效的方法是我转到mimeapps.list文件,并添加了tixati作为默认的磁贴处理程序-它非常容易且工作迅速。

然后,创建bittorrent客户端的桌面快捷方式链接。

转到此文件-**(按Ctrl + H组合键)从视图中显示/隐藏文件。

/home/.local/share/applications/mimeapps.list

打开文件-mimeapps.list-输入此文本* x-scheme-handler / magnet = tixati.desktop

单击保存到应用程序。

我用tixati作为洪流。如果您使用另一个Bittorrent客户端-只需将tixati替换为其他-例如vuze,deluge ,。(从tixati.com下载tixati)

如果您希望选择变速箱,则将tixati替换为 Transmission-gtk.desktop


0

这是@michael_n在一个脚本中的答案:

# rewrite deluge's .desktop file
sudo tee /usr/share/applications/deluge.desktop > /dev/null <<'EOF'
[Desktop Entry]
Version=1.0
Name=Deluge
GenericName=BitTorrent Client
X-GNOME-FullName=Deluge BitTorrent Client
Comment=Download and share files over BitTorrent
TryExec=deluge-gtk
Exec=deluge-gtk %U
Icon=deluge
Terminal=false
Type=Application
Categories=Network;FileTransfer;P2P;GTK
StartupNotify=true
MimeType=application/x-bittorrent;x-scheme-handler/magnet;
EOF

# set association and reload
gvfs-mime --set x-scheme-handler/magnet deluge.desktop
sudo update-desktop-database

在ubuntu 15.10上对我来说很赞,默认安装了chrome和deluge。


-1

默认情况下,我的Chrome使用的是传输。我想使用qBittorrent。在Ubuntu 14.04上,我使用以下命令删除了Transmission:

sudo apt-get purge transmission-gtk

然后我“手动”启动qBittorrent并再次将其关闭。下次我单击磁性链接时,Chrome提示我允许其调用外部应用程序。我允许这样做,然后chrome启动了qBitorrent。

因此,如果您的PC上不需要多个洪流客户端,则可以通过删除其他洪流客户端并保留所需的洪流客户端,来强制Chrome使用所需的客户端。有点Chuck Norris解决方案,但对我有用。


-2
cd /usr/bin/

sudo sed 's/elif \[ x\"\$GNOME_DESKTOP_SESSION_ID\" \!\= x\"\" \]\; then DE\=gnome\;/elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;\n    elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;/g' -i xdg-*

为我工作(薄荷伴侣16佩特拉)。


1
朋友,告诉您执行此操作的人,该添加到您的“阻止”列表中。我停止阅读cd /usr/bin; sudo sed ... xdg-*...并非每个文件xdg-*实际上都是一个shell脚本;有些是二进制的。如果您实际运行这样的程序,则需要修复系统(您可能没问题,因为它可能根本没有更改文件...)在任何情况下,*_DESKTOP_SESSION_ID与当前主题无关,但是即使如此,您只需设置/取消环境变量;您不会在中使用sed所有脚本/usr/bin
迈克尔
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.