「フォーカスされたウィンドウをよりよく区別する」ために、アクティブウィンドウのフリンジカラーを変更するだけでなく、他の方法を使用してそれを行うことができます。
3つの方法を組み合わせて、アクティブウィンドウと非アクティブウィンドウをより適切に区別します。
- アクティブウィンドウと非アクティブウィンドウに異なる色のモードラインを使用します。
- ポイントがアクティブなウィンドウにある現在の行を強調表示します。
- アクティブウィンドウと非アクティブウィンドウに異なる背景色を使用します。
上記で選択したすべての色は、Emacsテーマでうまく機能するはずです。
3つの方法はすべて次のとおりです。
アクティブウィンドウと非アクティブウィンドウに異なる色のモードラインを使用します。
(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
。