This page is about changing the colors of an Emacs Frame.

You have at least these options:

You can use command ‘pick-background-at-point’ or ‘pick-background-at-mouse-pointer’ to pick up the background at some place (Face background or Frame background), and then use that as the starting point for ‘doremi-bg’. This acts like an “eye dropper”.

You can also set the foreground and background colors of individual faces – see commands ‘doremi-face-fg-rgb’ and ‘doremi-face-bg-rgb’ in Lisp:doremi-frm.el. The eye-dropper functionality applies there, as well.

I’ve recently experimented with having one frame with light colors and another with dark. While ‘defface’ allows you to specify different colors for dark and light backgrounds, it doesn’t seem to update faces consistently after set-*-color is called (e.g. the modeline and cperl faces won’t change). The “solution” I’ve found is to call ‘face-spec-set’ again for all the faces that haven’t updated. Anyone have a better solution? - Anonymous
I don’t know if this will help, but try ‘frame-update-face-colors’. The comment in the code says this (but note that ‘FACE’ is not an argument – it acts on all faces in ‘global-face-data’):
        Update the colors of FACE, after FRAME's own colors have been changed.
        This applies only to faces with global color specifications
        that are not simple constants.

CategoryFaces CategoryFrames CategoryCustomize