def populate_colormap
    user_colors = if File.exist? Redwood::COLOR_FN
      debug "loading user colors from #{Redwood::COLOR_FN}"
      Redwood::load_yaml_obj Redwood::COLOR_FN
    end

    ## Set attachment sybmol to sane default for existing colorschemes
    if user_colors and user_colors.has_key? :to_me
      user_colors[:with_attachment] = user_colors[:to_me] unless user_colors.has_key? :with_attachment
    end

    Colormap::DEFAULT_COLORS.merge(user_colors||{}).each_pair do |k, v|
      fg = begin
        Ncurses.const_get "COLOR_#{v[:fg].to_s.upcase}"
      rescue NameError
        warn "there is no color named \"#{v[:fg]}\""
        Ncurses::COLOR_GREEN
      end

      bg = begin
        Ncurses.const_get "COLOR_#{v[:bg].to_s.upcase}"
      rescue NameError
        warn "there is no color named \"#{v[:bg]}\""
        Ncurses::COLOR_RED
      end

      attrs = (v[:attrs]||[]).map do |a|
        begin
          Ncurses.const_get "A_#{a.upcase}"
        rescue NameError
          warn "there is no attribute named \"#{a}\", using fallback."
          nil
        end
      end.compact

      highlight_symbol = v[:highlight] ? :"#{v[:highlight]}_color" : nil

      symbol = (k.to_s + "_color").to_sym
      add symbol, fg, bg, attrs, highlight_symbol
    end
  end
def populate_colormap
    user_colors = if File.exist? Redwood::COLOR_FN
      debug "loading user colors from #{Redwood::COLOR_FN}"
      Redwood::load_yaml_obj Redwood::COLOR_FN
    end

    ## Set attachment sybmol to sane default for existing colorschemes
    if user_colors and user_colors.has_key? :to_me
      user_colors[:with_attachment] = user_colors[:to_me] unless user_colors.has_key? :with_attachment
    end

    Colormap::DEFAULT_COLORS.merge(user_colors||{}).each_pair do |k, v|
      fg = begin
        Ncurses.const_get "COLOR_#{v[:fg].to_s.upcase}"
      rescue NameError
        warn "there is no color named \"#{v[:fg]}\""
        Ncurses::COLOR_GREEN
      end

      bg = begin
        Ncurses.const_get "COLOR_#{v[:bg].to_s.upcase}"
      rescue NameError
        warn "there is no color named \"#{v[:bg]}\""
        Ncurses::COLOR_RED
      end

      attrs = (v[:attrs]||[]).map do |a|
        begin
          Ncurses.const_get "A_#{a.upcase}"
        rescue NameError
          warn "there is no attribute named \"#{a}\", using fallback."
          nil
        end
      end.compact

      highlight_symbol = v[:highlight] ? :"#{v[:highlight]}_color" : nil

      symbol = (k.to_s + "_color").to_sym
      add symbol, fg, bg, attrs, highlight_symbol
    end
  end
Try to use the user defined colors, in case of an error fall back
 to the default ones.