This is an old revision of the document!
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.