User Tools

Site Tools


tutoriais:magnet_link

Abrir Magnet Link automaticamente no Transmission, usando XFCE

Links Magnéticos (magnet link) podem não abrir corretamente na interface XFCE se o aplicativo padrão for o Transmission (talvez afete outros aplicativos). Isso ocorre pois alguns links magnéticos possuem o caractere & na sua composição e na hora de passar o comando ele acaba enviando como

transmission-gtk magnet://kashdlaiiulay&lhkashkdfal

que é entendido como sendo dois comandos: separados por &: ``transmission-gtk magnet:kashdlaiiulay`` e ``lhkashkdfal`` Assim, se abrir o comando como transmission-gtk “magnet:kashdlaiiulay&lhkashkdfal”

nenhum problema ocorreria.

Um jeito de contornar isso é editando o arquivo ``/usr/bin/xdg-open``. Antes de modificá-lo, faça um backup

sudo cp /usr/bin/xdg-open{,backup}

Então proceda editando com algum editor

nano /usr/bin/xdg-open

Procure a linha ``open_xfce()``, que deve ter as diretrizes do que fazer com as coisas… deve ser algo parecido com isso:

open_xfce()
{
    if exo-open --help 2>/dev/null 1>&2; then
        exo-open "$1"
    elif gio help open 2>/dev/null 1>&2; then
        gio open "$1"
    elif gvfs-open --help 2>/dev/null 1>&2; then
        gvfs-open "$1"
    else
        open_generic "$1"
    fi

    if [ $? -eq 0 ]; then
        exit_success
    else
        exit_failure_operation_failed
    fi
}

Basta adicionarmos um tratamento para o caso de ser uma URL de magnet link, adicionando logo de cara algo assim:

if (echo "$1" | grep -q '^magnet:'); then
        transmission-gtk "$1"

Não esqueça que o ``if exo-open…`` que era a primeira linha agora virará ``elif exo-open``.

open_xfce()
{
    if (echo "$1" | grep -q '^magnet:'); then
        transmission-gtk "$1"
    elif exo-open --help 2>/dev/null 1>&2; then
        exo-open "$1"
    elif gio help open 2>/dev/null 1>&2; then
        gio open "$1"
    elif gvfs-open --help 2>/dev/null 1>&2; then
        gvfs-open "$1"
    else
        open_generic "$1"
    fi

    if [ $? -eq 0 ]; then
        exit_success
    else
        exit_failure_operation_failed
    fi
}

Outras interfaces podem não apresentar esse problema… a interface LXDE por exemplo utiliza comandos diferentes que não deram esse problema.

tutoriais/magnet_link.txt · Last modified: 2017-07-21 19:49 by alopes