web-dev-qa-db-ja.com

xfce4端末の配色を手動で変更する

ショートカットをバインドして、ソラリゼーションカラースキーム(暗い色と明るい色)を変更します。この目的のために、ターミナルのカラースキームを変更するコマンドを知る必要がありますが、そのようなものを見つけていないため、設定メニューに何度も移動してプリセットスキームを切り替える必要があります。端末の配色にこのような種類のスイッチャーを作成する方法はありますか?

6
mitrx

XFCE4ターミナルは、ユーザー設定を$XDG_CONFIG_HOME/xfce4/terminal/terminalrc(通常、~/.config/xfce4/terminal/terminalrc-設定を変更していない場合は存在しない可能性があります)に保存します。 XFCE4ターミナルはこのファイルを監視し、変更時に設定をリロードするため、このファイルに書き込んで設定を変更できることがわかりました。

ただし、色を変更するために編集できる単一のエントリはありません。さまざまなパレットは、実際には一連の設定です。例えば:

$ cat /usr/share/xfce4/terminal/colorschemes/solarized-dark.theme 
[Scheme]
Name=Solarized (dark)
Name[bg]=Златисто (тъмно)
Name[fr]=Solarisé (foncé)
Name[nl]=Overbelicht (donker)
Name[th]=ในแสงแดด (มืด)
Name[uk]=Золотистий (темний)
ColorForeground=#839496
ColorBackground=#002b36
ColorCursor=#93a1a1
TabActivityColor=#dc322f
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE

そして、terminalrcは次のようになります。

$ cat .config/xfce4/terminal/terminalrc                           
[Configuration]
ColorForeground=#839496
FontName=Ubuntu Mono 12
ColorBackground=#002b36
ColorCursor=#93a1a1
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
TabActivityColor=#dc322f
TabActivityColor=#dc322f

ご覧のように、色がどのパレットから来たのかを簡単に識別する方法はありません。

これをスクリプト化することは安全ではないように見えますが、非効率的な試みがあります。

#! /bin/bash
if ! [[ -f /usr/share/xfce4/terminal/colorschemes/$1.theme ]]
then
    echo "No such colorscheme: $1"
    exit 1
fi
cd ~/.config/xfce4/terminal
# strip settings from any themes
grep -Fxvf <(cat /usr/share/xfce4/terminal/colorschemes/*.theme) terminalrc > .terminalrc.tmp
grep -v -e Name -e Scheme "/usr/share/xfce4/terminal/colorschemes/$1.theme" >> .terminalrc.tmp
cp terminalrc terminalrc.bak
mv .terminalrc.tmp terminalrc

これをPATHのどこかにコピーします(たとえば、~/bin/xfce-color-switch)。次に:

$ xfce4-color-switch dark-pastels

enter image description here

$ xfce4-color-switch solarized   
No such colorscheme: solarized
$ xfce4-color-switch solarized-dark

enter image description here

このためのカラースキームの名前を覚えておく必要がありますが、タブ補完を追加する方法についての説明を追加します。

7
muru

より良い方法は、独自の配色を作成し、多くの中から1つを選択できるようにすることです。

それを行うには、ディレクトリを作成します。

mkdir -p ~/.local/share/xfce4/terminal/colorschemes

そして、そのようなファイルを内部に配置します。

[Scheme]
Name=my good profile
ColorForeground=#4ccd4ccd4ccd
ColorBackground=#f851f465ebe7
TabActivityColor=#d8d8a9a97f7f
ColorCursor=#f0f0b6b66666
ColorSelection=#16163b3b5959
ColorPalette=rgb(0,0,0);rgb(170,0,0);rgb(0,170,0);rgb(170,85,0);rgb(0,0,170);rgb(170,0,170);rgb(0,138,138);rgb(170,170,170);rgb(85,85,85);rgb(255,85,85);rgb(85,255,85);rgb(196,160,0);rgb(85,85,255);rgb(255,85,255);rgb(68,204,204);rgb(255,255,255)

~/.config/xfce4/terminalディレクトリにterminalrcファイルが既に構成されている場合は、適切な行をコピーするだけです。

そうすると、新しい配色がメインリスト内に表示されます。そのため、たとえば、カスタムの白のテーマとカスタムの黒の両方を使用できます。

5
VasyaNovikov