Как сказать Chrome, что делать с магнитной ссылкой?


67

Прямо сейчас Chrome бросает свой фартук над головой и вызывает Firefox, который открывает ссылку с помощью rtorrent. Что мне нужно сделать, чтобы исключить шаг Firefox?


какую версию Google Chrome вы используете? google-chrome -version
Альвар

Это случилось со мной (в Ubuntu 14.04.2 LTS), когда Firefox был установлен в качестве браузера по умолчанию. Если Chromium был установлен в качестве браузера по умолчанию, то я получил только новую пустую вкладку в Chromium. - В конце концов, я решил проблему, исправив мой, /usr/bin/xdg-openкак предложено в принятом ответе: « Торрент-магнитные ссылки открывают новое окно, но не передачу ».
Зрайм

Ответы:


90

Обработка протокола Chrome (или Chromium) работает иначе, чем в Firefox. Firefox в основном отслеживает все это сам, поэтому вы можете настроить обработку протокола (например, магнитные ссылки) в разделе « Приложения» в «Предпочтениях» . 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на строку Exec. Это абсолютно необходимо. Строка 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к одному из gnome, kde, xfceили lxde. Я выбрал, xfceтак как у меня фактически есть сеанс Xfce, который я настроил и иногда использую.

    Недостатком этого подхода является то, что если вы xdg-openполучаете обновления, вам придется повторить это. Arch wiki предлагает другой подход, который позволяет избежать этого недостатка (но имеет свой недостаток).

    Предупреждение: выбор на последнем шаге важнее, чем может показаться. Сборка lxdeне работает для меня! В xdg-open, функция помощника open_lxdeзависит от pcmanfm(менеджер LXDE файл) и что - то не так с любым кодом в open_lxdeили , возможно , это pcmanfm«s вины.


7
Спасибо! Я просто сделал, xdg-mime default deluge.desktop x-scheme-handler/magnetчтобы связать это с Deluge вместо этого.
Джастин Форс

1
У меня есть (вероятно) связанная проблема . Я пробовал ваше решение, но оно не работает.
Куинн Калвер

2
Как может Linux преуспеть, когда эксперты, не говоря уже о новичках, не могут заставить его работать. Я использую Linux по своему предпочтению каждый день, но опыт рабочего стола не достаточно хорош. Удачи SteamOS.
Сэм Уоткинс

2
Также хотел сказать спасибо за ответ, он работал отлично. Поскольку я в Linux Mint использую MATE вместо GNOME, мне пришлось выполнить шаг 4. Как ни странно, mateэто не сработало (чего я и ожидал с момента запуска MATE), но сработало gnome.
machineghost

1
@machineghost спасибо за ваш комментарий: я тоже на MATE и этот ответ + ваш комментарий отсортировал его для меня.
Макс Уильямс

6

просто перетащите ссылку магнита в окно передачи, и она прекрасно работает без каких-либо настроек .... Я использую стандартную сборку Lubuntu 12.10, ничего особенного ....


Это другой подход, и мне это нравится. Но это не решает проблему, когда магнитная ссылка открывается автоматически, и требует большого взаимодействия с пользователем (клики), когда передача еще не запущена.
Джоэл Шегрен

2

Работало очень приятно открывать магниты из Chrome с помощью qBitorrent в Lubuntu

xdg-mime по умолчанию qBittorrent.desktop x-схема-обработчик / магнит


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.

Надеюсь, это поможет.


1

Ни одно из других предложений, которые я нашел, не сработало для меня, но это помогло в Debian / Xfcehttp://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

Парень из alt.os.linux.slackware нашел решение:

http://www.void.gr/kargig/blog/2012/01/24/open-magnet-urls-with-xdg-open/


Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
Майкл Мартин-Смукер

Это на самом деле сложнее, чем нужно. Смотри мой ответ.
Чан-Хо Су

0

Использование 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

0

Это работает для меня в Ubuntu 18 с FF (для потопа):

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

Я знаю, что это не отвечает на этот вопрос, но я тоже использую Chrome, и это лучше, чем копирование и вставка ссылки на магнит.


-1

Я смешал несколько ответов (что, к сожалению, не сработало для меня) и придумал что-то, что сделало его работающим как шарм! В любом случае, он работал на 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, но эй, это работает!


-1

Я годами пытался это исправить и переключиться на Chrome, и, похоже, ничего не работает. У меня наконец появилась мысль, я не уверен, почему я не думал раньше, и это прекрасно работает. Я использую Tixati в Mint, но он должен работать универсально. Chrome указывает магнитные ссылки на usr / bin / translation-gtk, поэтому я переименовал его в translation-gtk.old и переименовал в tixati в translation-gtk, выбрал опцию в chrome, чтобы всегда делать это, и нажал на запуск приложения, и теперь ссылки магнита идут прямо в Тиксати так же, как Firefox. Проблема окончательно решена!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.