[Emacs] Change theme to official nord theme, fix faces

I use now the official nord theme found on Articices Studio’s Github.

Faces broke partly due to two different calls to
`custom-theme-set-faces'. This can be fixed by putting all faces
editions together. However, this commit also removes custom faces for
mu4e since colors are no longer broken.

The code for faces is now generated from the org tables in the
related subheadings.
This commit is contained in:
Lucien Cartier-Tilet 2021-01-08 03:38:31 +01:00
parent 1b5fb4144d
commit 2919c7b286
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
2 changed files with 235 additions and 144 deletions

View File

@ -136,7 +136,7 @@ This function is called at the very end of Spacemacs initialization."
'(objed-cursor-color "#ff6c6b")
'(org-export-headline-levels 4)
'(package-selected-packages
'(eshell-syntax-highlighting diredfl caddyfile-mode ob-swift wttrin wrap-region pinentry org-tree-slide org-sidebar org-ql peg ov org-super-agenda ts dired-du caddyfile-mode loop xkcd vmd-mode visual-fill-column typit mmt sudoku restclient-helm pony-mode pacmacs ox-reveal outorg ob-restclient ob-http meson-mode ibuffer-projectile lv helm-w3m w3m graphviz-dot-mode flycheck-gometalinter transient ess-smart-equals ess-R-data-view ctable ess julia-mode eshell-git-prompt emoji-cheat-sheet-plus edit-indirect dockerfile-mode docker docker-tramp company-restclient restclient know-your-http-well company-quickhelp company-emoji company-emacs-eclim eclim atomic-chrome websocket 2048-game ox-gfm slime-company slime common-lisp-snippets erlang insert-shebang fish-mode company-shell faceup racket-mode treepy graphql yapfify yaml-mode xterm-color web-beautify twittering-mode toml-mode tagedit stickyfunc-enhance smeargle slim-mode shell-pop selectric-mode scss-mode sass-mode ranger rainbow-identifiers pytest pyenv-mode py-isort pug-mode plantuml-mode phpunit phpcbf php-auto-yasnippets pdf-tools tablist ox-pandoc orgit org-present org-pomodoro alert log4e gntp ob-elixir multi-term markdown-toc magit-gitflow magit-gh-pulls livid-mode live-py-mode json-snatcher js2-refactor js-doc htmlize hlint-refactor hindent helm-pydoc helm-hoogle helm-gitignore helm-css-scss haskell-snippets haml-mode gnuplot glsl-mode gitignore-mode github-search github-clone github-browse-file gitconfig-mode gitattributes-mode git-messenger gist gh marshal logito pcache ht gh-md flyspell-correct-helm flyspell-correct flycheck-rust pos-tip flycheck-mix flycheck-credo eshell-z eshell-prompt-extras esh-help drupal-mode disaster cython-mode dash-functional tern company-ghci company-ghc ghc color-identifiers-mode cmm-mode clang-format cargo auto-dictionary alchemist modern-cpp-font-lock yasnippet-snippets x86-lookup web-mode srefactor racer pyvenv pip-requirements pandoc-mode org-projectile org-category-capture org-mime org-download nasm-mode json-reformat intero imenu-list hy-mode git-timemachine git-link geiser flycheck-pos-tip flycheck-haskell evil-magit emmet-mode cmake-mode anaconda-mode rust-mode elixir-mode flycheck haskell-mode multiple-cursors skewer-mode simple-httpd markdown-mode magit magit-popup git-commit ghub with-editor pythonic emms gmail-message-mode ham-mode html-to-markdown flymd edit-server image-dired+ go-guru go-eldoc company-go go-mode unfill mwim company-web web-completion-data company-tern company-cabal company-c-headers company-auctex company-anaconda elcord xresources-theme sql-indent rainbow-mode php-extras php-mode mmm-mode json-mode js2-mode csv-mode coffee-mode auctex helm-company helm-c-yasnippet fuzzy company-statistics company auto-yasnippet yasnippet ac-ispell auto-complete ws-butler winum which-key volatile-highlights vi-tilde-fringe uuidgen use-package toc-org spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode pcre2el paradox spinner org-plus-contrib org-bullets open-junk-file neotree move-text macrostep lorem-ipsum linum-relative link-hint indent-guide hydra hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation helm-themes helm-swoop helm-projectile helm-mode-manager helm-make projectile pkg-info epl helm-flx helm-descbinds helm-ag google-translate golden-ratio flx-ido flx fill-column-indicator fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-ediff evil-args evil-anzu anzu evil goto-chg undo-tree eval-sexp-fu highlight elisp-slime-nav dumb-jump f dash s diminish define-word column-enforce-mode clean-aindent-mode bind-map bind-key auto-highlight-symbol auto-compile packed aggressive-indent adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core popup async))
'(nord-theme eshell-syntax-highlighting diredfl caddyfile-mode ob-swift wttrin wrap-region pinentry org-tree-slide org-sidebar org-ql peg ov org-super-agenda ts dired-du caddyfile-mode loop xkcd vmd-mode visual-fill-column typit mmt sudoku restclient-helm pony-mode pacmacs ox-reveal outorg ob-restclient ob-http meson-mode ibuffer-projectile lv helm-w3m w3m graphviz-dot-mode flycheck-gometalinter transient ess-smart-equals ess-R-data-view ctable ess julia-mode eshell-git-prompt emoji-cheat-sheet-plus edit-indirect dockerfile-mode docker docker-tramp company-restclient restclient know-your-http-well company-quickhelp company-emoji company-emacs-eclim eclim atomic-chrome websocket 2048-game ox-gfm slime-company slime common-lisp-snippets erlang insert-shebang fish-mode company-shell faceup racket-mode treepy graphql yapfify yaml-mode xterm-color web-beautify twittering-mode toml-mode tagedit stickyfunc-enhance smeargle slim-mode shell-pop selectric-mode scss-mode sass-mode ranger rainbow-identifiers pytest pyenv-mode py-isort pug-mode plantuml-mode phpunit phpcbf php-auto-yasnippets pdf-tools tablist ox-pandoc orgit org-present org-pomodoro alert log4e gntp ob-elixir multi-term markdown-toc magit-gitflow magit-gh-pulls livid-mode live-py-mode json-snatcher js2-refactor js-doc htmlize hlint-refactor hindent helm-pydoc helm-hoogle helm-gitignore helm-css-scss haskell-snippets haml-mode gnuplot glsl-mode gitignore-mode github-search github-clone github-browse-file gitconfig-mode gitattributes-mode git-messenger gist gh marshal logito pcache ht gh-md flyspell-correct-helm flyspell-correct flycheck-rust pos-tip flycheck-mix flycheck-credo eshell-z eshell-prompt-extras esh-help drupal-mode disaster cython-mode dash-functional tern company-ghci company-ghc ghc color-identifiers-mode cmm-mode clang-format cargo auto-dictionary alchemist modern-cpp-font-lock yasnippet-snippets x86-lookup web-mode srefactor racer pyvenv pip-requirements pandoc-mode org-projectile org-category-capture org-mime org-download nasm-mode json-reformat intero imenu-list hy-mode git-timemachine git-link geiser flycheck-pos-tip flycheck-haskell evil-magit emmet-mode cmake-mode anaconda-mode rust-mode elixir-mode flycheck haskell-mode multiple-cursors skewer-mode simple-httpd markdown-mode magit magit-popup git-commit ghub with-editor pythonic emms gmail-message-mode ham-mode html-to-markdown flymd edit-server image-dired+ go-guru go-eldoc company-go go-mode unfill mwim company-web web-completion-data company-tern company-cabal company-c-headers company-auctex company-anaconda elcord xresources-theme sql-indent rainbow-mode php-extras php-mode mmm-mode json-mode js2-mode csv-mode coffee-mode auctex helm-company helm-c-yasnippet fuzzy company-statistics company auto-yasnippet yasnippet ac-ispell auto-complete ws-butler winum which-key volatile-highlights vi-tilde-fringe uuidgen use-package toc-org spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode pcre2el paradox spinner org-plus-contrib org-bullets open-junk-file neotree move-text macrostep lorem-ipsum linum-relative link-hint indent-guide hydra hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation helm-themes helm-swoop helm-projectile helm-mode-manager helm-make projectile pkg-info epl helm-flx helm-descbinds helm-ag google-translate golden-ratio flx-ido flx fill-column-indicator fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-ediff evil-args evil-anzu anzu evil goto-chg undo-tree eval-sexp-fu highlight elisp-slime-nav dumb-jump f dash s diminish define-word column-enforce-mode clean-aindent-mode bind-map bind-key auto-highlight-symbol auto-compile packed aggressive-indent adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core popup async))
'(pdf-view-midnight-colors '("#655370" . "#fbf8ef"))
'(safe-local-variable-values
'((org-confirm-babel-evaluate)
@ -174,17 +174,17 @@ This function is called at the very end of Spacemacs initialization."
;; If there is more than one, they won't work right.
'(mu4e-forwarded-face ((t (:inherit (mu4e-header-highlight-face font-lock-builtin-face) :weight normal :underline nil :background "#2e3440" :foreground "#b48ead"))))
'(mu4e-replied-face ((t (:inherit (mu4e-header-highlight-face font-lock-builtin-face) :weight normal :underline nil :background "#2e3440" :foreground "#a3be8c"))))
'(org-block ((t (:inherit fixed-pitch :height 0.8))))
'(org-block-begin-line ((t (:inherit fixed-pitch :height 0.8))))
'(org-block ((t (:font "Cascadia Code" :height 0.8))))
'(org-block-begin-line ((t (:font "Cascadia Code" :height 0.8))))
'(org-checkbox ((t (:inherit (org-todo shadow fixed-pitch)))))
'(org-code ((t (:inherit (shadow fixed-pitch)))))
'(org-date ((t (:inherit fixed-pitch :height 0.8 :foreground "#ebcb8b"))))
'(org-code ((t (:inherit (shadow fixed-pitch) (\,@ fixed)))))
'(org-date ((t (:font "Cascadia Code" :height 0.8 :foreground "#ebcb8b"))))
'(org-document-info ((t (:foreground "#d08770"))))
'(org-document-info-keyword ((t (:inherit (shadow fixed-pitch)))))
'(org-document-info-keyword ((t (:inherit (shadow fixed-pitch) (\,@ fixed)))))
'(org-document-title ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#bf616a" :height 2.0 :italic t))))
'(org-drawer ((t (:inherit fixed-pitch :height 0.8 :foreground "#5e81ac"))))
'(org-formula ((t (:inherit fixed-pitch :height 0.8))))
'(org-indent ((t (:inherit fixed-pitch :height 0.8))))
'(org-drawer ((t (:font "Cascadia Code" :height 0.8 :foreground "#5e81ac"))))
'(org-formula ((t (:font "Cascadia Code" :height 0.8))))
'(org-indent ((t (:font "Cascadia Code" :height 0.8))))
'(org-level-1 ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#b48ead" :height 1.75))))
'(org-level-2 ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#5e81ac" :height 1.5))))
'(org-level-3 ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#81a1c1" :height 1.25))))
@ -194,13 +194,13 @@ This function is called at the very end of Spacemacs initialization."
'(org-level-7 ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#b48ead"))))
'(org-level-8 ((t (:font "Charis SIL" :height 1.0 :inherit default :weight bold :foreground "#eceff4"))))
'(org-link ((t (:foreground "#88c0d0" :underline t))))
'(org-macro ((t (:inherit fixed-pitch :height 0.8))))
'(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch) :height 0.8))))
'(org-property-value ((t (:inherit fixed-pitch :height 0.8))) t)
'(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch) :height 0.8 :foreground "#b48ead"))))
'(org-table ((t (:inherit fixed-pitch :height 0.8 :foreground "#a3be8c"))))
'(org-tag ((t (:inherit (shadow fixed-pitch) :weight bold))))
'(org-target ((t (:inherit fixed-pitch :height 0.8))))
'(org-verbatim ((t (:inherit (shadow fixed-pitch)))))
'(org-macro ((t (:font "Cascadia Code" :height 0.8))))
'(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch) (\,@ fixed) :height 0.8))))
'(org-property-value ((t (:font "Cascadia Code" :height 0.8))) t)
'(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch) :font "Cascadia Code" :height 0.8 :height 0.8 :foreground "#b48ead"))))
'(org-table ((t (:font "Cascadia Code" :height 0.8 :foreground "#a3be8c"))))
'(org-tag ((t (:inherit (shadow fixed-pitch) (\,@ fixed) :weight bold))))
'(org-target ((t (:font "Cascadia Code" :height 0.8))))
'(org-verbatim ((t (:inherit (shadow fixed-pitch) (\,@ fixed)))))
'(variable-pitch ((t (:font "Charis SIL" :height 1.0 :height 1.3 :weight thin)))))
)

View File

@ -69,28 +69,29 @@ However, I do have additional packages I installed either from the Elpa or the M
With the variable ~dotspacemacs-additional-packages~, it is possible to install extra packages which are not already included in any layers. Dependencies should be explicitly included as they wont be resolved automatically. Here is a table of all the extra packages I use:
#+NAME: extra-packages
| name of the package | why is it installed |
|----------------------------+------------------------------------------------------|
| caddyfile-mode | Major mode for editing Caddyfiles |
| dired-git-info | Git information in Dired buffers |
| diredfl | Extra font lock rules for a more colourful dired |
| edit-indirect | edit region in separate buffer |
| elcord | rich integration of Emacs in Discord |
| eshell-syntax-highlighting | Syntax highlighting for Eshell |
| info-colors | Extra colors for Emacs's Info-mode |
| magit-gitflow | integrate gitflow in Magit |
| multiple-cursors | I dont like the layer, I prefer this package alone |
| ob-swift | org-babel package for Swift |
| org-sidebar | display on the side the outline of an Org buffer |
| org-tree-slide | presentation tool for org-mode |
| outorg | edit comments as Org-mode buffers |
| pinentry | enter a GPG password from Emacs |
| s | The long lost Emacs string manipulation library. |
| sicp | Texinfo version of the [[https://mitpress.mit.edu/sites/default/files/sicp/index.html][SICP]] |
| visual-fill-column | allow the use of ~fill-column~ in ~visual-line-mode~ |
| wrap-region | easily wrap region with delimiters |
| wttrin | weather in Emacs |
| yasnippet-snippets | snippets for YaSnippet |
| name of the package | why is it installed |
|----------------------------+--------------------------------------------------------|
| caddyfile-mode | Major mode for editing Caddyfiles |
| dired-git-info | Git information in Dired buffers |
| diredfl | Extra font lock rules for a more colourful dired |
| edit-indirect | edit region in separate buffer |
| elcord | rich integration of Emacs in Discord |
| eshell-syntax-highlighting | Syntax highlighting for Eshell |
| info-colors | Extra colors for Emacs's Info-mode |
| magit-gitflow | integrate gitflow in Magit |
| multiple-cursors | I dont like the layer, I prefer this package alone |
| ob-swift | org-babel package for Swift |
| org-sidebar | display on the side the outline of an Org buffer |
| org-tree-slide | presentation tool for org-mode |
| outorg | edit comments as Org-mode buffers |
| pinentry | enter a GPG password from Emacs |
| nord-theme | An arctic, north-bluish clean and elegant Emacs theme. |
| s | The long lost Emacs string manipulation library. |
| sicp | Texinfo version of the [[https://mitpress.mit.edu/sites/default/files/sicp/index.html][SICP]] |
| visual-fill-column | allow the use of ~fill-column~ in ~visual-line-mode~ |
| wrap-region | easily wrap region with delimiters |
| wttrin | weather in Emacs |
| yasnippet-snippets | snippets for YaSnippet |
#+name: make-extra-pkg
#+begin_src emacs-lisp :var packages=extra-packages[,0] :tangle no :exports none
@ -753,11 +754,12 @@ By the way, it is possible to set a default message for the scratch buffer, such
:END:
Spacemacs makes it quite easy to use themes and organize them. The below value is a list of themes, the first of the list is loaded when Spacemacs starts. The user can press ~SPC T n~ to cycle to the next theme in the list.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-themes '(doom-nord doom-vibrant spacemacs-dark doom-one
doom-opera doom-dracula doom-molokai doom-peacock
doom-sourcerer doom-spacegrey kaolin-dark
kaolin-aurora kaolin-bubblegum kaolin-galaxy
kaolin-mono-dark kaolin-temple kaolin-valley-dark))
(setq-default dotspacemacs-themes '(nord doom-nord doom-vibrant spacemacs-dark
doom-one doom-opera doom-dracula doom-molokai
doom-peacock doom-sourcerer doom-spacegrey
kaolin-dark kaolin-aurora kaolin-bubblegum
kaolin-galaxy kaolin-mono-dark kaolin-temple
kaolin-valley-dark))
#+END_SRC
Emacs also makes use of themes for the Spaceline at the bottom of buffers. Supported themes are:
@ -908,7 +910,7 @@ If non-nil, the frame is undecorated when Emacs starts up. Combine this with the
You can also set a transparency level for Emacs when you toggle the transparency of the frame with ~toggle-transparency~. The value of the transparency, going from 0 to 100 in increasing opacity, describes the transparency level of a frame when its active or selected. The default value is ~90~.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-active-transparency 75)
(setq-default dotspacemacs-active-transparency 85)
#+END_SRC
Similarly, you can set a value from 0 to 100 in increasing opacity which describes the transparency level of a frame when its inactive or deselected. The default value is ~90~.
@ -2202,44 +2204,7 @@ In order to make org-mode even sexier, lets enable ~variable-pitch-mode~ for
(auto-fill-mode -1)
#+END_SRC
Fonts will play an important part in this, but so will colors and font size. The following code is largely based on the one found [[https://zzamboni.org/post/beautifying-org-mode-in-emacs/][on this blog post]] and [[https://lepisma.xyz/2017/10/28/ricing-org-mode/][this one]].
#+NAME: beautiful-org-faces
#+BEGIN_SRC emacs-lisp
(let* ((font `(:font "Charis SIL" :height 1.0))
(head `(:inherit default :weight bold))
(fixed `(:font "Cascadia Code" :height 0.8)))
(custom-theme-set-faces
'user
`(org-level-1 ((t (,@font ,@head :foreground ,phundrak/nord15 :height 1.75))))
`(org-level-2 ((t (,@font ,@head :foreground ,phundrak/nord10 :height 1.5))))
`(org-level-3 ((t (,@font ,@head :foreground ,phundrak/nord9 :height 1.25))))
`(org-level-4 ((t (,@font ,@head :foreground ,phundrak/nord15 :height 1.1))))
`(org-level-5 ((t (,@font ,@head :foreground ,phundrak/nord8))))
`(org-level-6 ((t (,@font ,@head :foreground ,phundrak/nord7))))
`(org-level-7 ((t (,@font ,@head :foreground ,phundrak/nord15))))
`(org-level-8 ((t (,@font ,@head :foreground ,phundrak/nord6))))
`(org-document-title ((t (,@font ,@head :foreground ,phundrak/nord11 :height 2.0 :italic t))))
`(variable-pitch ((t (,@font :height 1.3 :weight thin))))
`(org-block ((t (,@fixed))))
`(org-block-begin-line ((t (,@fixed))))
`(org-indent ((t (,@fixed))))
`(org-formula ((t (,@fixed))))
`(org-macro ((t (,@fixed))))
`(org-target ((t (,@fixed))))
`(org-property-value ((t (,@fixed))) t)
`(org-drawer ((t (,@fixed :foreground ,phundrak/nord10))) t)
`(org-table ((t (,@fixed :foreground ,phundrak/nord14))) t)
`(org-date ((t (,@fixed :foreground ,phundrak/nord13))) t)
'(org-code ((t (:inherit (shadow fixed-pitch) ,@fixed))))
'(org-verbatim ((t (:inherit (shadow fixed-pitch) ,@fixed))))
'(org-document-info-keyword ((t (:inherit (shadow fixed-pitch) ,@fixed))))
'(org-tag ((t (:inherit (shadow fixed-pitch) ,@fixed :weight bold))))
'(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch) ,@fixed :height 0.8))))
`(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch) ,@fixed :height 0.8 :foreground ,phundrak/nord15))))
'(org-checkbox ((t (:inherit (org-todo shadow fixed-pitch)))))
`(org-document-info ((t (:foreground ,phundrak/nord12))))
`(org-link ((t (:foreground ,phundrak/nord8 :underline t))))))
#+END_SRC
You can then see the modified faces for org-mode [[#User-Configuration-Visual-configuration-Better-faces-Org-mode-07754177][here]].
Some other tweaks will make Org-mode more beautiful. This includes a new folding icon, some indentation that is not added whitespace.
#+NAME: beautiful-org-options
@ -3656,17 +3621,7 @@ Icons are nice and all, but my current font does not display some of the default
mu4e-headers-unread-mark '("u" . "u"))
#+END_SRC
Something that irks me with the ~doom-nord~ theme is that emails I replied to are the same color as unread emails, and I wish to change this color. Luckily, I can change that! The foreground color of emails I replied to will now be [[#User_Configuration-Custom_functions_and_variables-Some_theming_variables-9b853a99][Nord15]]. The same goes for forwarded emails that will get the Nord14 foreground text color. And please, no underligning.
#+BEGIN_SRC emacs-lisp
(let ((common-face `(:inherit (mu4e-header-highlight-face font-lock-builtin-face)
:weight normal
:underline nil
:background ,phundrak/nord0)))
(custom-theme-set-faces
'user
`(mu4e-replied-face ((t (,@common-face :foreground ,phundrak/nord14))))
`(mu4e-forwarded-face ((t (,@common-face :foreground ,phundrak/nord15))))))
#+END_SRC
# I also set some custom faces you can see [[#User-Configuration-Visual-configuration-Better-faces-Mu4e-7b52d940][here]].
*** Misc
:PROPERTIES:
@ -3735,56 +3690,6 @@ However, the package is currently broken (it was last updated in 2017): wttr.in
'utf-8))))
#+END_SRC
** Visual configuration
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Visual_configuration-78e6cafc
:END:
*** Battery mode line
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Editing_and_modes-Battery_mode_line-895e5e52
:END:
I want to see by default how much battery my computer has, so lets enable it:
#+BEGIN_SRC emacs-lisp
(spacemacs/toggle-mode-line-battery-on)
#+END_SRC
*** Info colors
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Info-colors-ebe3cc81
:END:
The package ~info-colors~ adds colors to Emacs info mode. Lets enable it:
#+BEGIN_SRC emacs-lisp
(add-hook 'Info-selection-hook 'info-colors-fontify-node)
#+END_SRC
*** Prettified symbols
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Miscellaneous-Prettified_symbols-da50f4a6
:END:
Just because it is pleasing to the eye, some symbols in source code get prettified into simpler symbols. Here is the list of symbols that are to be prettified. You can see in the corresponding comment what symbol will be displayed.
#+BEGIN_SRC emacs-lisp
(setq prettify-symbols-alist '(("lambda" . 955) ; λ
("mapc" . 8614) ; ↦
("map" . 8614) ; ↦
(">>" . 187) ; »
("<<" . 171) ; «
))
#+END_SRC
Lets enable this mode globally.
#+BEGIN_SRC emacs-lisp
(global-prettify-symbols-mode 1)
#+END_SRC
*** Misc
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Misc-2f4ce585
:END:
Emacs is already silent, but lets set the bell as visible:
#+BEGIN_SRC emacs-lisp
(setq visible-bell t)
#+END_SRC
** Nov-mode
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Nov-mode-6f10765d
@ -4258,6 +4163,192 @@ around ~git~. Logically, it means Magit could theoretically manage my yadm repo.
(tramp-remote-shell-args ("-c"))))
#+END_SRC
** Visual configuration
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Visual_configuration-78e6cafc
:END:
*** Battery mode line
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Editing_and_modes-Battery_mode_line-895e5e52
:END:
I want to see by default how much battery my computer has, so lets enable it:
#+BEGIN_SRC emacs-lisp
(spacemacs/toggle-mode-line-battery-on)
#+END_SRC
*** Better faces
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Better-faces-5d73fe9c
:END:
#+NAME: face-generate
#+BEGIN_SRC emacs-lisp :tangle no :results replace :exports none :var input=[] :var makeface="yes"
(let* ((makeface (string= "yes" makeface))
(headers (cadr input))
(faces (-map (lambda (face)
(-filter (lambda (elem)
(or (numberp (cadr elem))
(not (string= ""
(cadr elem)))))
(-zip-lists headers face)))
(cddr input))))
(mapconcat (lambda (face)
(concat
;; (if makeface
;; (format "`(%s ((t " (cadr (assoc "Name" face)))
;; (format "(%s `" (cadr (assoc "Name" face))))
(format (if makeface "`(%s ((t " "(%s `")
(cadr (assoc "Name" face)))
(format "(%s %s %s %s)"
(if (assoc "additional" face)
(cadr (assoc "additional" face))
"")
(let ((result ""))
(dolist (property '("inherit" "weight" "height" "foreground"
"background" "underline")
result)
(let ((prop (assoc property face)))
(when prop
(setf result (format "%s :%s %s"
result
property
(if (numberp (cadr prop))
(number-to-string (cadr prop))
(cadr prop))))))))
(if (assoc "font" face)
(format ":font \"%s\""
(cadr (assoc "font" face)))
"")
(if (assoc "family" face)
(format ":family \"%s\""
(cadr (assoc "family" face)))
""))
(if makeface
")) t)"
")")))
faces
"\n"))
#+END_SRC
Sometimes, some visual properties just dont fit right for me and I need to edit them. This is the case for example for org-mode for which I want to have a mix of fixed and variable pitches. Below you can see the code that does that for me, Ill get into more detail below this code block.
#+BEGIN_SRC emacs-lisp :noweb yes
(let (
<<face-generate(input=org-common-faces, makeface="no")>>
)
(custom-theme-set-faces
'user
<<face-generate(input=org-faces)>>
))
#+END_SRC
**** Mu4e :noexport:
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Better-faces-Mu4e-7b52d940
:END:
Something that irks me with the ~doom-nord~ theme is that emails I replied to are the same color as unread emails, and I wish to change this color. Luckily, I can change that! The foreground color of emails I replied to will now be [[#User_Configuration-Custom_functions_and_variables-Some_theming_variables-9b853a99][Nord15]]. The same goes for forwarded emails that will get the Nord14 foreground text color. And please, no underligning. First, we have a common property to set up.
#+tblname: mu4e-common-faces
| / | < | | | |
| Name | inherit | weight | underline | background |
|-------------+---------------------------------------------------+--------+-----------+-----------------|
| mu4e-common | mu4e-header-highlight-face font-lock-builtin-face | normal | nil | ,phundrak/nord0 |
Next, lets declare the faces I want to fix for mu4e:
#+tblname: mu4e-faces
| / | < | |
| Name | additional | foreground |
|---------------------+---------------+------------------|
| mu4e-replied-face | ,@mu4e-common | ,phundrak/nord14 |
| mu4e-forwarded-face | ,@mu4e-common | ,phundrak/nord15 |
**** Org-mode
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Better-faces-Org-mode-07754177
:END:
Fonts will play an important part in this, but so will colors and font size. The following code is largely based on the one found [[https://zzamboni.org/post/beautifying-org-mode-in-emacs/][on this blog post]] and [[https://lepisma.xyz/2017/10/28/ricing-org-mode/][this one]]. First here are some common properties that will be reused in faces below:
#+tblname: org-common-faces
| / | | < | <l> | |
| Name | inherit | font | height | weight |
|---------+---------+---------------+--------+--------|
| orgfont | | Charis SIL | 120 | |
| head | default | | | bold |
| fixed | | Cascadia Code | 0.8 | |
#+tblname: org-faces
| / | < | | | | <l> | | | |
| Name | additional | inherit | foreground | background | height | weight | italic | underline |
|---------------------------+------------------+--------------------------------------+------------------+-----------------+--------+--------+--------+-----------|
| org-level-1 | ,@orgfont ,@head | | ,phundrak/nord15 | | 1.75 | | t | |
| org-level-2 | ,@orgfont ,@head | | ,phundrak/nord10 | | 1.5 | | t | |
| org-level-3 | ,@orgfont ,@head | | ,phundrak/nord9 | | 1.25 | | t | |
| org-level-4 | ,@orgfont ,@head | | ,phundrak/nord15 | | 1.1 | | t | |
| org-level-5 | ,@orgfont ,@head | | ,phundrak/nord8 | | | | t | |
| org-level-6 | ,@orgfont ,@head | | ,phundrak/nord7 | | | | t | |
| org-level-7 | ,@orgfont ,@head | | ,phundrak/nord15 | | | | t | |
| org-level-8 | ,@orgfont ,@head | | ,phundrak/nord6 | | | | t | |
| org-document-title | ,@orgfont ,@head | | ,phundrak/nord11 | | 2.0 | | t | |
| variable-pitch | ,@orgfont | | | | | | | |
| org-block | ,@fixed | | | ,phundrak/nord2 | | | | |
| org-block-begin-line | ,@fixed | | | ,phundrak/nord2 | | | | |
| org-block-end-line | ,@fixed | | | ,phundrak/nord2 | | | | |
| org-indent | ,@fixed | | | | | | | |
| org-formula | ,@fixed | | | | | | | |
| org-macro | ,@fixed | | | | | | | |
| org-target | ,@fixed | | | | | | | |
| org-property-value | ,@fixed | | | | | | | |
| org-drawer | ,@fixed | | ,phundrak/nord10 | | | | | |
| org-table | ,@fixed | | ,phundrak/nord14 | | | | | |
| org-date | ,@fixed | | ,phundrak/nord13 | | | | | |
| org-code | | (shadow fixed-pitch) | | | | | | |
| org-verbatim | | (shadow fixed-pitch) | | | | | | |
| org-document-info-keyword | | (shadow fixed-pitch) | | | | | | |
| org-tag | | (shadow fixed-pitch) | | | | bold | | |
| org-meta-line | ,@fixed | (font-lock-comment-face fixed-pitch) | | | 0.8 | | | |
| org-special-keyword | | (font-lock-comment-face fixed-pitch) | ,phundrak/nord15 | | 0.8 | | | |
| org-checkbox | | (org-todo shadow fixed-pitch) | | | | | | |
| org-document-info | | | ,phundrak/nord12 | | | | | |
| org-link | | | ,phundrak/nord8 | | | | | t |
*** Info colors
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Info-colors-ebe3cc81
:END:
The package ~info-colors~ adds colors to Emacs info mode. Lets enable it:
#+BEGIN_SRC emacs-lisp
(add-hook 'Info-selection-hook 'info-colors-fontify-node)
#+END_SRC
*** Prettified symbols
:PROPERTIES:
:CUSTOM_ID: User_Configuration-Miscellaneous-Prettified_symbols-da50f4a6
:END:
Just because it is pleasing to the eye, some symbols in source code get prettified into simpler symbols. Here is the list of symbols that are to be prettified. You can see in the corresponding comment what symbol will be displayed.
#+BEGIN_SRC emacs-lisp
(setq prettify-symbols-alist '(("lambda" . 955) ; λ
("mapc" . 8614) ; ↦
("map" . 8614) ; ↦
(">>" . 187) ; »
("<<" . 171) ; «
))
#+END_SRC
Lets enable this mode globally.
#+BEGIN_SRC emacs-lisp
(global-prettify-symbols-mode 1)
#+END_SRC
*** Misc
:PROPERTIES:
:CUSTOM_ID: User-Configuration-Visual-configuration-Misc-2f4ce585
:END:
Emacs is already silent, but lets set the bell as visible:
#+BEGIN_SRC emacs-lisp
(setq visible-bell t)
#+END_SRC
I would also like to disable the global ~hl-mode~, I find it quite annoying.
#+BEGIN_SRC emacs-lisp
(global-hl-line-mode -1)
#+END_SRC
* Footnotes
:PROPERTIES:
:CUSTOM_ID: Footnotes-5ffd05ee