Thanks, Lars. I tried this approach and it's almost perfect. The only thing I noticed is that when I use M-x or C-s, and the focus is on the echo area, the last active buffer (the one I was before pressing M-x or C-s) doesn't use the `mode-line-buffer-id-active` face.
Example:
https://0x0.st/oH5O.png - see that the `mode-line-buffer-id` face on the right is raised, and I'm not sure where that's coming from, since I didn't set either to be like that.
```
'(mode-line ((t (:background "#000000" :foreground "#ffffff"))))
'(mode-line-buffer-id ((t (:background "white" :foreground "black" :weight normal))))
'(mode-line-highlight ((t (:background "yellow" :box nil))))
'(mode-line-id-inactive ((t (:background "gray10" :foreground "dim gray"))))
'(mode-line-inactive ((t (:inherit nil :background "black" :foreground "dim gray" :inverse-video nil))))
```
Seems the default behavior of emacs is not to change the `mode-line` or `mode-line-buffer-id` on the buffer that M-x or C-s used, so I think that's what's missing from this solution.
@Drew Adams might want to check this too. (not sure if this is the right way to mention people)