rxvtでクリックしたリンクをスクリプトに渡す

rxvtでクリックしたリンクをスクリプトに渡す

ブラウザを起動しますできない存在するタブ付きこのように:

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

その後、次の方法を使用して、vimprobableのすべての新しいインスタンスを別のアプリケーション(たとえば、mutt)のタブに送信できます(新しいメインウィンドウを開かずに)。

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

私はUrxvtでも同じ目標を達成したいと思います。

現在には.Xdefaults一致パラメータが含まれています。

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

ラッパースクリプトを指すようにランチャーの行を変更しました。

URxvt.urlLauncher: vimprobtab.sh

これはただ:

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

ただし、これを行うと、デフォルトの検索エンジンの結果を含むタブでブラウザインスタンスが開きます&%sアンパーサンドを削除した場合)。

"$1"私はandなどの他の明白な変数を試しましたが、"$@"どちらも機能しません。

ラッパースクリプトにURLを渡すには?

[1] これもこんな感じだ猫の無駄な使用、他の提案も歓迎します

答え1

次のヘルプテキストマッチャーPERL は次に拡張されます。UrxVT 状態:

リソース(デフォルトは2または中間)で指定されたマウスボタンをクリックすると、リソース(デフォルト、リソース、)で指定されたmatcher.button プログラムは、最初の引数で一致するテキストで始まります。matcher.launcherurlLaunchersensible-browser

URxvt.matcher.launcherしたがって、単一引数(sh型シェルのスペル$1)を使用してそれを開くスクリプトを設定する必要があります。たとえば、

#! /bin/sh

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

メモ:提案引用する$1URLに現れる可能性のあるメタ文字である引数(または&)をシェルが解釈しないようにします;

関連情報