Como você deseja "Para distinguir melhor entre a janela focada", você pode usar outras maneiras de fazer isso, em vez de apenas alterar a cor da janela ativa.
Combino três maneiras de distinguir melhor entre janelas ativas e inativas.
- Use cores diferentes da linha de modo para as janelas ativas e inativas.
- Destaque a linha atual em que o ponto está na janela ativa.
- Use cores de fundo diferentes para as janelas ativas e inativas.
Observe que todas as cores escolhidas mencionadas acima devem estar funcionando bem com o seu tema Emacs.
Aqui estão as três maneiras:
Use cores diferentes da linha de modo para as janelas ativas e inativas:
(custom-set-faces
'(mode-line ((t (:background "dim gray" :foreground "white"))))
'(mode-line-inactive ((t (:background nil)))))
Destaque a linha atual em que o ponto está na janela ativa:
(global-hl-line-mode 1)
;; underline the current line
(set-face-attribute hl-line-face nil :underline t)
Use cores de fundo diferentes para as janelas ativas e inativas:
(defun highlight-selected-window ()
"Highlight selected window with a different background color."
(walk-windows (lambda (w)
(unless (eq w (selected-window))
(with-current-buffer (window-buffer w)
(buffer-face-set '(:background "#111"))))))
(buffer-face-set 'default))
(add-hook 'buffer-list-update-hook 'highlight-selected-window)
Você pode alterar as cores nos trechos de código para funcionar bem com o seu tema Emacs.
Esta é a captura de tela final:
E há outra função que você pode usar manualmente para exibir a janela ativa:
(global-set-key (kbd "<f12>") 'flash-active-buffer)
(make-face 'flash-active-buffer-face)
(set-face-attribute 'flash-active-buffer-face nil
:background "blue" :foreground nil)
(defun flash-active-buffer ()
(interactive)
(run-at-time "100 millisec" nil
(lambda (remap-cookie)
(face-remap-remove-relative remap-cookie))
(face-remap-add-relative 'default 'flash-active-buffer-face)))
Você pode alterar a combinação de teclas no trecho de código; quando quiser mostrar a janela ativa, pressionar a tecla, a janela ativa ficará azul; depois que você mover o ponto, a cor desaparecerá.
M-x customize-face mode-line-inactive
.