Altere o esquema de cores para o terminal xfce4 manualmente

3

Eu quero vincular um atalho para alterar meus esquemas de cores solarizadas (escuras e claras). Para este propósito, eu preciso saber um comando para o terminal alterar seu esquema de cores, mas eu não encontrei esse e tenho que ir sempre ao menu de preferências e mudar os esquemas pré-definidos. Existe alguma maneira de fazer esse tipo de switcher para esquemas de cores do terminal?

    
por mitrx 20.09.2015 / 23:33

2 respostas

5

O terminal XFCE4 armazena as preferências do usuário em $XDG_CONFIG_HOME/xfce4/terminal/terminalrc (normalmente, ~/.config/xfce4/terminal/terminalrc - pode não existir se você não tiver alterado nenhuma preferência). Descobri que o Terminal XFCE4 observa esse arquivo e recarrega as configurações quando ele é alterado, para que você possa gravar nesse arquivo para alterar as configurações.

No entanto, não há uma única entrada que você possa editar para alterar as cores. As várias paletas são na verdade um conjunto de configurações. Por exemplo:

$ 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

E terminalrc será semelhante:

$ 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

Como pode ser visto, não há como identificar facilmente qual paleta as cores vieram.

Criar um script não parece seguro, mas aqui está uma tentativa ineficiente:

#! /bin/bash
if ! [[ -f /usr/share/xfce4/terminal/colorschemes/.theme ]]
then
    echo "No such colorscheme: "
    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/.theme" >> .terminalrc.tmp
cp terminalrc terminalrc.bak
mv .terminalrc.tmp terminalrc

Copie isso para algum lugar no seu PATH (por exemplo, ~/bin/xfce-color-switch ). Então:

$ xfce4-color-switch dark-pastels

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

Você terá que lembrar os nomes do esquema de cores para isso, mas adicionarei instruções sobre como adicionar a conclusão da tabulação depois que eu os descobrir.

    
por muru 21.09.2015 / 00:38
2

Uma abordagem melhor seria: crie seu próprio esquema de cores e permita-se escolher um entre muitos.

Para fazer isso, crie o diretório:

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

E coloque arquivos assim dentro:

[Scheme]
Name=971 good
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)

Se você já tiver um arquivo terminalrc configurado no diretório ~/.config/xfce4/terminal , basta copiar as linhas apropriadas.

Depois disso, seu novo esquema de cores aparece dentro da lista principal. Assim, você pode, por exemplo, ter um tema personalizado de cor branca e um preto personalizado.

    
por VasyaNovikov 19.01.2017 / 08:22