Da Sie "Fokusfenster besser unterscheiden" möchten, können Sie dies auch auf andere Weise tun, anstatt nur die Randfarbe des aktiven Fensters zu ändern.
Ich kombiniere drei Möglichkeiten, um zwischen aktiven und inaktiven Fenstern besser unterscheiden zu können.
- Verwenden Sie für die aktiven und inaktiven Fenster unterschiedliche Farben der Moduszeile.
- Markieren Sie die aktuelle Linie, in der sich der Punkt im aktiven Fenster befindet.
- Verwenden Sie für die aktiven und inaktiven Fenster unterschiedliche Hintergrundfarben.
Beachten Sie, dass alle oben genannten ausgewählten Farben gut zu Ihrem Emacs-Thema passen sollten.
Hier sind alle drei Möglichkeiten:
Verwenden Sie für die aktiven und inaktiven Fenster unterschiedliche Farben der Moduszeile:
(custom-set-faces
'(mode-line ((t (:background "dim gray" :foreground "white"))))
'(mode-line-inactive ((t (:background nil)))))
Markieren Sie die aktuelle Linie, in der sich der Punkt im aktiven Fenster befindet:
(global-hl-line-mode 1)
;; underline the current line
(set-face-attribute hl-line-face nil :underline t)
Verwenden Sie unterschiedliche Hintergrundfarben für die aktiven und inaktiven Fenster:
(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)
Sie können die Farben in den Codefragmenten so ändern, dass sie gut zu Ihrem Emacs-Thema passen.
Dies ist der letzte Screenshot:
Und es gibt eine weitere Funktion, mit der Sie das aktive Fenster manuell flashen können:
(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)))
Sie können die Tastenkombination im Code-Snippet ändern. Wenn Sie das aktive Fenster anzeigen möchten, drücken Sie die Taste. Das aktive Fenster ist blau. Nachdem Sie den Mauszeiger bewegt haben, ist die Farbe verschwunden.
M-x customize-face mode-line-inactive
.