Прямо сейчас Chrome бросает фартук над головой и вызывает Firefox, который открывает связь с rtorrent. Что мне нужно сделать, чтобы исключить шаг Firefox?
Обработка протокола Chrome (или Chromium) работает иначе, чем в Firefox. Firefox в основном следит за всем этим сам, поэтому вы можете настроить обработку протокола (например, ссылки на магнит) в разделе Applications в Preferences . Хром, однако, опирается на xdg-open
.
Есть пара вещей, которые нужно сделать, прежде чем xdg-open
будет правильно обрабатывать магнитные связи.
Найдите имя настольного файла программы, которую вы хотите обработать магнитной ссылкой. Давайте предположим, что программа Transmission. Он (как обычно) имеет свой настольный файл в /usr/share/applications/
, и фактически, просматривая список каталога, я обнаружил, что моя версия передачи на самом деле является версией gtk, поэтому его настольный файл называется transmission-gtk.desktop
.
Возможно, файл рабочего стола испорчен. Таким образом, вы можете проверить, что /usr/share/applications/transmission-gtk.desktop
содержит строки:
Exec=transmission-gtk %U
[some lines omitted]
MimeType=application/x-bittorrent;x-scheme-handler/magnet;
Обратите внимание на %U
в строке Exec. Это абсолютно необходимо. Строка MimeType должна выглядеть так, как указано выше.
Теперь о существенном шаге, чтобы сказать xdg-open
открыть магнитные связи с помощью Transmission. В терминале введите:
xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
( Шаг не требуется, если вы используете 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
на один из gnome
, kde
, xfce
или lxde
. Я выбрал xfce
, так как у меня фактически есть сеанс Xfce, который я настроил и иногда использую.
Недостатком этого подхода является то, что если xdg-open
получает обновления, вам придется повторить это. Arch wiki предлагает другой подход, который позволяет избежать этого недостатка (но имеет свой недостаток).
Предупреждение: Выбор на последнем шаге важнее, чем может показаться. Комплектация lxde
у меня не сработала! В xdg-open
вспомогательная функция open_lxde
использует pcmanfm
(файловый менеджер lxde), и что-то не так с кодом из open_lxde
или, возможно, с ошибкой pcmanfm
. sup>
Просто перетащите ссылку магнита в окно Transmission, и она прекрасно работает без каких-либо настроек ... Я использую стандартную сборку Lubuntu 12.10, ничего особенного ....
Было очень приятно открывать магниты из Chrome с помощью qBittorrent в Ubuntu
xdg-mime по умолчанию qBittorrent.desktop x-circuit-handler / magnet
blockquote>
Использование gnome-open в XFCE сработало для меня.
Это можно принудительно изменить с помощью / usr / bin / xdg-open и изменить
if [ x"$DE" = x"" ]; then
DE=generic
fi
на
if [ x"$DE" = x"" ]; then
DE=generic
fi
DE=gnome
Ни одно из других предложений, которые я нашел, не сработало для меня, но это помогло в 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"
Если вы используете xfce и не хотите ничего портить, вы можете использовать мое решение. Я исправил вручную, отредактировав xdg-open следующим образом:
Прежде всего убедитесь, что у вас есть связанный mime (как описано выше, с xdg-mime)
Затем сделайте резервную копию xdg-open от имени пользователя root (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.
Надеюсь, это поможет.
Парень из alt.os.linux.slackware нашел решение:
http://www.void.gr/kargig/blog/2012/01/24/open-magnet- URLs-с-XDG открыть /
Я годами пытался это исправить и переключиться на Chrome, и, похоже, ничего не работает. У меня наконец появилась мысль, я не уверен, почему я не думал раньше, и это прекрасно работает. Я использую Tixati в Mint, но он должен работать универсально. Chrome указывает магнитные ссылки на usr / bin / transmission-gtk, поэтому я переименовал его в translation-gtk.old и переименовал в tixati в transmission-gtk, выбрал опцию в chrome, чтобы всегда делать это, и нажал на запуск приложения, и теперь ссылки магнита идут прямо в Тиксати так же, как Firefox. Проблема окончательно решена!
Я смешал несколько ответов (что, к сожалению, не сработало для меня) и придумал что-то, что сделало его работающим как шарм! В любом случае он работал на Linux Mint 16 под XFCE.
Сделайте резервную копию xdg-open в / usr / bin, откройте ваш xdg-open с помощью sudo, а затем сделайте функцию open_xfce () именно так:
open_xfce()
{
if (echo "$1" | grep -q '^magnet:'); then
gnome-open "$1"
else
exo-open "$1"
fi
}
Она грязная, и вам нужно отредактировать ее каждое обновление xdg-open, но эй, это работает!
Это работает для меня в Ubuntu 18 с FF (для потопа):
gio mime x-scheme-handler/magnet deluge.desktop
Я знаю, что не отвечает на вопрос, но я тоже использую Chrome, и это лучше обходить, чем копировать вставка магнитного звена.
В Ubuntu 20.04 выполните одну из следующих команд.
Webtorrent
xdg-mime по умолчанию webtorrent-desktop.desktop x-scheme-handler/magnet
Transmission
xdg-mime default transfer-gtk.desktop x-scheme-handler/magnet
Любой другое торрент-приложение
Файл X.desktop
должен находиться в каталоге /usr/share/applications