Homepage: https://github.com/mina86/auto-dim-other-buffers.el
Author: Michal Nazarewicz
Updated:
Makes windows without focus less prominent
The `auto-dim-other-buffers-mode' is a global minor mode which makes windows
without focus less prominent. With many windows in a frame, this mode helps
recognise which is the selected window by providing a non-intrusive but still
noticeable visual indicator.
# Installation
The preferred way to install the mode is by grabbing
`auto-dim-other-buffers' package form NonGNU ELPA:
M-x package-install RET auto-dim-other-buffers RET
Once installed, enable the mode with:
M-x auto-dim-other-buffers-mode RET
To make the mode enabled every time Emacs starts, add the following to Emacs
initialisation file (see `user-init-file'):
(add-hook 'after-init-hook (lambda ()
(when (fboundp 'auto-dim-other-buffers-mode)
(auto-dim-other-buffers-mode t))))
To configure how dimmed buffers look, customise
`auto-dim-other-buffers'. This can be accomplished by:
M-x customize-face RET auto-dim-other-buffers RET
More options can be found in `auto-dim-other-buffers' customisation
group which can be accessed with:
M-x customize-group RET auto-dim-other-buffers RET
Highlighting of fringes can be done by removing `fringe' entry from
`auto-dim-other-buffers-affected-faces' list. Either via customising
the variable or using the following snippet:
(setq auto-dim-other-buffers-affected-faces
(assq-delete-all 'fringe auto-dim-other-buffers-affected-faces))
## Troubleshooting
### My screen is flickering
By its nature, `auto-dim-other-buffers-mode' often forces full-window
refreshes which may cause flickering on some systems and displays. To
mitigate it, try disabling `fringe' highlighting which—due to Emacs’ display
code limitation—require full-frame refresh. See Customisation section above
for instruction how to do it.
### Text which should be hidden in org-mode is not
To hide text, `org-mode' uses `org-hide' face whose foreground is set to the
background colour of the `default' face. When `auto-dim-other-buffers-mode'
changes background of a dimmed window it also needs to be applied to the
`org-hide' face. The good news is that this is supported out of the box.
The caveat is that it requires that `auto-dim-other-buffers' and
`auto-dim-other-buffers-hide' are changed in sync.
If text which should be hidden in org-mode is visible faintly, the most
likely reason is that the latter face has not been updated. The solution is
to customise it via
M-x customize-face RET auto-dim-other-buffers-hide-face RET
and set its foreground and background to match background of the
`auto-dim-other-buffers'.
## Afterword
Note that despite its name, the mode operates on *windows* rather than
buffers. In other words, selected window is highlighted and all other
windows are dimmed even if they display the same buffer. The package is
named `auto-dim-other-buffer' for historical reasons.