diff options
| author | Protesilaos Stavrou | 2024-10-27 18:04:31 +0200 |
|---|---|---|
| committer | Protesilaos Stavrou | 2024-10-27 18:04:31 +0200 |
| commit | 9e40d3f2a1c2b5388a4eab72dbe506a21816f69b (patch) | |
| tree | 06ac7c7cdc6731500cbbf68ab7fae9f41e1e31ae /doc/misc | |
| parent | aeaeccbe3219c655b091fa3867c87b02b6289a1b (diff) | |
| download | emacs-9e40d3f2a1c2b5388a4eab72dbe506a21816f69b.tar.gz emacs-9e40d3f2a1c2b5388a4eab72dbe506a21816f69b.zip | |
Update modus-themes to their version 4.6.0
* doc/misc/modus-themes.org
(Differences between loading and enabling)
(Option for which themes to toggle)
(Option for which themes to rotate, DIY Palette override presets)
(DIY Add padding to the mode line)
(DIY Remap face with local value): Fix typos.
(DIY Add support for solaire-mode): Fix some symbols.
(Full support for packages or face groups)
(Indirectly covered packages): Add newly supported packages.
(DIY Add support for combobulate):,
(DIY Add support for engrave-faces, DIY Add support for howm)
(DIY Add support for meow-mode): Document how to style those
packages.
(Acknowledgements): Update names of people who have in one way
or another contributed to the project.
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-operandi-tritanopia-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el:
* etc/themes/modus-vivendi-tritanopia-theme.el:
* etc/themes/modus-themes.el: Make refinements to supported
faces, add support for more faces, and tweak palette entries.
Release notes: <https://protesilaos.com/codelog/2024-10-27-modus-themes-4.6.0/>.
Diffstat (limited to 'doc/misc')
| -rw-r--r-- | doc/misc/modus-themes.org | 305 |
1 files changed, 273 insertions, 32 deletions
diff --git a/doc/misc/modus-themes.org b/doc/misc/modus-themes.org index c02da3fbad1..76379d1a168 100644 --- a/doc/misc/modus-themes.org +++ b/doc/misc/modus-themes.org | |||
| @@ -4,9 +4,9 @@ | |||
| 4 | #+language: en | 4 | #+language: en |
| 5 | #+options: ':t toc:nil author:t email:t num:t | 5 | #+options: ':t toc:nil author:t email:t num:t |
| 6 | #+startup: content | 6 | #+startup: content |
| 7 | #+macro: stable-version 4.5.0 | 7 | #+macro: stable-version 4.6.0 |
| 8 | #+macro: release-date 2024-08-21 | 8 | #+macro: release-date 2024-10-27 |
| 9 | #+macro: development-version 4.6.0-dev | 9 | #+macro: development-version 4.7.0-dev |
| 10 | #+macro: file @@texinfo:@file{@@$1@@texinfo:}@@ | 10 | #+macro: file @@texinfo:@file{@@$1@@texinfo:}@@ |
| 11 | #+macro: space @@texinfo:@: @@ | 11 | #+macro: space @@texinfo:@: @@ |
| 12 | #+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@ | 12 | #+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@ |
| @@ -50,7 +50,7 @@ Current development target is {{{development-version}}}. | |||
| 50 | :custom_id: h:b14c3fcb-13dd-4144-9d92-2c58b3ed16d3 | 50 | :custom_id: h:b14c3fcb-13dd-4144-9d92-2c58b3ed16d3 |
| 51 | :end: | 51 | :end: |
| 52 | 52 | ||
| 53 | Copyright (C) 2020-2023 Free Software Foundation, Inc. | 53 | Copyright (C) 2020-2024 Free Software Foundation, Inc. |
| 54 | 54 | ||
| 55 | #+begin_quote | 55 | #+begin_quote |
| 56 | Permission is granted to copy, distribute and/or modify this document | 56 | Permission is granted to copy, distribute and/or modify this document |
| @@ -486,7 +486,7 @@ The reason we recommend ~load-theme~ instead of the other option of | |||
| 486 | ~enable-theme~ is that the former does a kind of "reset" on the face | 486 | ~enable-theme~ is that the former does a kind of "reset" on the face |
| 487 | specs. It quite literally loads (or reloads) the theme. Whereas the | 487 | specs. It quite literally loads (or reloads) the theme. Whereas the |
| 488 | ~enable-theme~ function simply puts an already loaded theme to the top | 488 | ~enable-theme~ function simply puts an already loaded theme to the top |
| 489 | of the list of enabled items, re-using whatever state was last loaded. | 489 | of the list of enabled items, reusing whatever state was last loaded. |
| 490 | 490 | ||
| 491 | As such, ~load-theme~ reads all customizations that may happen during | 491 | As such, ~load-theme~ reads all customizations that may happen during |
| 492 | any given Emacs session: even after the initial setup of a theme. | 492 | any given Emacs session: even after the initial setup of a theme. |
| @@ -707,10 +707,12 @@ Advanced users may also want to configure the exact attributes of the | |||
| 707 | :PROPERTIES: | 707 | :PROPERTIES: |
| 708 | :CUSTOM_ID: h:4fbfed66-5a89-447a-a07d-a03f6819c5bd | 708 | :CUSTOM_ID: h:4fbfed66-5a89-447a-a07d-a03f6819c5bd |
| 709 | :END: | 709 | :END: |
| 710 | #+vindex: modus-themes-to-toggle | ||
| 711 | 710 | ||
| 712 | Brief: Choose to Modus themes to toggle between | 711 | #+findex: modus-themes-toggle |
| 712 | Brief: Specify which two themes to toggle between when using the command | ||
| 713 | ~modus-themes-toggle~. | ||
| 713 | 714 | ||
| 715 | #+vindex: modus-themes-to-toggle | ||
| 714 | Symbol: ~modus-themes-to-toggle~ (=list= type) | 716 | Symbol: ~modus-themes-to-toggle~ (=list= type) |
| 715 | 717 | ||
| 716 | Default value: ='(modus-operandi modus-vivendi)= | 718 | Default value: ='(modus-operandi modus-vivendi)= |
| @@ -718,16 +720,38 @@ Default value: ='(modus-operandi modus-vivendi)= | |||
| 718 | Possible values: | 720 | Possible values: |
| 719 | 721 | ||
| 720 | - ~modus-operandi~ | 722 | - ~modus-operandi~ |
| 721 | - ~modus-vivendi~ | ||
| 722 | - ~modus-operandi-tinted~ | 723 | - ~modus-operandi-tinted~ |
| 723 | - ~modus-vivendi-tinted~ | ||
| 724 | - ~modus-operandi-deuteranopia~ | 724 | - ~modus-operandi-deuteranopia~ |
| 725 | - ~modus-vivendi-deuteranopia~ | ||
| 726 | - ~modus-operandi-tritanopia~ | 725 | - ~modus-operandi-tritanopia~ |
| 726 | - ~modus-vivendi~ | ||
| 727 | - ~modus-vivendi-tinted~ | ||
| 728 | - ~modus-vivendi-deuteranopia~ | ||
| 727 | - ~modus-vivendi-tritanopia~ | 729 | - ~modus-vivendi-tritanopia~ |
| 728 | 730 | ||
| 729 | Specify two themes to toggle between using the command | 731 | ** Option for which themes to rotate |
| 730 | ~modus-themes-toggle~. | 732 | :PROPERTIES: |
| 733 | :CUSTOM_ID: h:a10c0202-3683-4fad-9897-433c25e255f6 | ||
| 734 | :END: | ||
| 735 | |||
| 736 | #+findex: modus-themes-rotate | ||
| 737 | Brief: Specify which themes to rotate among when using the command | ||
| 738 | ~modus-themes-rotate~. | ||
| 739 | |||
| 740 | #+vindex: modus-themes-to-rotate | ||
| 741 | Symbol: ~modus-themes-to-rotate~ (=list= type) | ||
| 742 | |||
| 743 | Default value: =modus-themes-items= (which includes all the Modus themes) | ||
| 744 | |||
| 745 | Possible values: | ||
| 746 | |||
| 747 | - ~modus-operandi~ | ||
| 748 | - ~modus-operandi-tinted~ | ||
| 749 | - ~modus-operandi-deuteranopia~ | ||
| 750 | - ~modus-operandi-tritanopia~ | ||
| 751 | - ~modus-vivendi~ | ||
| 752 | - ~modus-vivendi-tinted~ | ||
| 753 | - ~modus-vivendi-deuteranopia~ | ||
| 754 | - ~modus-vivendi-tritanopia~ | ||
| 731 | 755 | ||
| 732 | ** Option for font mixing | 756 | ** Option for font mixing |
| 733 | :properties: | 757 | :properties: |
| @@ -1517,6 +1541,101 @@ the general idea (extra space for didactic purposes): | |||
| 1517 | ,@modus-themes-preset-overrides-intense)) | 1541 | ,@modus-themes-preset-overrides-intense)) |
| 1518 | #+end_src | 1542 | #+end_src |
| 1519 | 1543 | ||
| 1544 | ** DIY Add support for ~engrave-faces~ | ||
| 1545 | :PROPERTIES: | ||
| 1546 | :CUSTOM_ID: h:6c3f87a8-3573-43de-89e0-53f567c0ede1 | ||
| 1547 | :END: | ||
| 1548 | |||
| 1549 | The ~engraved-faces~ package is used as part of an Org export process | ||
| 1550 | to produce decent colors in the output. Its default style though | ||
| 1551 | requires changes to use the colors of the active Modus theme. | ||
| 1552 | |||
| 1553 | In the code below we show how to map everything that ~engrave-faces~ | ||
| 1554 | defines to the corresponding entry in the palette of the active Modus | ||
| 1555 | theme. We then use a hook to ensure that the value is updated after we | ||
| 1556 | switch to another theme in the collection ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]]). | ||
| 1557 | |||
| 1558 | #+begin_src emacs-lisp | ||
| 1559 | (defun my-modus-themes-engraved-faces (&rest _) | ||
| 1560 | (modus-themes-with-colors | ||
| 1561 | (setq engrave-faces-themes | ||
| 1562 | `((default . | ||
| 1563 | (;; faces.el --- excluding: bold, italic, bold-italic, underline, and some others | ||
| 1564 | (default :short "default" :slug "D" :foreground ,fg-main :background ,bg-main :family "Monospace") | ||
| 1565 | (variable-pitch :short "var-pitch" :slug "vp" :foreground ,fg-main :family "Sans Serif") | ||
| 1566 | (shadow :short "shadow" :slug "h" :foreground ,fg-dim) | ||
| 1567 | (success :short "success" :slug "sc" :foreground ,green :weight bold) | ||
| 1568 | (warning :short "warning" :slug "w" :foreground ,warning :weight bold) | ||
| 1569 | (error :short "error" :slug "e" :foreground ,err :weight bold) | ||
| 1570 | (link :short "link" :slug "l" :foreground ,fg-link) | ||
| 1571 | (link-visited :short "link" :slug "lv" :foreground ,fg-link-visited) | ||
| 1572 | (highlight :short "link" :slug "hi" :foreground ,info) | ||
| 1573 | ;; font-lock.el | ||
| 1574 | (font-lock-comment-face :short "fl-comment" :slug "c" :foreground ,comment) | ||
| 1575 | (font-lock-comment-delimiter-face :short "fl-comment-delim" :slug "cd" :foreground ,comment) | ||
| 1576 | (font-lock-string-face :short "fl-string" :slug "s" :foreground ,string) | ||
| 1577 | (font-lock-doc-face :short "fl-doc" :slug "d" :foreground ,docstring) | ||
| 1578 | (font-lock-doc-markup-face :short "fl-doc-markup" :slug "m" :foreground ,docmarkup) | ||
| 1579 | (font-lock-keyword-face :short "fl-keyword" :slug "k" :foreground ,keyword) | ||
| 1580 | (font-lock-builtin-face :short "fl-builtin" :slug "b" :foreground ,builtin) | ||
| 1581 | (font-lock-function-name-face :short "fl-function" :slug "f" :foreground ,fnname) | ||
| 1582 | (font-lock-variable-name-face :short "fl-variable" :slug "v" :foreground ,variable) | ||
| 1583 | (font-lock-type-face :short "fl-type" :slug "t" :foreground ,type) | ||
| 1584 | (font-lock-constant-face :short "fl-constant" :slug "o" :foreground ,constant) | ||
| 1585 | (font-lock-warning-face :short "fl-warning" :slug "wr" :foreground ,warning :weight bold) | ||
| 1586 | (font-lock-negation-char-face :short "fl-neg-char" :slug "nc") | ||
| 1587 | (font-lock-preprocessor-face :short "fl-preprocessor" :slug "pp" :foreground ,preprocessor) | ||
| 1588 | (font-lock-regexp-grouping-construct :short "fl-regexp" :slug "rc" :weight bold) | ||
| 1589 | (font-lock-regexp-grouping-backslash :short "fl-regexp-backslash" :slug "rb" :weight bold) | ||
| 1590 | ;; org-faces.el | ||
| 1591 | (org-block :short "org-block" :slug "ob") ; forcing no background is preferable | ||
| 1592 | (org-block-begin-line :short "org-block-begin" :slug "obb") ; forcing no background is preferable | ||
| 1593 | (org-block-end-line :short "org-block-end" :slug "obe") ; forcing no background is preferable | ||
| 1594 | ;; outlines | ||
| 1595 | (outline-1 :short "outline-1" :slug "Oa" :foreground ,fg-heading-1) | ||
| 1596 | (outline-2 :short "outline-2" :slug "Ob" :foreground ,fg-heading-2) | ||
| 1597 | (outline-3 :short "outline-3" :slug "Oc" :foreground ,fg-heading-3) | ||
| 1598 | (outline-4 :short "outline-4" :slug "Od" :foreground ,fg-heading-4) | ||
| 1599 | (outline-5 :short "outline-5" :slug "Oe" :foreground ,fg-heading-5) | ||
| 1600 | (outline-6 :short "outline-6" :slug "Of" :foreground ,fg-heading-6) | ||
| 1601 | (outline-7 :short "outline-7" :slug "Og" :foreground ,fg-heading-7) | ||
| 1602 | (outline-8 :short "outline-8" :slug "Oh" :foreground ,fg-heading-8) | ||
| 1603 | ;; highlight-numbers.el | ||
| 1604 | (highlight-numbers-number :short "hl-number" :slug "hn" :foreground ,number) | ||
| 1605 | ;; highlight-quoted.el | ||
| 1606 | (highlight-quoted-quote :short "hl-qquote" :slug "hq" :foreground ,string) | ||
| 1607 | (highlight-quoted-symbol :short "hl-qsymbol" :slug "hs" :foreground ,constant) | ||
| 1608 | ;; rainbow-delimiters.el | ||
| 1609 | (rainbow-delimiters-depth-1-face :short "rd-1" :slug "rda" :foreground ,rainbow-0) | ||
| 1610 | (rainbow-delimiters-depth-2-face :short "rd-2" :slug "rdb" :foreground ,rainbow-1) | ||
| 1611 | (rainbow-delimiters-depth-3-face :short "rd-3" :slug "rdc" :foreground ,rainbow-2) | ||
| 1612 | (rainbow-delimiters-depth-4-face :short "rd-4" :slug "rdd" :foreground ,rainbow-3) | ||
| 1613 | (rainbow-delimiters-depth-5-face :short "rd-5" :slug "rde" :foreground ,rainbow-4) | ||
| 1614 | (rainbow-delimiters-depth-6-face :short "rd-6" :slug "rdf" :foreground ,rainbow-5) | ||
| 1615 | (rainbow-delimiters-depth-7-face :short "rd-7" :slug "rdg" :foreground ,rainbow-6) | ||
| 1616 | (rainbow-delimiters-depth-8-face :short "rd-8" :slug "rdh" :foreground ,rainbow-7) | ||
| 1617 | (rainbow-delimiters-depth-9-face :short "rd-9" :slug "rdi" :foreground ,rainbow-8) | ||
| 1618 | ;; ansi-color | ||
| 1619 | (ansi-color-yellow :short "ansi-yellow" :slug "any" :foreground ,fg-term-yellow) | ||
| 1620 | (ansi-color-red :short "ansi-red" :slug "anr" :foreground ,fg-term-red) | ||
| 1621 | (ansi-color-black :short "ansi-black" :slug "anb" :foreground ,fg-term-black) | ||
| 1622 | (ansi-color-green :short "ansi-green" :slug "ang" :foreground ,fg-term-green) | ||
| 1623 | (ansi-color-blue :short "ansi-blue" :slug "anB" :foreground ,fg-term-blue) | ||
| 1624 | (ansi-color-cyan :short "ansi-cyan" :slug "anc" :foreground ,fg-term-cyan) | ||
| 1625 | (ansi-color-white :short "ansi-white" :slug "anw" :foreground ,fg-term-white) | ||
| 1626 | (ansi-color-magenta :short "ansi-magenta" :slug "anm" :foreground ,fg-term-magenta) | ||
| 1627 | (ansi-color-bright-yellow :short "ansi-bright-yellow" :slug "ANy" :foreground ,fg-term-yellow-bright) | ||
| 1628 | (ansi-color-bright-red :short "ansi-bright-red" :slug "ANr" :foreground ,fg-term-red-bright) | ||
| 1629 | (ansi-color-bright-black :short "ansi-bright-black" :slug "ANb" :foregroun ,fg-term-black-bright) | ||
| 1630 | (ansi-color-bright-green :short "ansi-bright-green" :slug "ANg" :foreground ,fg-term-green-bright) | ||
| 1631 | (ansi-color-bright-blue :short "ansi-bright-blue" :slug "ANB" :foreground ,fg-term-blue-bright) | ||
| 1632 | (ansi-color-bright-cyan :short "ansi-bright-cyan" :slug "ANc" :foreground ,fg-term-cyan-bright) | ||
| 1633 | (ansi-color-bright-white :short "ansi-bright-white" :slug "ANw" :foregroun ,fg-term-white-bright) | ||
| 1634 | (ansi-color-bright-magenta :short "ansi-bright-magenta" :slug "ANm" :foregroun ,fg-term-magenta-bright))))))) | ||
| 1635 | |||
| 1636 | (add-hook 'enable-theme-functions #'my-modus-themes-engraved-faces) | ||
| 1637 | #+end_src | ||
| 1638 | |||
| 1520 | ** DIY Stylistic variants using palette overrides | 1639 | ** DIY Stylistic variants using palette overrides |
| 1521 | :PROPERTIES: | 1640 | :PROPERTIES: |
| 1522 | :CUSTOM_ID: h:df1199d8-eaba-47db-805d-6b568a577bf3 | 1641 | :CUSTOM_ID: h:df1199d8-eaba-47db-805d-6b568a577bf3 |
| @@ -2892,7 +3011,7 @@ above: | |||
| 2892 | The reason we no longer provide this option is because it depends on a | 3011 | The reason we no longer provide this option is because it depends on a |
| 2893 | non-~nil~ value for ~x-underline-at-descent-line~. That variable | 3012 | non-~nil~ value for ~x-underline-at-descent-line~. That variable |
| 2894 | affects ALL underlines, including those of links. The effect is | 3013 | affects ALL underlines, including those of links. The effect is |
| 2895 | intrusive and looks awkard in prose. | 3014 | intrusive and looks awkward in prose. |
| 2896 | 3015 | ||
| 2897 | As such, the Modus themes no longer provide that option but instead | 3016 | As such, the Modus themes no longer provide that option but instead |
| 2898 | offer this piece of documentation to make the user fully aware of the | 3017 | offer this piece of documentation to make the user fully aware of the |
| @@ -2907,7 +3026,7 @@ Reload the theme for changes to take effect. | |||
| 2907 | #+cindex: Remapping faces | 3026 | #+cindex: Remapping faces |
| 2908 | 3027 | ||
| 2909 | There are cases where we need to change the buffer-local attributes of a | 3028 | There are cases where we need to change the buffer-local attributes of a |
| 2910 | face. This might be because we have our own minor mode that re-uses a | 3029 | face. This might be because we have our own minor mode that reuses a |
| 2911 | face for a particular purpose, such as a line selection tool that | 3030 | face for a particular purpose, such as a line selection tool that |
| 2912 | activates ~hl-line-mode~, but we wish to keep it distinct from other | 3031 | activates ~hl-line-mode~, but we wish to keep it distinct from other |
| 2913 | buffers. This is where ~face-remap-add-relative~ can be applied and may | 3032 | buffers. This is where ~face-remap-add-relative~ can be applied and may |
| @@ -3837,7 +3956,7 @@ on what we cover at length elsewhere in this manual: | |||
| 3837 | (modus-themes-with-colors | 3956 | (modus-themes-with-colors |
| 3838 | (custom-set-faces | 3957 | (custom-set-faces |
| 3839 | `(solaire-default-face ((,c :inherit default :background ,bg-dim :foreground ,fg-dim))) | 3958 | `(solaire-default-face ((,c :inherit default :background ,bg-dim :foreground ,fg-dim))) |
| 3840 | `(solaire-line-number-face ((,c :inherit solaire-default-face :foreground ,fg-unfocused))) | 3959 | `(solaire-line-number-face ((,c :inherit solaire-default-face :foreground ,fg-dim))) |
| 3841 | `(solaire-hl-line-face ((,c :background ,bg-active))) | 3960 | `(solaire-hl-line-face ((,c :background ,bg-active))) |
| 3842 | `(solaire-org-hide-face ((,c :background ,bg-dim :foreground ,bg-dim)))))) | 3961 | `(solaire-org-hide-face ((,c :background ,bg-dim :foreground ,bg-dim)))))) |
| 3843 | 3962 | ||
| @@ -3848,6 +3967,127 @@ on what we cover at length elsewhere in this manual: | |||
| 3848 | 3967 | ||
| 3849 | Reload the theme for changes to take effect. | 3968 | Reload the theme for changes to take effect. |
| 3850 | 3969 | ||
| 3970 | ** DIY Add support for meow-mode | ||
| 3971 | :PROPERTIES: | ||
| 3972 | :CUSTOM_ID: h:caa5a5c4-18fb-4b9f-91f9-883f216fce41 | ||
| 3973 | :END: | ||
| 3974 | |||
| 3975 | The ~meow~ package provides a modal editing experience. It is meant to | ||
| 3976 | build on top of the key bindings the user is already familiar with. My | ||
| 3977 | problem as an outsider is that I cannot make sense of all the contexts | ||
| 3978 | where its faces are used in, so I cannot make a good choice of which | ||
| 3979 | styles to use. The following is but a basic attempt to get started. | ||
| 3980 | |||
| 3981 | #+begin_src emacs-lisp | ||
| 3982 | ;; This is not complete, because it is difficult for a non-user to | ||
| 3983 | ;; make sense of where all the faces are used in. | ||
| 3984 | (defun my-modus-themes-custom-faces (&rest _) | ||
| 3985 | (modus-themes-with-colors | ||
| 3986 | (custom-set-faces | ||
| 3987 | ;; FIXME: What is a "region cursor" and should it differ from the position highlights below? | ||
| 3988 | `(meow-region-cursor-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0))) | ||
| 3989 | `(meow-region-cursor-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1))) | ||
| 3990 | `(meow-region-cursor-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2))) | ||
| 3991 | |||
| 3992 | `(meow-position-highlight-number-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0))) | ||
| 3993 | `(meow-position-highlight-number-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1))) | ||
| 3994 | `(meow-position-highlight-number-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2)))))) | ||
| 3995 | |||
| 3996 | (add-hook 'enable-theme-functions #'my-modus-themes-custom-faces) | ||
| 3997 | #+end_src | ||
| 3998 | |||
| 3999 | [[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]]. | ||
| 4000 | |||
| 4001 | ** DIY Add support for combobulate | ||
| 4002 | :PROPERTIES: | ||
| 4003 | :CUSTOM_ID: h:e94bdd17-1c2d-41b5-86c5-83462bd8f30c | ||
| 4004 | :END: | ||
| 4005 | |||
| 4006 | The ~combobulate~ package provides the means to operate on text that | ||
| 4007 | is underpinned by the ~tree-sitter~ program. Because this is a | ||
| 4008 | specialized case that requires intimate knowledge of the | ||
| 4009 | technicalities, I am not adding support for this package directly at | ||
| 4010 | the theme level. Users can try this instead: | ||
| 4011 | |||
| 4012 | #+begin_src emacs-lisp | ||
| 4013 | (defun my-modus-themes-custom-faces (&rest _) | ||
| 4014 | (modus-themes-with-colors | ||
| 4015 | (custom-set-faces | ||
| 4016 | `(combobulate-active-indicator-face ((,c :foreground ,fg-main))) | ||
| 4017 | `(combobulate-dimmed-indicator-face ((,c :inherit shadow))) | ||
| 4018 | `(combobulate-error-indicator-face ((,c :inherit error))) | ||
| 4019 | `(combobulate-query-highlight-fiery-flames-face ((,c :inherit modus-themes-intense-red))) | ||
| 4020 | `(combobulate-query-highlight-gleaming-gold-face ((,c :inherit modus-themes-intense-yellow))) | ||
| 4021 | `(combobulate-query-highlight-majestic-mercury-face ((,c :inherit modus-themes-intense-cyan))) | ||
| 4022 | `(combobulate-query-highlight-mysterious-mauve-face ((,c :inherit modus-themes-intense-magenta))) | ||
| 4023 | `(combobulate-query-highlight-radiant-rind-face ((,c :inherit modus-themes-subtle-red))) | ||
| 4024 | `(combobulate-query-highlight-regal-ripples-face ((,c :inherit modus-themes-intense-blue))) | ||
| 4025 | `(combobulate-query-highlight-serene-shade-face ((,c :inherit modus-themes-subtle-green))) | ||
| 4026 | `(combobulate-query-highlight-silver-shadows-face ((,c :background ,bg-active :foreground ,fg-main))) | ||
| 4027 | `(combobulate-query-highlight-vibrant-veggie-face ((,c :inherit modus-themes-intense-green))) | ||
| 4028 | `(combobulate-query-query-anonymous-face ((,c :inherit modus-themes-bold :foreground ,fg-alt))) | ||
| 4029 | `(combobulate-query-query-builtin-face ((,c :inherit font-lock-builtin-face))) | ||
| 4030 | `(combobulate-query-query-constant-face ((,c :inherit font-lock-constant-face))) | ||
| 4031 | `(combobulate-query-query-doc-markup-face ((,c :inherit font-lock-doc-markup-face))) | ||
| 4032 | `(combobulate-query-query-keyword-face ((,c :inherit font-lock-keyword-face))) | ||
| 4033 | `(combobulate-query-query-predicate-builtin-face ((,c :inherit bold))) | ||
| 4034 | `(combobulate-query-query-string-face ((,c :inherit font-lock-string-face))) | ||
| 4035 | `(combobulate-refactor-choice-face ((,c :inherit modus-themes-slant :foreground ,info))) | ||
| 4036 | `(combobulate-refactor-cursor-face ((,c :foreground ,cursor))) | ||
| 4037 | `(combobulate-refactor-field-face ((,c :background ,bg-inactive :foreground ,fg-main :extend nil))) | ||
| 4038 | `(combobulate-refactor-highlight-face ((,c :inherit highlight))) | ||
| 4039 | `(combobulate-refactor-inactive-choice-face ((,c :inherit modus-themes-slant :foreground ,fg-dim))) | ||
| 4040 | `(combobulate-refactor-inactive-field-face ((,c :background ,bg-dim :foreground ,fg-dim :extend nil))) | ||
| 4041 | `(combobulate-refactor-label-face ((,c :inherit modus-themes-search-replace))) | ||
| 4042 | `(combobulate-tree-branch-face ((,c :inherit shadow))) | ||
| 4043 | `(combobulate-tree-highlighted-node-face ((,c :inherit success))) | ||
| 4044 | `(combobulate-tree-normal-node-face ((,c :foreground ,fg-main))) | ||
| 4045 | `(combobulate-tree-pulse-node-face ((,c :background ,bg-blue-intense :extend t)))))) | ||
| 4046 | |||
| 4047 | (add-hook 'enable-theme-functions #'my-modus-themes-custom-faces) | ||
| 4048 | #+end_src | ||
| 4049 | |||
| 4050 | [[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]]. | ||
| 4051 | |||
| 4052 | ** DIY Add support for howm | ||
| 4053 | :PROPERTIES: | ||
| 4054 | :CUSTOM_ID: h:7ea8fa66-1cd8-47b0-92b4-9998a3068f85 | ||
| 4055 | :END: | ||
| 4056 | |||
| 4057 | The ~howm~ package is a note-taking solution for Emacs. Users can add | ||
| 4058 | support for its faces with something like the following. | ||
| 4059 | |||
| 4060 | #+begin_src emacs-lisp | ||
| 4061 | (defun my-modus-themes-custom-faces (&rest _) | ||
| 4062 | (modus-themes-with-colors | ||
| 4063 | (custom-set-faces | ||
| 4064 | `(action-lock-face ((,c :inherit button))) | ||
| 4065 | `(howm-mode-keyword-face (( ))) | ||
| 4066 | `(howm-mode-ref-face ((,c :inherit link))) | ||
| 4067 | `(howm-mode-title-face ((,c :inherit modus-themes-heading-0))) | ||
| 4068 | `(howm-mode-wiki-face ((,c :inherit link))) | ||
| 4069 | `(howm-reminder-deadline-face ((,c :foreground ,date-deadline))) | ||
| 4070 | `(howm-reminder-late-deadline-face ((,c :inherit bold :foreground ,date-deadline))) | ||
| 4071 | `(howm-reminder-defer-face ((,c :foreground ,date-scheduled))) | ||
| 4072 | `(howm-reminder-scheduled-face ((,c :foreground ,date-scheduled))) | ||
| 4073 | `(howm-reminder-done-face ((,c :foreground ,prose-done))) | ||
| 4074 | `(howm-reminder-todo-face ((,c :foreground ,prose-todo))) | ||
| 4075 | `(howm-reminder-normal-face ((,c :foreground ,date-common))) | ||
| 4076 | `(howm-reminder-today-face ((,c :inherit bold :foreground ,date-common))) | ||
| 4077 | `(howm-reminder-tomorrow-face ((,c :inherit bold :foreground ,date-scheduled))) | ||
| 4078 | `(howm-simulate-todo-mode-line-face ((,c :inherit bold))) | ||
| 4079 | `(howm-view-empty-face (( ))) | ||
| 4080 | `(howm-view-hilit-face ((,c :inherit match))) | ||
| 4081 | `(howm-view-name-face ((,c :inherit bold))) | ||
| 4082 | `(iigrep-counts-face1 ((,c :foreground ,rainbow-1))) | ||
| 4083 | `(iigrep-counts-face2 ((,c :foreground ,rainbow-2))) | ||
| 4084 | `(iigrep-counts-face3 ((,c :foreground ,rainbow-3))) | ||
| 4085 | `(iigrep-counts-face4 ((,c :foreground ,rainbow-4))) | ||
| 4086 | `(iigrep-counts-face5 ((,c :foreground ,rainbow-5)))))) | ||
| 4087 | |||
| 4088 | (add-hook 'enable-theme-functions #'my-modus-themes-custom-faces) | ||
| 4089 | #+end_src | ||
| 4090 | |||
| 3851 | ** DIY Use a hook at the post-load-theme phase | 4091 | ** DIY Use a hook at the post-load-theme phase |
| 3852 | :PROPERTIES: | 4092 | :PROPERTIES: |
| 3853 | :CUSTOM_ID: h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24 | 4093 | :CUSTOM_ID: h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24 |
| @@ -4057,6 +4297,7 @@ have lots of extensions, so the "full support" may not be 100% true… | |||
| 4057 | + focus | 4297 | + focus |
| 4058 | + fold-this | 4298 | + fold-this |
| 4059 | + font-lock (generic syntax highlighting) | 4299 | + font-lock (generic syntax highlighting) |
| 4300 | + forge | ||
| 4060 | + geiser | 4301 | + geiser |
| 4061 | + git-commit | 4302 | + git-commit |
| 4062 | + git-gutter (and variants) | 4303 | + git-gutter (and variants) |
| @@ -4066,6 +4307,7 @@ have lots of extensions, so the "full support" may not be 100% true… | |||
| 4066 | + gotest | 4307 | + gotest |
| 4067 | + golden-ratio-scroll-screen | 4308 | + golden-ratio-scroll-screen |
| 4068 | + helpful | 4309 | + helpful |
| 4310 | + hexl-mode | ||
| 4069 | + highlight-numbers | 4311 | + highlight-numbers |
| 4070 | + highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]]) | 4312 | + highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]]) |
| 4071 | + highlight-thing | 4313 | + highlight-thing |
| @@ -4264,7 +4506,6 @@ supported by the themes. | |||
| 4264 | + flyspell-correct | 4506 | + flyspell-correct |
| 4265 | + fortran-mode | 4507 | + fortran-mode |
| 4266 | + freeze-it | 4508 | + freeze-it |
| 4267 | + forge | ||
| 4268 | + git-walktree | 4509 | + git-walktree |
| 4269 | + goggles | 4510 | + goggles |
| 4270 | + highlight-defined | 4511 | + highlight-defined |
| @@ -4534,7 +4775,7 @@ advanced customization options of the themes. | |||
| 4534 | [[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]. | 4775 | [[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]. |
| 4535 | 4776 | ||
| 4536 | In the following example, we are assuming that the user wants to (i) | 4777 | In the following example, we are assuming that the user wants to (i) |
| 4537 | re-use color variables provided by the themes, (ii) be able to retain | 4778 | reuse color variables provided by the themes, (ii) be able to retain |
| 4538 | their tweaks while switching between ~modus-operandi~ and ~modus-vivendi~, | 4779 | their tweaks while switching between ~modus-operandi~ and ~modus-vivendi~, |
| 4539 | and (iii) have the option to highlight either the foreground of the | 4780 | and (iii) have the option to highlight either the foreground of the |
| 4540 | parentheses or the background as well. | 4781 | parentheses or the background as well. |
| @@ -4554,7 +4795,7 @@ Then we can update our preference with this: | |||
| 4554 | (setq my-highlight-parentheses-use-background nil) | 4795 | (setq my-highlight-parentheses-use-background nil) |
| 4555 | #+end_src | 4796 | #+end_src |
| 4556 | 4797 | ||
| 4557 | To re-use colors from the themes, we must wrap our code in the | 4798 | To reuse colors from the themes, we must wrap our code in the |
| 4558 | ~modus-themes-with-colors~ macro. Our implementation must interface with | 4799 | ~modus-themes-with-colors~ macro. Our implementation must interface with |
| 4559 | the variables ~highlight-parentheses-background-colors~ and/or | 4800 | the variables ~highlight-parentheses-background-colors~ and/or |
| 4560 | ~highlight-parentheses-colors~. | 4801 | ~highlight-parentheses-colors~. |
| @@ -5220,7 +5461,7 @@ each of the three channels of light (red, green, blue). For example: | |||
| 5220 | : xrandr --output LVDS1 --brightness 1.0 --gamma 0.76:0.75:0.68 | 5461 | : xrandr --output LVDS1 --brightness 1.0 --gamma 0.76:0.75:0.68 |
| 5221 | 5462 | ||
| 5222 | Typography is another variable. Some font families are blurry at small | 5463 | Typography is another variable. Some font families are blurry at small |
| 5223 | point sizes. Others may have a regular weight that is lighter (thiner) | 5464 | point sizes. Others may have a regular weight that is lighter (thinner) |
| 5224 | than that of their peers which may, under certain circumstances, cause a | 5465 | than that of their peers which may, under certain circumstances, cause a |
| 5225 | halo effect around each glyph. | 5466 | halo effect around each glyph. |
| 5226 | 5467 | ||
| @@ -5516,19 +5757,19 @@ The Modus themes are a collective effort. Every bit of work matters. | |||
| 5516 | Euker, Feng Shu, Filippo Argiolas, Gautier Ponsinet, Gerry Agbobada, | 5757 | Euker, Feng Shu, Filippo Argiolas, Gautier Ponsinet, Gerry Agbobada, |
| 5517 | Gianluca Recchia, Gonçalo Marrafa, Guilherme Semente, Gustavo | 5758 | Gianluca Recchia, Gonçalo Marrafa, Guilherme Semente, Gustavo |
| 5518 | Barros, Hörmetjan Yiltiz, Ilja Kocken, Imran Khan, Iris Garcia, Ivan | 5759 | Barros, Hörmetjan Yiltiz, Ilja Kocken, Imran Khan, Iris Garcia, Ivan |
| 5519 | Popovych, James Ferguson, Jeremy Friesen, Jerry Zhang, Johannes | 5760 | Popovych, Jabir Ali Ouassou, James Ferguson, Jeremy Friesen, Jerry |
| 5520 | Grødem, John Haman, John Wick, Jonas Collberg, Jorge Morais, Joshua | 5761 | Zhang, Johannes Grødem, John Haman, John Wick, Jonas Collberg, Jorge |
| 5521 | O'Connor, Julio C. Villasante, Kenta Usami, Kevin Fleming, Kévin Le | 5762 | Morais, Joshua O'Connor, Julio C. Villasante, Kenta Usami, Kevin |
| 5522 | Gouguec, Kevin Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse | 5763 | Fleming, Kévin Le Gouguec, Kevin Kainan Li, Kostadin Ninev, Laith |
| 5523 | Lindner, Len Trigg, Lennart C.{{{space()}}} Karssen, Luis Miguel | 5764 | Bahodi, Lasse Lindner, Len Trigg, Lennart C.{{{space()}}} Karssen, |
| 5524 | Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark Bestley, | 5765 | Luis Miguel Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark |
| 5525 | Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler, Matt | 5766 | Bestley, Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler, |
| 5526 | Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda, Maxime | 5767 | Matt Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda, |
| 5527 | Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock, Murilo | 5768 | Maxime Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock, |
| 5528 | Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas Semrau, | 5769 | Murilo Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas |
| 5529 | Olaf Meeuwissen, Oliver Epper, Pablo Stafforini, Paul Poloskov, | 5770 | Semrau, Olaf Meeuwissen, Oliver Epper, Pablo Stafforini, Paul |
| 5530 | Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre | 5771 | Poloskov, Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, |
| 5531 | Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov, | 5772 | Pierre Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov, |
| 5532 | Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam | 5773 | Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam |
| 5533 | Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon | 5774 | Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon |
| 5534 | Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron, | 5775 | Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron, |