Как сказать Chrome, что делать с магнитной ссылкой?
Прямо сейчас Chrome бросает свой фартук над головой и вызывает Firefox, который открывает ссылку с помощью rtorrent. Что мне нужно сделать, чтобы исключить шаг Firefox?
10 ответов
Обработка протокола Chrome (или Chromium) работает иначе, чем в Firefox. Firefox в основном следит за всем этим сам, поэтому вы можете настроить обработку протокола (например, магнитные ссылки) в разделе " Приложения" в настройках. Chrome, однако, опирается на 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
виноват
Просто перетащите ссылку магнита в окно передачи, и она прекрасно работает без каких-либо настроек.... Я использую стандартную сборку Lubuntu 12.10, ничего особенного....
Работало очень приятно открывать магниты из Chrome с помощью qBitorrent в Lubuntu
xdg-mime по умолчанию qBittorrent.desktop x-схема-обработчик / магнит
В Ubuntu 20.04 выполните одну из следующих команд.
Webtorrent
xdg-mime default webtorrent-desktop.desktop x-scheme-handler/magnet
Передача инфекции
xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
Любое другое торрент-приложение
X.desktop
файл должен существовать в
/usr/share/applications
каталог
Если вы используете 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.
Надеюсь, поможет.
Ни одно из других предложений, которые я нашел, не сработало для меня, но это помогло в 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"
Парень из alt.os.linux.slackware нашел решение:
http://www.void.gr/kargig/blog/2012/01/24/open-magnet-urls-with-xdg-open/
Это работает для меня в Ubuntu 18 с FF (для потопа):
gio mime x-scheme-handler/magnet deluge.desktop
Я знаю, что это не отвечает на этот вопрос, но я тоже использую Chrome, и это лучше, чем копирование и вставка ссылки на магнит.
Использование 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
Я смешал несколько ответов (что, к сожалению, не сработало для меня) и придумал что-то, что сделало его работоспособным! В любом случае, он работал на 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, но эй, это работает!
Я годами пытался это исправить и переключиться на Chrome, и, похоже, ничего не работает. У меня наконец появилась мысль, я не уверен, почему я не думал раньше, и это прекрасно работает. Я использую Tixati в Mint, но он должен работать универсально. Chrome указывает магнитные ссылки на usr/bin/transmission-gtk, поэтому я переименовал его в translation-gtk.old и переименовал в tixati в transmission-gtk, выбрал опцию в chrome, чтобы всегда делать это, и нажал на запуск приложения, и теперь ссылки магнита идут прямо в Тиксати так же, как Firefox. Проблема окончательно решена!