1
0
mirror of https://github.com/sellout/emacs-color-theme-solarized.git synced 2024-07-26 12:17:59 +02:00
emacs-color-theme-solarized/solarized-theme.el
Greg Pfeil addd445155
Eliminate create-solarized-theme macro
This was a remnant from having separate solarized-dark and -light themes. We
only ever produce one theme now, so use the usual theme definition mechanism.
2023-02-07 11:34:36 -07:00

51 lines
2.0 KiB
EmacsLisp
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;; solarized-theme.el --- Solarized custom theme -*- lexical-binding: t; -*-
(require 'solarized-definitions
(locate-file "solarized-definitions.el" custom-theme-load-path
'("c" "")))
(deftheme solarized solarized-description)
(apply #'custom-theme-set-faces 'solarized (solarized-color-definitions))
(custom-theme-set-variables
'solarized
;; This is obsolete, but something might still be referencing it.
`(ansi-color-names-vector
,(apply #'vector
(mapcar (lambda (color-name)
(nth 1 (assoc color-name solarized-colors)))
'(base02 red green yellow blue magenta cyan base2)))))
(cl-defun solarized-update-background-mode
(appearance &optional (frames (frame-list)))
"Set the APPEARANCE of all frames to either 'light or 'dark.
This is not specific to Solarized it will update the appearance of any theme
that observes the background characteristic."
(setq frame-background-mode appearance)
(mapc #'frame-set-background-mode frames)
;; Supposedly #'frame-set-background-mode updates the faces, but it doesnt
;; seem to actually., so re-enable all the themes.
(mapc #'enable-theme (reverse custom-enabled-themes))
;; For some reason, enable-theme (or maybe solarized?) is resetting the
;; frame-background-mode, so reset it here.
(setq frame-background-mode appearance))
(defun solarized-toggle-background-mode ()
"Toggle between light and dark background modes.
This is not specific to Solarized it will update the appearance of any theme
that observes the background characteristic."
(interactive)
(let ((new-mode (pcase frame-background-mode
('dark 'light)
(_ 'dark))))
(solarized-update-background-mode new-mode)))
;;;###autoload
(when load-file-name
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
(provide-theme 'solarized)
;;; solarized-theme.el ends here