web-dev-qa-db-ja.com

ターミナル256カラーパレットをデフォルト値にリセット

何かがデフォルトの256色パレットを壊したとしましょう。例として、色108を選択します。

printf "\033]4;108;rgb:ff/00/00\033\\"

これを元に戻すにはどうすればよいですか?現在のすべての「端末のリセット」に関する質問を検索し、試しました。

reset # You can't see this in the screenshot as it clears the screen
tput init
tput sgr0
printf '\e[0m'

テストパターン を使用すると、色#108がまだ壊れていることがはっきりとわかります。

Colour 108 is still broken

GNOME端末を実行しています。

Iしてはいけないgconftool --recursive-unset /apps/gnome-terminalこれは、すべてのオープン/新規の一般的な端末構成(フォントなど)を台無しにするためgnome-terminals。ブラシストロークが広すぎます。

どうすればよいですか?ターミナル内のコマンドラインから

  1. 特定のパレットの色をデフォルトに戻しますか?
  2. すべてのパレットの色をデフォルトに戻しますか?

制御コードを発行することで問題が発生する可能性があるため、制御コードでも解決できることを願っています。

2
Tom Hale

4の代わりに、104を使用して特定の色をリセットします。あなたの例のような色番号108:

printf "\033]104;108\033\\"

色番号を省略して、パレット全体(256色すべて)をリセットします。

printf "\033]104\033\\"

注:GNOMEターミナル(実際にはVTE)は、色に2つの「レベル」を使用します。 VTEのAPIを介して設定された色(または、Preferencesダイアログで選択され、gsettings/dconfに保存された最初の16色のGNOMEターミナルの場合、残りはVTEのハードコードされたデフォルト)。スロットごとに、可能なエスケープシーケンスの優先順位が高く、一時的にこの値をオーバーライドします。 「104」パラメータ「resets」を使用した上記のエスケープシーケンスは、エスケープシーケンス「4」で指定された値をクリアするため、GNOMEターミナルの設定ダイアログ(または拡張256色パレットのVTEのデフォルト)で指定された値に戻ります。 。この設計のため、gsettingsまたはdconfコマンドが色変更エスケープシーケンスの効果を元に戻す方法はまったくありません。他の非VTEベースのターミナルエミュレータは、異なるアプローチに従うか、これらのエスケープシーケンスをまったくサポートしない場合があります。

3
egmont