Substituir permanentemente a cor de fundo do tema Emacs

9

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

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

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

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

John J. Camilleri
fonte

Respostas:

5

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

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

C-hfcolor-theme-install-frame-params

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

Altere os parâmetros do quadro usando alist PARAMETERS.

Se color-theme-is-globalnão for nulo, todos os quadros serão modificados usando modify-frame-parameterse PARAMETERSserão anexados default-frame-alist. O valor de initial-frame-alistnão é modificado. Se color-theme-is-globalfor nulo, apenas o quadro selecionado é modificado. Se color-theme-is-cumulativefor nulo, os parâmetros do quadro são restaurados color-theme-original-frame-alist.

Se os parâmetros do quadro atual tiverem um parâmetro minibuffercom valor only, os parâmetros do quadro não serão instalados, pois isso indica um quadro minibuffer dedicado.

dkim
fonte
3

Posicione o cursor (" ponto " na linguagem GNU Emacs) onde você deseja definir o "plano de fundo". De preferência onde não há texto exibido. Então entre M-x describe-face.

O Emacs dirá a você o rosto de uma bruxa (tudo o que o GNU Emacs pode exibir tem uma "face") que você está vendo. Provavelmente "padrão". Em seguida, na parte inferior da janela, clique em "você pode personalizar esta face".

Agora você está " customizado ". (é apenas uma espécie 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".

Aí está. Agora olhe para a parte inferior do seu ~ / .emacs, por dentro (custom-set-faces ...), esta é a sua definição de rosto.

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

(custom-set-variables

...stuff...

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

...stuff...)
yPhil
fonte
2
Nesse caso, acontece que você precisa fazer o seguinte:(custom-set-faces `(default ((t (:background "gray13")))))
John J. Camilleri