4
ncursesアプリケーションから呼び出されるスクリプトの出力のエスケープシーケンス
現在、ホームサーバーのtmuxセッションでJabberクライアント(ncursesを使用)としてmcabberを実行しています。ローカルでは、iTerm2をターミナルエミュレータとして実行します。これは、文字エスケープシーケンスを介したうなり声通知のトリガーをサポートします。 注:すべて echoこの質問のはprintf %b、またはecho -ebashとGNUのように機能しますecho。 たとえばecho "\e]9;foobar\007"、iTerm2に「foobar」というテキストを含むGrowlメッセージを送信させます。 ただし、tmuxセッションでは、エスケープシーケンスが使い果たされます。したがって、独自の文字エスケープシーケンス\Ptmuxを使用すると、次のように使用できます。 echo "\ePtmux;\e\e]9;foobar\007\e\\" これにより、tmuxセッション内からうなり声メッセージがトリガーされます。 ただし、新しいメッセージを受信したときに起動されるmcabberイベントスクリプトでこれを使用すると、エコーが間違った端末に送信されるかのように通知がトリガーされません。 これは、スクリプトをトリガーするmcabberがncursesアプリケーションであるため、通常のbashスクリプトからの出力が失われ、iTerm 2でそれが表示されないためと思われます。 また、発見したアイデアに賛同する前に、成功せずにsmcupを呼び出してみました tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 問題は「実際の端末ウィンドウ」に戻っていないので、これは機能しないと思いますが、ncursesウィンドウに出力を向けます。 これに関するアイデアはありますか?