It's now called `auto-dim-other-buffers` and it just got a whole lot more efficient and faster: https://github.com/sdegutis/auto-dim-other-buffers.el

There's one bug left that I don't know how to fix: for some reason, anything echoed in the echo area is dimmed. Not really sure why or even how.

Why didn't anything like this exist all this time? I've checked stackoverflow for something like this months ago and the "chosen answer" was to just use a more distinct modeline. But this is much better.

-Steven


On Tue, Apr 2, 2013 at 4:06 PM, Steven Degutis <sbdegutis@gmail.com> wrote:
    (defun auto-dim-other-windows ()
      (make-face 'sd/dimmed-font)
      (set-face-attribute 'sd/dimmed-font nil :background "black")
    
      (defun sd/prominantize-current-buffer (fn)
        (buffer-face-set 'sd/dimmed-font)
        (funcall fn)
        (buffer-face-set nil))
    
      (defmacro sd/advise-window-changing-fn (fn)
        `(defadvice ,fn (around window-changing-fn-advice activate)
           (sd/prominantize-current-buffer (lambda () ad-do-it))))
    
      (sd/advise-window-changing-fn other-window)
      (sd/advise-window-changing-fn other-frame)
      (sd/advise-window-changing-fn next-buffer)
      (sd/advise-window-changing-fn previous-buffer)
      (sd/advise-window-changing-fn quit-window)
      (sd/advise-window-changing-fn mouse-select-window))

-Steven