Поскольку вы хотите «Чтобы лучше различать сфокусированное окно», вы можете использовать другие способы сделать это, вместо того, чтобы просто изменить цвет рамки активного окна.
Я комбинирую три способа, чтобы лучше различать активные и неактивные окна.
- Используйте разные цвета строки режима для активных и неактивных окон.
- Выделите текущую линию, где точка находится в активном окне.
- Используйте разные цвета фона для активных и неактивных окон.
Обратите внимание, что все выбранные цвета, упомянутые выше, должны хорошо работать с вашей темой Emacs.
Вот все три способа:
Используйте разные цвета строки режима для активных и неактивных окон:
(custom-set-faces
'(mode-line ((t (:background "dim gray" :foreground "white"))))
'(mode-line-inactive ((t (:background nil)))))
Выделите текущую линию, где точка находится в активном окне:
(global-hl-line-mode 1)
;; underline the current line
(set-face-attribute hl-line-face nil :underline t)
Используйте разные цвета фона для активных и неактивных окон:
(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)
Вы можете изменить цвета в фрагментах кода, чтобы они хорошо работали с вашей темой Emacs.
Это последний скриншот:
И есть еще одна функция, которую вы можете использовать вручную, чтобы прошить активное окно:
(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)))
Вы можете изменить привязку клавиш во фрагменте кода, когда вы хотите показать активное окно, нажмите клавишу, активное окно станет синим, после того, как вы переместите указатель, цвет исчезнет.
M-x customize-face mode-line-inactive
.