minibuffer-setup-hook digunakan hanya ketika minibuffer diatur, yaitu diaktifkan, bukan saat dinonaktifkan.
minibuffer-exit-hookberlaku saat minibuffer keluar. Ada juga minibuffer-inactive-mode-hook.
Tetapi meskipun mereka melakukan perubahan warna (seperti yang ditunjukkan dengan menambahkan (debug)di awal fungsi hook, dan kemudian melangkah melalui debugger dengan d), tampaknya kill-local-variablesmenghapus warna yang ditambahkan di beberapa titik. Saya tidak punya waktu sekarang untuk memeriksa lebih lanjut, tetapi mungkin Anda bisa, atau mungkin orang lain punya solusi cepat. Maaf karena hanya memberikan info yang tidak lengkap.
Harus pergi sekarang - tetapi dengan cepat, saya kira mungkin Anda tidak perlu bermain-main dengan kait sama sekali, dan Anda bisa melakukan remapping wajah untuk semua buffer dengan nama yang cocok \` \*Minibuf-[0-9]+\*\'.
FWIW, saya menggunakan frame minibuffer terpisah , dan saya gunakan ini minibuffer-exit-hookuntuk mewarnai latar belakang frame:
(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)))))))