Como obter o perfil atual do terminal do GNOME?

2

Eu sei sobre gsettings e dconf , mas não consigo encontrar nenhuma menção ao perfil ativo. Parece que você só pode listar perfis sem saber qual é o perfil atual.

Eu quero consultar a cor do plano de fundo para definir o plano de fundo no Vim adequadamente.

    
por user1685095 03.03.2017 / 09:17

1 resposta

3

A questão foi modificada nos comentários: Como obter a cor de fundo? Para isso, o comando xtermcontrol --get-bg pode ser usado.

Esse comando específico depende do emulador de terminal que suporta a seqüência de escape do OSC 11, que geralmente acompanha o OSC 12 (primeiro plano; xtermcontrol --get-fg ), OSC 4 (cores da paleta; xtermcontrol --get-color0 .. --get-color15 ) e alguns outros. Alguns emuladores de terminal populares implementam estes, alguns outros populares não, portanto, esses comandos não funcionam em todos os lugares. O widget VTE e, por sua vez, emuladores de terminal baseados em VTE, como gnome-terminal , suportam estes.

Essas seqüências de escape são bastante complicadas quando são usadas para consultar as cores em vez de defini-las: A resposta é injetada pelo emulador de terminal exatamente como se viesse do teclado, ou seja, como se o usuário o tivesse digitado. xtermcontrol lê essa entrada e depois imprime como saída, ocultando esse detalhe técnico. (E se você realmente quiser, você pode enganar xtermcontrol para reportar uma resposta errada digitando manualmente a partir do teclado, haha.)

Voltar para a pergunta original:

Não há como consultar o perfil atual no gnome-terminal. Por quê?

  • A leitura de gsettings ou dconf não pode funcionar por dois motivos:

    1. Eles contêm a configuração estática (configurações) do gnome-terminal, não as informações de tempo de execução. Mesmo que contivessem informações de tempo de execução, elas teriam que conter as informações de todas as janelas e guias abertas do terminal gnome, cada uma das quais poderia estar usando um perfil separado. E então, de alguma forma, ainda precisaríamos identificar qual deles procurar.

    2. Eles só podem funcionar localmente, não em, por exemplo, su ou ssh .

  • O gnome-terminal pode inicializar uma variável de ambiente quando uma janela ou aba é aberta, mas não há como atualizá-la subseqüentemente se o perfil for alterado. (Veja também a discussão sobre $COLORFGBG no link .)

  • Ele poderia relatar o perfil atual como uma resposta a alguma seqüência de escape, como se o usuário o tivesse digitado do teclado (similarmente ao OSC 4, 10, 11). No entanto, não há um padrão para isso, e isso até teria implicações de segurança (veja link ), mais presumivelmente não há suporte no utilitário xtermcontrol por muitos anos (ainda não suporta 256 cores ainda).

por egmont 04.03.2017 / 01:01