(Emacs/config|elisp)+custom light theme with switches in config.org

This commit is contained in:
2024-08-24 18:51:00 +01:00
parent f9d2fdb928
commit 0e876e09e8
4 changed files with 121 additions and 103 deletions

View File

@@ -1,66 +0,0 @@
(deftheme personal-light
"Created 2023-03-27.")
(custom-theme-set-faces
'personal-light
'(button ((t (:inherit (link)))))
'(company-preview
((t (:foreground "black" :background "deepskyblue"))))
'(company-preview-common ((t (:inherit company-preview))))
'(company-tooltip ((t (:background "white" :foreground "black"))))
'(company-tooltip-annotation ((t (:foreground "grey70" :slant italic))))
'(company-tooltip-selection ((t (:background "grey80" :slant italic))))
'(cursor ((t (:background "grey50"))))
'(dired-ignored ((t (:background "grey80" :slant italic :underline t))))
'(escape-glyph ((((background dark)) (:foreground "cyan")) (((type pc)) (:foreground "magenta")) (t (:foreground "brown"))))
'(fixed-pitch ((t (:family "Monospace"))))
'(font-lock-builtin-face ((((class grayscale) (background light)) (:weight bold :foreground "LightGray")) (((class grayscale) (background dark)) (:weight bold :foreground "DimGray")) (((class color) (min-colors 88) (background light)) (:foreground "dark slate blue")) (((class color) (min-colors 88) (background dark)) (:foreground "LightSteelBlue")) (((class color) (min-colors 16) (background light)) (:foreground "Orchid")) (((class color) (min-colors 16) (background dark)) (:foreground "LightSteelBlue")) (((class color) (min-colors 8)) (:weight bold :foreground "blue")) (t (:weight bold))))
'(font-lock-comment-delimiter-face ((t (:inherit (font-lock-comment-face)))))
'(font-lock-comment-face ((t (:foreground "dim gray"))))
'(font-lock-constant-face ((((class grayscale) (background light)) (:underline (:color foreground-color :style line) :weight bold :foreground "LightGray")) (((class grayscale) (background dark)) (:underline (:color foreground-color :style line) :weight bold :foreground "Gray50")) (((class color) (min-colors 88) (background light)) (:foreground "dark cyan")) (((class color) (min-colors 88) (background dark)) (:foreground "Aquamarine")) (((class color) (min-colors 16) (background light)) (:foreground "CadetBlue")) (((class color) (min-colors 16) (background dark)) (:foreground "Aquamarine")) (((class color) (min-colors 8)) (:foreground "magenta")) (t (:underline (:color foreground-color :style line) :weight bold))))
'(font-lock-doc-face ((t (:inherit (font-lock-string-face)))))
'(font-lock-doc-markup-face ((t (:inherit (font-lock-constant-face)))))
'(font-lock-function-name-face ((((class color) (min-colors 88) (background light)) (:foreground "Blue1")) (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) (((class color) (min-colors 16) (background light)) (:foreground "Blue")) (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) (((class color) (min-colors 8)) (:weight bold :foreground "blue")) (t (:weight bold :inverse-video t))))
'(font-lock-keyword-face ((((class grayscale) (background light)) (:weight bold :foreground "LightGray")) (((class grayscale) (background dark)) (:weight bold :foreground "DimGray")) (((class color) (min-colors 88) (background light)) (:foreground "Purple")) (((class color) (min-colors 88) (background dark)) (:foreground "Cyan1")) (((class color) (min-colors 16) (background light)) (:foreground "Purple")) (((class color) (min-colors 16) (background dark)) (:foreground "Cyan")) (((class color) (min-colors 8)) (:weight bold :foreground "cyan")) (t (:weight bold))))
'(font-lock-negation-char-face ((t nil)))
'(font-lock-preprocessor-face ((t (:inherit (font-lock-builtin-face)))))
'(font-lock-regexp-grouping-backslash ((t (:inherit (bold)))))
'(font-lock-regexp-grouping-construct ((t (:inherit (bold)))))
'(font-lock-string-face ((((class grayscale) (background light)) (:slant italic :foreground "DimGray")) (((class grayscale) (background dark)) (:slant italic :foreground "LightGray")) (((class color) (min-colors 88) (background light)) (:foreground "VioletRed4")) (((class color) (min-colors 88) (background dark)) (:foreground "LightSalmon")) (((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) (((class color) (min-colors 8)) (:foreground "green")) (t (:slant italic))))
'(font-lock-type-face ((((class grayscale) (background light)) (:weight bold :foreground "Gray90")) (((class grayscale) (background dark)) (:weight bold :foreground "DimGray")) (((class color) (min-colors 88) (background light)) (:foreground "ForestGreen")) (((class color) (min-colors 88) (background dark)) (:foreground "PaleGreen")) (((class color) (min-colors 16) (background light)) (:foreground "ForestGreen")) (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen")) (((class color) (min-colors 8)) (:foreground "green")) (t (:underline (:color foreground-color :style line) :weight bold))))
'(font-lock-variable-name-face ((((class grayscale) (background light)) (:slant italic :weight bold :foreground "Gray90")) (((class grayscale) (background dark)) (:slant italic :weight bold :foreground "DimGray")) (((class color) (min-colors 88) (background light)) (:foreground "sienna")) (((class color) (min-colors 88) (background dark)) (:foreground "LightGoldenrod")) (((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod")) (((class color) (min-colors 16) (background dark)) (:foreground "LightGoldenrod")) (((class color) (min-colors 8)) (:weight light :foreground "yellow")) (t (:slant italic :weight bold))))
'(font-lock-warning-face ((t (:inherit (error)))))
'(fringe ((((class color) (background light)) (:background "grey95")) (((class color) (background dark)) (:background "grey10")) (t (:background "gray"))))
'(header-line ((t (:box nil :foreground "grey20" :background "grey90" :inherit (mode-line)))))
'(highlight ((t (:background "grey90"))))
'(homoglyph ((((background dark)) (:foreground "cyan")) (((type pc)) (:foreground "magenta")) (t (:foreground "brown"))))
'(isearch ((((class color) (min-colors 88) (background light)) (:foreground "lightskyblue1" :background "magenta3")) (((class color) (min-colors 88) (background dark)) (:foreground "brown4" :background "palevioletred2")) (((class color) (min-colors 16)) (:foreground "cyan1" :background "magenta4")) (((class color) (min-colors 8)) (:foreground "cyan1" :background "magenta4")) (t (:inverse-video t))))
'(isearch-fail ((((class color) (min-colors 88) (background light)) (:background "RosyBrown1")) (((class color) (min-colors 88) (background dark)) (:background "red4")) (((class color) (min-colors 16)) (:background "red")) (((class color) (min-colors 8)) (:background "red")) (((class color grayscale)) (:foreground "grey")) (t (:inverse-video t))))
'(lazy-highlight ((((class color) (min-colors 88) (background light)) (:background "paleturquoise")) (((class color) (min-colors 88) (background dark)) (:background "paleturquoise4")) (((class color) (min-colors 16)) (:background "turquoise3")) (((class color) (min-colors 8)) (:background "turquoise3")) (t (:underline (:color foreground-color :style line)))))
'(link ((t (:underline (:color foreground-color :style line) :foreground "RoyalBlue3"))))
'(link-visited ((t (:foreground "magenta4" :inherit (link)))))
'(match ((((class color) (min-colors 88) (background light)) (:background "khaki1")) (((class color) (min-colors 88) (background dark)) (:background "RoyalBlue3")) (((class color) (min-colors 8) (background light)) (:foreground "black" :background "yellow")) (((class color) (min-colors 8) (background dark)) (:foreground "white" :background "blue")) (((type tty) (class mono)) (:inverse-video t)) (t (:background "gray"))))
'(minibuffer-prompt ((((background dark)) (:foreground "cyan")) (((type pc)) (:foreground "magenta")) (t (:foreground "medium blue"))))
'(mode-line ((t (:box nil :background "LightSkyBlue" :foreground "black"))))
'(mode-line-buffer-id ((t (:weight bold))))
'(mode-line-emphasis ((t (:weight bold))))
'(mode-line-highlight ((t (:box (:line-width (2 . 2) :color "grey40" :style released-button)))))
'(mode-line-inactive ((t (:foreground "grey20" :background "grey90" :inherit (mode-line)))))
'(next-error ((t (:inherit (region)))))
'(org-block ((t (:background "white" :inherit shadow))))
'(query-replace ((t (:inherit (isearch)))))
'(region ((t (:extend t :background "green yellow" :distant-foreground "gtk_selection_fg_color"))))
'(secondary-selection ((((class color) (min-colors 88) (background light)) (:extend t :background "yellow1")) (((class color) (min-colors 88) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 16) (background light)) (:extend t :background "yellow")) (((class color) (min-colors 16) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 8)) (:extend t :foreground "black" :background "cyan")) (t (:inverse-video t))))
'(shadow ((((class color grayscale) (min-colors 88) (background light)) (:foreground "grey50")) (((class color grayscale) (min-colors 88) (background dark)) (:foreground "grey70")) (((class color) (min-colors 8) (background light)) (:foreground "green")) (((class color) (min-colors 8) (background dark)) (:foreground "yellow"))))
'(tab-bar ((t (:background "white"))))
'(tab-bar-tab ((t (:foreground "gray30" :background "white"))))
'(tab-bar-tab-inactive ((t (:foreground "gray13" :background "gray80"))))
'(tooltip ((t (:foreground "black" :background "lightyellow" :inherit (variable-pitch)))))
'(trailing-whitespace ((((class color) (background light)) (:background "red1")) (((class color) (background dark)) (:background "red1")) (t (:inverse-video t))))
'(variable-pitch ((((type w32)) (:foundry "outline" :family "Arial")) (t (:family "Sans Serif"))))
'(whitespace-line ((t (:background "white" :foreground "violet"))))
'(whitespace-space ((t (:background "white" :foreground "lightgray"))))
'(default ((t (:family "Source Code Pro" :foundry "ADBO" :width normal :height 143 :weight normal :slant normal :underline nil :overline nil :extend nil :strike-through nil :box nil :inverse-video nil :foreground "black" :background "white" :stipple nil :inherit nil))))
)
(provide-theme 'personal-light)

View File

@@ -234,52 +234,54 @@ do that for me.
General look and feel of Emacs (mostly disabling stuff I don't like).
** Themes
I have both a dark and light theme for differing situations.
*** Dark theme
Here I configure which one to load and how to switch between them.
My preferred dark theme is my own "personal-solarized" theme which is
stored in the Emacs lisp folder (look at
[[file:elisp/personal-solarized-theme.el][this file]]). It's
essentially a copy of the solarized theme (from the ~solarized-themes~
package) with a few personal changes.
#+begin_src emacs-lisp
(use-package custom
:init
(setq custom-theme-directory (concat user-emacs-directory "elisp/"))
:config
(load-theme 'personal-solarized t))
#+end_src
*** Switching between light and dark
I'm not very good at designing light themes as I don't really use
them. However they are necessary in high light situations where a
dark mode would strain the eyes too much. So I built a custom theme
on top of the default Emacs theme, "personal-light".
2024-06-11: I now use modus-operandi for my light theme.
I don't use it by default but I may need to switch between light and
dark easily, so here's a command to switch between them.
My preferred light theme is modus-operandi, mostly because I don't
care to design my own light theme and I rarely use them. They are
necessary in high light situations where a dark mode would strain the
eyes too much.
#+begin_src emacs-lisp
(use-package custom
:defer t
:commands +oreo/switch-theme
:init
(defvar +oreo/theme 'dark)
(setq custom-theme-directory (concat user-emacs-directory "elisp/"))
(defvar +oreo/theme-list `(personal-light personal-solarized))
(defvar +oreo/theme 1)
:config
(defun +oreo/disable-other-themes ()
"Disable all other themes in +OREO/THEME-LIST excluding
+OREO/THEME."
(cl-loop
for theme in +oreo/theme-list
for i from 0
if (not (= i +oreo/theme))
do (disable-theme theme)))
(defun +oreo/load-theme ()
"Load +OREO/THEME, disabling all other themes to reduce conflict."
(mapc #'disable-theme custom-enabled-themes)
(+oreo/disable-other-themes)
(load-theme (nth +oreo/theme +oreo/theme-list) t))
(defun +oreo/switch-theme ()
"Flip between different themes set in +OREO/THEME-ALIST."
(interactive)
(cl-case +oreo/theme
(dark
(mapc #'disable-theme custom-enabled-themes)
(load-theme 'modus-operandi t)
(setq +oreo/theme 'light))
(light
(mapc #'disable-theme custom-enabled-themes)
(load-theme 'personal-solarized t)
(setq +oreo/theme 'dark)))))
(setq +oreo/theme (mod (+ 1 +oreo/theme) (length +oreo/theme-list)))
(+oreo/load-theme))
(+oreo/load-theme))
#+end_src
** Font size
Make font size bigger on my laptop and smaller on my desktop.
Adjust font sizes for my devices.
#+begin_src emacs-lisp
(use-package faces

View File

@@ -0,0 +1,84 @@
(deftheme personal-light
"Created 2024-08-24.")
(custom-theme-set-faces
'personal-light
'(button ((t (:inherit (link)))))
'(cursor ((t (:background "#00BBFF"))))
'(escape-glyph ((((background dark)) (:foreground "cyan")) (((type pc)) (:foreground "magenta")) (t (:foreground "brown"))))
'(fixed-pitch ((t (:family "Monospace"))))
'(font-lock-bracket-face ((t (:inherit (font-lock-punctuation-face)))))
'(font-lock-builtin-face ((t (:foreground "#A020F0"))))
'(font-lock-comment-delimiter-face ((t (:inherit (font-lock-comment-face)))))
'(font-lock-comment-face ((t (:foreground "#204A87"))))
'(font-lock-constant-face ((t (:foreground "#F5666D"))))
'(font-lock-delimiter-face ((t (:inherit (font-lock-punctuation-face)))))
'(font-lock-doc-face ((t (:inherit (font-lock-string-face)))))
'(font-lock-doc-markup-face ((t (:inherit (font-lock-constant-face)))))
'(font-lock-escape-face ((t (:inherit (font-lock-regexp-grouping-backslash)))))
'(font-lock-function-call-face ((t (:inherit (font-lock-function-name-face)))))
'(font-lock-function-name-face ((t (:weight bold :foreground "#00578E"))))
'(font-lock-keyword-face ((t (:weight bold :foreground "#A52A2A"))))
'(font-lock-misc-punctuation-face ((t (:inherit (font-lock-punctuation-face)))))
'(font-lock-negation-char-face ((t nil)))
'(font-lock-number-face ((t nil)))
'(font-lock-operator-face ((t nil)))
'(font-lock-preprocessor-face ((t (:inherit (font-lock-builtin-face)))))
'(font-lock-property-name-face ((t (:inherit (font-lock-variable-name-face)))))
'(font-lock-property-use-face ((t (:inherit (font-lock-property-name-face)))))
'(font-lock-punctuation-face ((t nil)))
'(font-lock-regexp-grouping-backslash ((t (:inherit (bold)))))
'(font-lock-regexp-grouping-construct ((t (:inherit (bold)))))
'(font-lock-string-face ((t (:foreground "#4E9A06"))))
'(font-lock-type-face ((t (:weight bold :foreground "#2F8B58"))))
'(font-lock-variable-name-face ((t (:weight bold :foreground "#0084C8"))))
'(font-lock-variable-use-face ((t (:inherit (font-lock-variable-name-face)))))
'(font-lock-warning-face ((t (:weight bold :foreground "#F5666D"))))
'(fringe ((t (:background "#E6E6E6"))))
'(header-line ((t (:background "#CCCCCC" :foreground "black"))))
'(highlight ((t (:foreground "white" :background "#4A90D9"))))
'(homoglyph ((((background dark)) (:foreground "cyan")) (((type pc)) (:foreground "magenta")) (t (:foreground "brown"))))
'(isearch ((t (:foreground "white" :background "#77A4DD"))))
'(isearch-fail ((((class color) (min-colors 88) (background light)) (:background "RosyBrown1")) (((class color) (min-colors 88) (background dark)) (:background "red4")) (((class color) (min-colors 16)) (:background "red")) (((class color) (min-colors 8)) (:background "red")) (((class color grayscale)) (:foreground "grey")) (t (:inverse-video t))))
'(lazy-highlight ((((class color) (min-colors 88) (background light)) (:distant-foreground "black" :background "paleturquoise")) (((class color) (min-colors 88) (background dark)) (:distant-foreground "white" :background "paleturquoise4")) (((class color) (min-colors 16)) (:distant-foreground "white" :background "turquoise3")) (((class color) (min-colors 8)) (:distant-foreground "white" :background "turquoise3")) (t (:underline (:color foreground-color :style line :position nil)))))
'(link ((t (:underline (:color foreground-color :style line :position nil) :foreground "#0066CC"))))
'(link-visited ((t (:underline (:color foreground-color :style line :position nil) :foreground "#6799CC"))))
'(match ((((class color) (min-colors 88) (background light)) (:background "khaki1")) (((class color) (min-colors 88) (background dark)) (:background "RoyalBlue3")) (((class color) (min-colors 8) (background light)) (:foreground "black" :background "yellow")) (((class color) (min-colors 8) (background dark)) (:foreground "white" :background "blue")) (((type tty) (class mono)) (:inverse-video t)) (t (:background "gray"))))
'(minibuffer-prompt ((t (:weight bold :foreground "#0084C8"))))
'(mode-line ((t (:box (:line-width (1 . -1) :color nil :style released-button) :foreground "#2E3436" :background "white"))))
'(mode-line-buffer-id ((t (:weight bold))))
'(mode-line-emphasis ((t (:weight bold))))
'(mode-line-highlight ((t (:box (:line-width (2 . 2) :color "grey40" :style released-button)))))
'(mode-line-inactive ((t (:background "white" :foreground "#929292"))))
'(next-error ((t (:inherit (region)))))
'(org-block ((t (:inherit default))))
'(org-code ((t (:foreground "green4"))))
'(org-hide ((t (:foreground "#EDEDED"))))
'(org-quote ((t (:slant italic))))
'(org-verbatim ((t (:foreground "red3"))))
'(query-replace ((t (:inherit (isearch)))))
'(region ((t (:extend t :background "#C2D5E9"))))
'(secondary-selection ((((class color) (min-colors 88) (background light)) (:extend t :background "yellow1")) (((class color) (min-colors 88) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 16) (background light)) (:extend t :background "yellow")) (((class color) (min-colors 16) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 8)) (:extend t :foreground "black" :background "cyan")) (t (:inverse-video t))))
'(shadow ((((class color grayscale) (min-colors 88) (background light))
(:foreground "grey50"))
(((class color grayscale) (min-colors 88) (background dark))
(:foreground "grey70"))
(((class color) (min-colors 8) (background light))
(:foreground "green"))
(((class color) (min-colors 8) (background dark)) (:foreground "yellow"))))
'(tab-bar ((t (:background "white"))))
'(tab-bar-tab ((t (:background "white" :foreground "grey5" :box (:line-width 2 :color "grey19")))))
'(tab-bar-tab-inactive ((t (:background "grey70" :foreground "black"))))
'(tooltip ((t (:foreground "black" :background "lightyellow" :inherit (variable-pitch)))))
'(trailing-whitespace ((((class color) (background light)) (:background "red1")) (((class color) (background dark)) (:background "red1")) (t (:inverse-video t))))
'(variable-pitch ((((type w32)) (:foundry "outline" :family "Arial")) (t (:family "Sans Serif"))))
'(whitespace-line ((t (:inherit default :background "#e3e3e3" :foreground "violet"))))
'(whitespace-space ((t (:inherit default :background "#e3e3e3" :foreground "blue"))))
'(whitespace-tab ((t (:inherit default :background "#e3e3e3" :foreground "grey20"))))
'(default ((t (:family "RecMonoDuotone Nerd Font Propo" :foundry "ADBO"
:width normal :weight normal :slant normal :underline nil
:overline nil :extend nil :strike-through nil :box nil :inverse-video nil
:foreground "#2E3436" :background "#EDEDED" :stipple nil :inherit
nil)))))
(provide-theme 'personal-light)

View File

@@ -73,8 +73,9 @@
'(orderless-match-face-1 ((t (:weight bold :foreground "light green"))))
'(orderless-match-face-2 ((t (:weight bold :foreground "forest green"))))
'(orderless-match-face-3 ((t (:weight bold :foreground "dark green"))))
'(org-block ((t (:inherit shadow))))
'(org-block ((t (:inherit default))))
'(org-code ((t (:foreground "green3"))))
'(org-hide ((t (:foreground "black"))))
'(org-quote ((t (:slant italic))))
'(org-verbatim ((t (:foreground "red3"))))
'(outline-1 ((t (:inherit default :foreground "#db5823"))))
@@ -102,15 +103,12 @@
'(rainbow-delimiters-unmatched-face ((t (:extend t :foreground "white" :background "red3"))))
'(region ((t (:extend t :background "grey25"))))
'(secondary-selection ((t (:extend t :background "SkyBlue4"))))
'(shadow ((((class color grayscale) (min-colors 88) (background light)) (:foreground "grey50"))
(((class color grayscale) (min-colors 88) (background dark)) (:foreground "grey70"))
(((class color) (min-colors 8) (background light)) (:foreground "green"))
(((class color) (min-colors 8) (background dark)) (:foreground "yellow"))))
'(shadow ((t (:foreground "grey70"))))
'(show-paren-match ((t (:foreground unspecified :foreground "#55ec55" :weight bold))))
'(show-paren-mismatch ((t (:foreground "#01323d" :background "#ec1111" :weight bold))))
'(tab-bar ((t (:background "grey13"))))
'(tab-bar-tab ((t (:background "grey20" :foreground "white" :box (:color )))))
'(tab-bar-tab-inactive ((t (:background "grey13" :foreground "DimGrey"))))
'(tab-bar ((t (:background "black"))))
'(tab-bar-tab ((t (:background "grey5" :foreground "white" :box (:line-width 2 :color "grey19")))))
'(tab-bar-tab-inactive ((t (:background "black" :foreground "DimGrey"))))
'(tooltip ((t (:foreground "black" :background "lightyellow" :inherit (variable-pitch)))))
'(trailing-whitespace ((t (:background "red1"))))
'(whitespace-line ((t (:background "black" :foreground "violet"))))