Passagem de links clicados em rxvt para um script

7

Eu inicio meu navegador vimprobable em com guias assim:

"'tabbed -d > /tmp/tabbed.xid'; vimprobable2 -e 'cat /tmp/tabbed.xid'" [1]

Eu sou capaz de enviar todas as novas instâncias do vimprobable para abas (e não ter uma nova janela mestre aberta), em outros aplicativos, por exemplo, mutt, por:

vimprobable2 -e $(cat /tmp/tabbed.xid) %s

Eu gostaria de alcançar o mesmo em Urxvt.

Atualmente, meu .Xdefaults contém os argumentos correspondentes:

URxvt.perl-ext-common: default,matcher
URxvt.urlLauncher: vimprobable2
URxvt.matcher.button: 1

Alterei a linha de inicialização para apontar para um script de wrapper:

URxvt.urlLauncher: vimprobtab.sh

Qual é apenas:

vimprobable2 -e $(cat /tmp/tabbed.xid) %s &

mas isso apenas abre uma instância do navegador na guia com o resultado do mecanismo de pesquisa padrão para & (ou %s se eu remover o "e" comercial).

Eu tentei com outras variáveis óbvias, como "$1" e "$@" - elas também não funcionam.

Como faço para passar o URL para o script wrapper?

[1] Isso também parece um uso inútil do gato , então sugestões alternativas seriam bem-vindas

    
por jasonwryan 24.06.2011 / 11:30

1 resposta

5

O texto de ajuda para a extensão PERL do matcher para urxvt afirma:

When clicked with the mouse button specified in the matcher.button resource (default 2, or middle), the program specified in the matcher.launcher resource (default, the urlLauncher resource, sensible-browser) will be started with the matched text as first argument.

portanto, você precisa definir URxvt.matcher.launcher para um script que aceita um único argumento (em shells tipo sh, isso é escrito $1 ) e abra. Por exemplo:

#! /bin/sh

exec vimprobable2 -e $(cat /tmp/tabbed.xid) "$1"

Observação: É aconselhável orçamento o argumento $1 para evitar o shell da interpretação de meta-caracteres que podem aparecer no URL (por exemplo, & ou ; ).

    
por 24.06.2011 / 13:38