Tema de fundo com opacidade? Ou retorno de chamada de tema?


7

Duas questões relacionadas

  1. É possível usar a opacidade durante a temática no emacs? Quero dizer, definir o tema que, por exemplo, adicionaria 25% de azul à cor de fundo dos elementos aos quais é aplicado. Ou o que tornaria a fonte 30% mais leve.

Ou, se não.

  1. É possível recalcular dinamicamente algumas propriedades do tema sempre que o tema personalizado principal é alterado?

fundo

Isso seria ótimo para vários modos de "adicionar alguma marca". Um caso que refiro-me especificamente é a face do erro de verificação do flycheck, que seria menos invasiva se desse ao fundo um leve sotaque vermelho em vez de sublinhar o texto.

Mas meu caso principal é o modo de mira (que combina o destaque da linha atual e da coluna atual). Eu o configurei para usar o fundo um pouco diferente do padrão, e isso criou uma boa indicação sutil da localização do cursor. Mas uma vez que comecei a alternar temas com mais frequência, acabou sendo um incômodo, pois a cor adequada depende do fundo atual.


Aqui está uma idéia: As funções gamgrid-colore gamegrid-colorize-glyphinterior gamegrid.elsão um exemplo combinado em que o sombreamento pode ser usado para criar diferentes níveis de coloração - por exemplo, os tons usados 0,6 ou 0,8 ou 1,0 (cores). A cor que se deseja alterar dentro de um tema pode ser feita programaticamente, convertendo a cor em um vetor de 3 elementos usando a função color-name-to-rgbde color.el. A função face-remap-add-relativepode ser usada para tornar um local de buffer de face específico: gnu.org/software/emacs/manual/html_node/elisp/…
lawlist

Em certos sistemas operacionais, o modo de retículo pode ser feito para usar um vline-stylede 'compose[use composit char] ou 'mixed[use face and composit char] para criar um efeito de passagem vertical. O valor padrão é 'face. As vline-styleopções 'composee 'mixedfuncionam imediatamente no Windows, mas não funcionam no OSX. O efeito de passagem vertical com 'composenão usa um rosto e isso talvez resolva seu problema com a cor de fundo interferindo na visualização da linha vertical.
lawlist

Respostas:


2

Finalmente eu mesmo encontrei uma solução mais ou menos satisfatória. Ainda assim, não tenho certeza se é perfeito.

1) A biblioteca hexrgb.el fornece boas funções para realizar cálculos de cores reais. Por exemplo:

(hexrgb-increment-green (face-background 'default) 2 20)

calcula a cor que é um pouco mais verde do que o fundo atual (nos parâmetros acima, 2 são quantos dígitos cada cor tem e 20 é mudança relativa).

2) Aconselhei o tema de carregamento (enquanto escrevo isso, me ocorreu que esse não é o lugar certo e que alguma API de nível inferior - tema de ativação ou sth ainda mais profundo - poderia ser melhor) para alterar vários atributos de hl-line e rostos com destaque de cores após a alteração do tema (eu tive que definir a cor real, mas também limpar: herdar).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.