minibuffer-setup-hook
é usado somente quando o minibuffer está configurado, ou seja, ativado, não quando está desativado.
minibuffer-exit-hook
entra em vigor quando o minibuffer é encerrado. Há também minibuffer-inactive-mode-hook
.
Mas, embora eles iniciem a mudança de cor (conforme mostrado ao adicionar (debug)
no início da função de gancho e depois passar pelo depurador d
), parece que isso kill-local-variables
remove a cor adicionada em algum momento. Agora não tenho tempo para checar mais, mas talvez você possa, ou talvez alguém tenha uma solução rápida. Desculpe por fornecer apenas informações incompletas.
Tenho que ir agora - mas rapidamente, acho que talvez você não precise mexer em ganchos, e você pode simplesmente fazer o remapeamento de rosto para todos os buffers com nomes correspondentes \` \*Minibuf-[0-9]+\*\'
.
FWIW, eu uso um quadro minibuffer separado e o coloco minibuffer-exit-hook
para colorir o fundo do quadro:
(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)))))))