 
     ;; TODO
     ;; - Replace with variable values
-    ;;RainbowDelimiters
+    ;; RainbowDelimiters
     `(rainbow-delimiters-depth-1-face   ((t (:foreground "#458588"))))
     `(rainbow-delimiters-depth-2-face   ((t (:foreground "#b16286"))))
     `(rainbow-delimiters-depth-3-face   ((t (:foreground "#cc241d"))))

      (gruvbox-light3      (if (display-graphic-p) "#bdae93" "color-248"))
      (gruvbox-light4      (if (display-graphic-p) "#a89984" "color-246"))

      ;; neutral, no 256-color version, will request
      ;(gruvbox-red         (if (display-graphic-p) "#fb4934" "color-"))
      ;(gruvbox-green       (if (display-graphic-p) "#b8bb26" "color-"))
      ;(gruvbox-yellow      (if (display-graphic-p) "#fabd2f" "color-"))
      ;(gruvbox-blue        (if (display-graphic-p) "#83a598" "color-"))
      ;(gruvbox-purple      (if (display-graphic-p) "#d3869b" "color-"))
      ;(gruvbox-aqua        (if (display-graphic-p) "#8ec07c" "color-"))
      ;(gruvbox-orange      (if (display-graphic-p) "#fe8019" "color-")))
      (gruvbox-red         "#fb4934")
      (gruvbox-green       "#b8bb26")
      (gruvbox-yellow      "#fabd2f")
      (gruvbox-blue        "#83a598")
      (gruvbox-purple      "#d3869b")
      (gruvbox-aqua        "#8ec07c")
      (gruvbox-orange      "#fe8019"))

  (custom-theme-set-faces
    'gruvbox

    ;;UI
    `(default ((t (:background ,gruvbox-dark0 :foreground ,gruvbox-light0))))
    `(cursor ((t (:background ,gruvbox-light0))))
    `(mode-line ((t (:box nil :background ,gruvbox-dark4 :foreground ,gruvbox-dark0))))

    `(rainbow-delimiters-depth-12-face  ((t (:foreground "#d65d0e"))))
    `(rainbow-delimiters-unmatched-face ((t (:background nil :foreground ,gruvbox-light0))))

    ;; linum-relative
    `(linum-relative-current-face ((t (:background ,gruvbox-dark1 :foreground ,gruvbox-light4))))

    ;; Smartparens
    `(sp-pair-overlay-face ((t (:background ,gruvbox-dark2))))
    ;`(sp-wrap-overlay-face ((t (:inherit sp-wrap-overlay-face))))
    ;`(sp-wrap-tag-overlay-face ((t (:inherit sp-wrap-overlay-face))))
    `(sp-show-pair-match-face ((t (:background ,gruvbox-dark2)))) ;; Pair tags highlight
    `(sp-show-pair-mismatch-face ((t (:background ,gruvbox-neutral_red)))) ;; Highlight for bracket without pair

    ;; elscreen
    `(elscreen-tab-background-face ((t (:box nil :background ,gruvbox-dark0)))) ;; Tab bar, not the tabs
    `(elscreen-tab-control-face ((t (:box nil :background ,gruvbox-dark2 :foreground ,gruvbox-neutral_red :underline nil)))) ;; The controls
    `(elscreen-tab-current-screen-face ((t (:box nil :background ,gruvbox-dark4 :foreground ,gruvbox-dark0)))) ;; Current tab
    `(elscreen-tab-other-screen-face ((t (:box nil :background ,gruvbox-dark2 :foreground ,gruvbox-light4 :underline nil)))) ;; Inactive tab

    ;; ag (The Silver Searcher)
    `(ag-hit-face ((t (:foreground ,gruvbox-neutral_blue))))
    `(ag-match-face ((t (:foreground ,gruvbox-neutral_red))))

    ;; Diffs
    `(diff-changed ((t (:background nil :foreground ,gruvbox-light1))))
    `(diff-added ((t (:background nil :foreground ,gruvbox-neutral_green))))
    `(diff-removed ((t (:background nil :foreground ,gruvbox-neutral_red))))
    `(diff-indicator-changed ((t (:inherit diff-changed))))
    `(diff-indicator-added ((t (:inherit diff-added))))
    `(diff-indicator-removed ((t (:inherit diff-removed))))

    ;; Term
    `(term-color-black ((t (:foreground ,gruvbox-dark1))))
    `(term-color-blue ((t (:foreground ,gruvbox-neutral_blue))))
    `(term-color-cyan ((t (:foreground ,gruvbox-neutral_aqua))))
    `(term-color-green ((t (:foreground ,gruvbox-neutral_green))))
    `(term-color-magenta ((t (:foreground ,gruvbox-neutral_purple))))
    `(term-color-red ((t (:foreground ,gruvbox-neutral_red))))
    `(term-color-white ((t (:foreground ,gruvbox-light1))))
    `(term-color-yellow ((t (:foreground ,gruvbox-neutral_yellow))))
    `(term-default-fg-color ((t (:foreground ,gruvbox-light0))))
    `(term-default-bg-color ((t (:background ,gruvbox-dark0)))))

(custom-theme-set-variables
  'gruvbox

  `(ansi-color-names-vector [,gruvbox-dark1 ,gruvbox-neutral_red
    ,gruvbox-neutral_green ,gruvbox-neutral_yellow ,gruvbox-neutral_blue
    ,gruvbox-neutral_purple ,gruvbox-neutral_aqua ,gruvbox-light1])))

(defun gruvbox-set-ansi-color-names-vector ()
  "Give comint and the like the same colours as the term colours we set"
