web-dev-qa-db-ja.com

gnome-terminalの透明パレット

gnome-terminalで透明な背景を使用しています。

仕事のために、私はしばしばWindowsマシンにSSHする必要があります。 OpenSSHはANSIの背景色を忠実に送信します。そのため、端末の透明度と混合すると、理想的なエクスペリエンスになりません。

表示例は次のとおりです。

同様の結果は、たとえばaptitudeを実行することで取得できます。

背景パレットを透明にする方法はありますか(少なくともxterm -cmのようなカラーコマンドを無視します)?端末の設定で、RGBAとARGBの両方の形式で透明なアルファチャネルを入力しようとしましたが、端末はそれらを無視しているようです。

すぐに使える解決策がない場合は、端末のソースをハッキングすることになります。その場合、どこを参照するかについてのポインタが非常に役立ちます。

2
Xyene

https://superuser.com/questions/1164104/semi-transparent-colors-in-terminal で詳細に回答したように、パレットの色にアルファチャンネルを含めることはできません。デフォルトの背景のみを透明にすることができます。

(記録のために、主流のgnome-terminalの最近のバージョンは透明性をまったくサポートしていません。以前のバージョンはそれを使用していましたが、Ubuntuを含むいくつかのディストリビューションはそれを元に戻します。)

「OpenSSHはANSIの背景色を忠実に送信します」-私はそれを真剣に疑っています。 sshの責任は、送信者が送信したのとまったく同じ方法で宛先に到着するように、ワイヤを介してデータのストリームを送信することです(もちろん、送信者側での暗号化と受信者側での復号化の後)。ターミナルエミュレータではなく、エスケープシーケンス、ANSIカラーコードなどについてはまったく考えていません。 sshが送信するものが、受信側の端末エミュレーターに到達することさえ保証されていません。例えば。 scpについて考えてみてください。ANSIエスケープを含むファイルを安全にコピーできなかった場合は奇妙です。 sshは確実にデータを変更しません。

色を使用することを決定するのは、リモートホストでのシェルセットアップまたは類似のものである必要があります。ローカルで同じセットアップを行った場合、ゲームでsshを使用しない場合と同じように壊れます。ログイン手順またはプロンプトの一部として、誰がどこでこのシーケンスを発信するかを特定する必要があります。

スクリーンショットと説明からは明らかではありませんが、最初に端末の下部に到達してコンテンツがスクロールし始めると、不透明な灰色の線が表示され始めると思われます。これは、ほとんどのグラフィカル端末エミュレーターの脳損傷「bce」(背景色消去)の機能不良によるものです。 gnome-terminal(実際には、基になるvteウィジェット)は、vte-0.44の動作を変更し、Ubuntu Yakketyに登場しました。 Xenialを実行している場合は、試してみることをお勧めします。libvte-2.91-0パッケージをYakketyから更新し、quitallgnome-端末ウィンドウを開き、再起動します。おそらく、あなたが見たいと思う別の体験を見るでしょう。ただし、gnome-terminal(vte)の新しい動作は標準に準拠していないため、他のエミュレーター(例: xterm。 bce機能に関するgnome-terminalの変更の詳細: https://bugzilla.gnome.org/show_bug.cgi?id=754596

2
egmont