urxvt-256 の tmux で背景イメージを変更するには、printf コマンドを使用します。

urxvt-256 の tmux で背景イメージを変更するには、printf コマンドを使用します。

tmux では printf コマンドは使用できません。

背景を動的に変更するコマンドは次のとおりです。

printf "\e]20;/home/alexsson/Downloads/alternativ.png;\a"

urxvtから直接これを行うことができます。

ここに画像の説明を入力してください。

そして画面内で:

ここに画像の説明を入力してください。

しかし、このprintfコマンドはtmuxではまったく機能しません。

ここに画像の説明を入力してください。

tmuxでどのように機能させることができるか知っていますか?

PS:ここでも同様の質問があります。tmuxと制御シーケンス文字の問題。ただし、正しいクエリを使用しないと、問題を見つけるのが難しい場合があります。私はどのクエリを使うべきかわかりませんが、より一般的な(単純な背景の変更など)、より多くのユーザーにとって私の投稿は興味深いと思いました。これに関する文書もあまりありません。

答え1

urxvt、3つの端末エミュレータがtmuxありますscreen。最初のものはX11をディスプレイ/入力用のバックエンドとして使用し、残りの2つはホスト端末を使用します。

tmux実際の端末エミュレータであり、いくつかのscreenエスケープシーケンス(太字属性、画面消去など)で有効になる多くの機能を実装しています。背景イラストサポートされている機能ではありません。

さらに、 screen/tmuxセッションはすべての種類のホスト端末に接続でき、複数のホスト端末に同時に接続することもできます(を使用して-x)。一部はこの機能をサポートすることも、一部はサポートしない場合もあります。

screen認識されないエスケープシーケンスを渡しますtmux。 OSC()で始まるシーケンスは\e]BEL(/)で終わります。 aが表示されるまで(または次のエスケープシーケンス)を読み取り、シーケンスが認識されない場合はそのシーケンスを破棄します。\a^Gtmux\e]\a

しかし、tmux ホスト端末に任意のテキストをそのまま渡すことをサポートします。注文として\ePtmux;\e<text>\e\。ここでは、次のようにすることができます。

printf '\ePtmux;\e\e]20;/home/alexsson/Downloads/alternativ.png;\a\e\\'

それにもかかわらず、これはやや危険な機能であることに注意してくださいrxvt。たとえば、rxvtLinuxでrootとして実行されていて、cat malicious-file同様のファイルを実行している場合\e]20;/dev/watchdog\a(ウォッチドッグがあるシステムでは)、システムは数秒後に再起動されます。

関連情報