Substitui permanentemente a cor de fundo do tema Emacs

9

Eu quero usar o tema do Emacs billw , exceto com uma cor de fundo diferente. Eu tenho o seguinte no meu arquivo .emacs :

(require 'color-theme)
(color-theme-initialize)
(color-theme-billw)
(set-background-color "gray12")

No entanto, isso não parece mudar a cor de fundo na inicialização; Eu preciso executar manualmente set-background-color "gray12" no minibuffer no início de cada sessão.

Qualquer ajuda com isso? Eu tentei criar meu próprio tema personalizado com base na saída de color-theme-print , mas isso causou mais problemas do que vale a pena ...

    
por John J. Camilleri 01.10.2012 / 11:49

2 respostas

5

A função color-theme-billw usa internamente a função color-theme-install-frame-params para alterar os parâmetros do quadro. Assim, você pode alterar os parâmetros do quadro da mesma maneira:

(require 'color-theme)
(color-theme-initialize)
(color-theme-billw)
(color-theme-install-frame-params
  '((background-color . "gray12")))

C-h f color-theme-install-frame-params

(color-theme-install-frame-params PARAMS)

Change frame parameters using alist PARAMETERS.

If color-theme-is-global is non-nil, all frames are modified using modify-frame-parameters and the PARAMETERS are prepended to default-frame-alist. The value of initial-frame-alist is not modified. If color-theme-is-global is nil, only the selected frame is modified. If color-theme-is-cumulative is nil, the frame parameters are restored from color-theme-original-frame-alist.

If the current frame parameters have a parameter minibuffer with value only, then the frame parameters are not installed, since this indicates a dedicated minibuffer frame.

    
por 01.10.2012 / 20:26
3

Posicione o cursor (" ponto " no jargão do GNU Emacs) onde você quer definir o "fundo". De preferência, onde não há texto exibido. Em seguida, insira M-x describe-face .

O Emacs lhe dirá que rosto (tudo que o GNU Emacs pode exibir tem uma "cara") que você está olhando. Muito provavelmente "padrão". Em seguida, na parte inferior da janela, clique em "você pode personalizar esse rosto".

Você está agora "em personalize ". (é apenas um tipo de assistente para obter / definir valores de / para o seu ~ /.emacs ) Defina a cor de fundo desejada e clique em "salvar para futuras sessões".

Lá você tem. Agora olhe para a parte inferior do seu ~ / .emacs, dentro de (custom-set-faces ...) , esta é a sua definição de rosto.

BTW , o tema de cores agora é de alguma forma incorporado no GNU Emacs 24 . Eu tenho isso no meu .emacs:

(custom-set-variables

...stuff...

 '(custom-enabled-themes (quote (tango-dark)))

...stuff...)
    
por 01.10.2012 / 20:42