Brutalist Theme

This is a minimalistic colour theme. That is, it tries to minimize the use of colours and prefers to use size difference and font-weight to highlight the few things it wants to highlight. I guess it’s somewhat inspired by Rob Pike’s idea to not have any syntax highlighting at all.

Screenshot

Brutalist_Theme_Image Brutalist_Theme_Image_Dark

Switching between Brutalist and Brutalist Dark

This code switches between the two themes based on whether the sun is up or not.

;; load both themes
(load-theme 'brutalist t t)
(load-theme 'brutalist-dark t t)

(require 'solar)

;; set these to your current location
(setq calendar-latitude [47 22 north]
      calendar-longitude [8 33 east])

(defun enable-appropriate-brutalist-theme ()
  "Enable the brutalist or brutalist-dark theme
depending on the time of day."
  (interactive)
  (let* ((date (calendar-current-date))
	 (data (solar-sunrise-sunset date))
	 (sunrise (car (car data)))
	 (sunset (car (cadr data)))
	 (time (decode-time))
	 (now (+ (nth 2 time) (/ (nth 1 time) 60.0))))
    (cond ((< now sunrise)
	   (message "%dh and %02dmin to go until sunrise"
		    (truncate (- sunrise now))
		    (round (mod (* 60 (- sunrise now)) 60))))
	  ((< now sunset)
	   (message "%dh and %02dmin to go until sunset"
		    (truncate (- sunset now))
		    (round (mod (* 60 (- sunset now)) 60))))
	  (t
	   (message "%dh and %02dmin to go until sunrise"
		    (truncate (- (+ 24 sunrise) now))
		    (- 60 (round (mod (* 60 (- (+ 24 sunrise) now)) 60))))))
    (if (and (< sunrise now) (< now sunset))
	(enable-theme 'brutalist)
      (enable-theme 'brutalist-dark))))

;; and do it
(enable-appropriate-brutalist-theme)

Changes for rcirc

(custom-theme-set-faces
 'brutalist
 ;; rcirc-my-nick needs to have a foreground for `rcirc-colors' to work
 '(rcirc-my-nick ((t (:foreground "blue"))))
 '(rcirc-dim-nick ((t (:foreground "dim gray"))))
 '(rcirc-prompt ((t (:inherit bold)))))

(custom-theme-set-faces
 'brutalist-dark
 ;; rcirc-my-nick needs to have a foreground for `rcirc-colors' to work
 '(rcirc-my-nick ((t (:foreground "light blue"))))
 '(rcirc-dim-nick ((t (:foreground "gray70"))))
 '(rcirc-prompt ((t (:inherit bold)))))

Setting the colours for ANSI escape codes

See SGR parameters on Wikipedia. The ansi colours are used in shells, Elpher, etc.

(custom-theme-set-variables
 'brutalist-dark
 '(ansi-color-names-vector
   ["black" "salmon" "yellow green" "light goldenrod" "steel blue" "orchid" "turquoise" "#eeeee8"]))

ColorTheme