auto-dim-other-buffers

Homepage: https://github.com/mina86/auto-dim-other-buffers.el

Author: Michal Nazarewicz

Updated:

Summary

Makes windows without focus less prominent

Commentary

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.

Dependencies