Tmux: altera a cor de visualizações da borda ao escolher sessões

0

Quando eu crio várias sessões e uso prefix + s para mudar entre elas, a metade inferior da tela mostra uma prévia de cada janela, com seu índice e nome. Como posso alterar a cor dos painéis exibidos na borda?

Imagem:

    
por Tuyen Pham 16.10.2018 / 16:06

1 resposta

0

Essas prévias não são realmente "painéis", na terminologia do tmux, apesar de compartilharem a área do terminal de maneira similar. Então (no atual tmux , 2.7), eles não têm configuração própria, e serão mostrados usando active-window-style . Se você acha que isso é um descuido, você pode criar uma solicitação de recurso :

Why doesn't tmux do $x?

Please send feature requests by email to [email protected].

Corrigir e recompilar

Como alternativa, se você estiver confortável em criar tmux da fonte, será fácil modificar as funções responsáveis.

As linhas verticais entre as visualizações são desenhadas por screen_write_vline e a caixa ao redor de todas elas por screen_write_box . Ambas as funções podem ser encontradas em screen-write.c , e contém esta linha:

    memcpy(&gc, &grid_default_cell, sizeof gc);

gc é do tipo struct grid_cell , que inclui membros fg e bg para primeiro plano e segundo plano, respectivamente.

grid_default_cell é um const , definido em grid.c . Ambos fg e bg são 8, significando default : ele usará os mesmos valores que window-active-style ou (se não tiver sido definido) os próprios padrões do terminal.

Para substituir isso, você pode alterar gc imediatamente depois:

    memcpy(&gc, &grid_default_cell, sizeof gc);
    gc.fg = 1;

Isso definiria o primeiro plano para vermelho antes de desenhar a linha em questão.

Conversão de cores para int

Nos arquivos de configuração, tmux reconhece cores nos seguintes formatos:

The colour is one of: black, red, green, yellow, blue, magenta, cyan, white, aixterm bright variants (if supported: brightred, brightgreen, and so on), colour0 to colour255 from the 256-colour set, default, or a hexadecimal RGB string such as ‘#ffffff’.

Ao defini-las na origem, você precisará fornecê-las como int . A partir da leitura da função colour_fromstring in colour.c , você pode encontrar suas representações numéricas :

  • Cores básicas: 0-7
  • padrão: 8
  • versões "brilhantes" de cores básicas: 90-97
  • índice da paleta de 256 cores : COLOUR_FLAG_256 | índice
  • True Color (RGB de 24 bits): COLOUR_FLAG_RGB | 0x RRGGBB
por 17.10.2018 / 15:00

Tags