minibuffer-setup-hook yalnızca minibuffer ayarlandığında, yani etkinleştirildiğinde, devre dışı bırakıldığında kullanılmaz.
minibuffer-exit-hookminibufferdan çıkıldığında etkili olur. Ayrıca var minibuffer-inactive-mode-hook.
Ancak bunlar renk değişikliğini başlatmasına rağmen ( (debug)kanca işlevinin başına ekleyerek ve ardından hata ayıklayıcıdan adım adım geçerek gösterildiği dgibi), kill-local-variablesbir noktada eklenen rengi kaldırdığı görülmektedir . Şimdi daha fazla kontrol etmek için zamanım yok, ama belki yapabilirsin, ya da belki başka birinin hızlı bir çözümü var. Yalnızca eksik bilgi sağladığım için üzgünüm.
Şimdi gitmeliyim - ama çabucak, belki de kancalarla uğraşmanıza gerek olmadığını tahmin ediyorum ve sadece isim eşleşmeleri ile tüm tamponlar için yüz yeniden eşleme yapabilirsiniz \` \*Minibuf-[0-9]+\*\'.
FWIW, ayrı bir minibuffer çerçeve kullanıyorum ve bunu minibuffer-exit-hookçerçeve arka planını renklendirmek için taktım :
(defun 1on1-color-minibuffer-frame-on-exit ()
"Change background of minibuffer frame to reflect the minibuffer depth.
Use this when reducing the minibuffer recursion depth."
(when 1on1-minibuffer-frame
(save-window-excursion
(select-frame 1on1-minibuffer-frame)
(cond ((= (minibuffer-depth) 2)
(set-background-color 1on1-active-minibuffer-frame-background))
((< (minibuffer-depth) 2)
(set-background-color 1on1-inactive-minibuffer-frame-background))
(t
(set-background-color (hexrgb-increment-hue ; Change bg hue slightly.
(frame-parameter nil 'background-color)
1on1-color-minibuffer-frame-on-exit-increment)))))))