Em st tip (e a versão 0.3) não é necessário editar st.c, apenas insira as cores solarizadas em config.h. Parece que st.c e config.h foram alterados desde que fiz esta pergunta.
Eu quero usar st com solarized colors como eu posso com urxvt
(claro que isso é feito via .Xresources
, em st
as cores são definidas em um arquivo de cabeçalho). Eu tentei colocar as cores no arquivo de configuração st
(config.h), mas as cores são "usadas para as coisas erradas" em st
(por exemplo, dircolors e cores em vim
são rearranjadas em relação para urxvt
).
Eu acho que tenho que modificar as seqüências de escape usadas por st
, mas não estou chegando a lugar nenhum. Alguém pode me oferecer uma dica sobre como aplicar as cores solarizadas a st
?
Eu não tenho nenhuma experiência anterior com st além de usá-lo, mas ao olhar para a fonte, acho que encontrei as partes que são relevantes.
Eu presumi que por usar cores solarizadas você queria que todas as aplicações que usam azul padrão usassem solarized blue .
Você precisará fazer algumas alterações na fonte em st.c ao invés de apenas config.h.
dc é uma variável global que é uma instância da estrutura DC, cada dc.cols[i]
corresponde a uma cor a ser usada.
As primeiras 16 cores dentro de config.h
colorname são carregadas via XAllocNamedcolor
dentro da função xloadcols(void)
, estas são inseridas nas primeiras 16 posições (0 a 15) dentro de dc.col
.
Elas correspondem a cores de sequência de escape ansi, para mais informações, consulte Código de escape ANSI :: Cores .
Você precisaria alterar essa funcionalidade dentro de xloadcols(void)
, especificamente o primeiro loop for.
Em vez de usar XAllocNamedColor
, você poderia usar XAllocColor
(você pode ver um exemplo disso no segundo loop for), isso permite que você especifique o rgb de cada cor a ser inserido em cada posição (em vez de carregar um já cor conhecida a partir de um nome).
Para os valores hexadecimais, veja solarized.vim especificamente linhas 98 através de 116 onde os valores hexadecimais são especificados.
O restante de dc.cols
é alocado dentro de um loop for, também encontrado em xloadcols(void)
, você provavelmente não precisará alterar isso, embora isso signifique que alguns aplicativos possam usar essas cores em vez de suas cores solarizadas.
Quanto às cores padrão de fundo e primeiro plano, estas são definidas dentro de config.h, linhas 40 e abaixo.
cada #define name index
define que dc.col [index] deve ser usado para nome, por exemplo, DefaultBg
especifica a cor de fundo do terminal.
Solarized está agora disponível como um patch oficial contra config.def.h
: