Deprecate modus-themes-custom-auto-reload

It complicates things for us and also has the disadvantage of running
as many times as the setopt variables being set. Users should just
learn to reload their theme and/or Emacs should have some built-in
mechanism. This is not our problem to fix.
This commit is contained in:
Protesilaos Stavrou 2025-09-28 08:34:05 +03:00
parent 6cc997945f
commit e32af5e54d
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
3 changed files with 146 additions and 254 deletions

View file

@ -104,7 +104,6 @@ Enable and load
Customization options
* Custom reload theme:: Toggle auto-reload of the theme when setting custom variables
* Disable other themes:: Determine whether loading a Modus themes disables all others
* Bold constructs:: Toggle bold constructs in code
* Italic constructs:: Toggle italic font constructs in code
@ -770,7 +769,6 @@ active, it must be reloaded for changes to take effect.
* Menu:
* Custom reload theme:: Toggle auto-reload of the theme when setting custom variables
* Disable other themes:: Determine whether loading a Modus themes disables all others
* Bold constructs:: Toggle bold constructs in code
* Italic constructs:: Toggle italic font constructs in code
@ -786,36 +784,9 @@ active, it must be reloaded for changes to take effect.
* Palette extension:: Define new colors and use them like the original ones

File: modus-themes.info, Node: Custom reload theme, Next: Disable other themes, Up: Customization options
File: modus-themes.info, Node: Disable other themes, Next: Bold constructs, Up: Customization options
4.1 Option for reloading the theme on custom change
===================================================
Brief: Toggle reloading of the active theme when an option is changed
through the Custom UI.
Symbol: modus-themes-custom-auto-reload (boolean type)
Possible values:
1. nil
2. t (default)
All theme user options take effect when a theme is loaded. Any
subsequent changes require the theme to be reloaded.
When this variable has a non-nil value, any change made via the
Custom UI or related functions such as customize-set-variable and
setopt (Emacs 29), will trigger a reload automatically.
With a nil value, changes to user options have no further
consequences: the user must manually reload the theme (*note Enable and
load::).

File: modus-themes.info, Node: Disable other themes, Next: Bold constructs, Prev: Custom reload theme, Up: Customization options
4.2 Option for disabling other themes while loading Modus
4.1 Option for disabling other themes while loading Modus
=========================================================
Brief: Disable all other themes when loading a Modus theme.
@ -845,7 +816,7 @@ variable to a nil value.

File: modus-themes.info, Node: Bold constructs, Next: Italic constructs, Prev: Disable other themes, Up: Customization options
4.3 Option for more bold constructs
4.2 Option for more bold constructs
===================================
Brief: Use bold for code syntax highlighting and related.
@ -874,7 +845,7 @@ faces.

File: modus-themes.info, Node: Italic constructs, Next: Option for which themes to toggle, Prev: Bold constructs, Up: Customization options
4.4 Option for more italic constructs
4.3 Option for more italic constructs
=====================================
Brief: Use italics for code syntax highlighting and related.
@ -901,7 +872,7 @@ faces.

File: modus-themes.info, Node: Option for which themes to toggle, Next: Option for which themes to rotate, Prev: Italic constructs, Up: Customization options
4.5 Option for which themes to toggle
4.4 Option for which themes to toggle
=====================================
Brief: Specify which two themes to toggle between when using the command
@ -925,7 +896,7 @@ Brief: Specify which two themes to toggle between when using the command

File: modus-themes.info, Node: Option for which themes to rotate, Next: Mixed fonts, Prev: Option for which themes to toggle, Up: Customization options
4.6 Option for which themes to rotate
4.5 Option for which themes to rotate
=====================================
Brief: Specify which themes to rotate among when using the command
@ -950,7 +921,7 @@ themes)

File: modus-themes.info, Node: Mixed fonts, Next: Command prompts, Prev: Option for which themes to rotate, Up: Customization options
4.7 Option for font mixing
4.6 Option for font mixing
==========================
Brief: Toggle the use of monospaced fonts for spacing-sensitive
@ -979,7 +950,7 @@ for Org and others.

File: modus-themes.info, Node: Command prompts, Next: Completion UIs, Prev: Mixed fonts, Up: Customization options
4.8 Option for command prompt styles
4.7 Option for command prompt styles
====================================
Brief: Control the style of command prompts (e.g. minibuffer, shell,
@ -1036,7 +1007,7 @@ less colorful.

File: modus-themes.info, Node: Completion UIs, Next: Org mode blocks, Prev: Command prompts, Up: Customization options
4.9 Option for completion framework aesthetics
4.8 Option for completion framework aesthetics
==============================================
Brief: Set the overall style of completion framework interfaces.
@ -1102,8 +1073,8 @@ completion matches more or less colorful.

File: modus-themes.info, Node: Org mode blocks, Next: Heading styles, Prev: Completion UIs, Up: Customization options
4.10 Option for org-mode block styles
=====================================
4.9 Option for org-mode block styles
====================================
As part of version 4.4.0, the modus-themes-org-blocks is no more.
Users can apply palette overrides to set a style that fits their
@ -1117,7 +1088,7 @@ language::).

File: modus-themes.info, Node: Heading styles, Next: UI typeface, Prev: Org mode blocks, Up: Customization options
4.11 Option for the headings' overall style
4.10 Option for the headings' overall style
===========================================
Brief: Heading styles with optional list of values per heading level.
@ -1230,7 +1201,7 @@ less colorful.

File: modus-themes.info, Node: UI typeface, Next: Palette overrides, Prev: Heading styles, Up: Customization options
4.12 Option for variable-pitch font in UI elements
4.11 Option for variable-pitch font in UI elements
==================================================
Brief: Toggle the use of proportionately spaced (variable-pitch) fonts
@ -1260,7 +1231,7 @@ for Org and others.

File: modus-themes.info, Node: Palette overrides, Next: Palette extension, Prev: UI typeface, Up: Customization options
4.13 Option for palette overrides
4.12 Option for palette overrides
=================================
This section describes palette overrides in detail. For a simpler
@ -1356,8 +1327,8 @@ cyan hue to keywords:
(comment red-faint)
(keyword cyan-cooler)))
Changes take effect upon theme reload (*note Custom reload theme::).
Overrides are removed by setting their variable to a nil value.
Changes take effect upon theme reload. Overrides are removed by
setting their variable to a nil value.
The common accented foregrounds in each palette follow a predictable
naming scheme: HUE{,-warmer,-cooler,-faint,-intense}. HUE is one of
@ -1378,7 +1349,7 @@ watch:

File: modus-themes.info, Node: Palette extension, Prev: Palette overrides, Up: Customization options
4.14 Option to extend the palette
4.13 Option to extend the palette
=================================
It is possible to extend the palette of each theme. For example, the
@ -6490,7 +6461,6 @@ B.2 Variable index
* modus-themes-common-palette-overrides: Palette overrides. (line 22)
* modus-themes-common-palette-user: Palette extension. (line 16)
* modus-themes-completions: Completion UIs. (line 6)
* modus-themes-custom-auto-reload: Custom reload theme. (line 6)
* modus-themes-disable-other-themes: Disable other themes. (line 6)
* modus-themes-headings: Heading styles. (line 6)
* modus-themes-italic-constructs: Italic constructs. (line 6)
@ -6593,133 +6563,132 @@ B.3 Concept index

Tag Table:
Node: Top874
Node: Overview8646
Node: How do the themes look like11412
Node: Learn about the latest changes11771
Node: Installation12159
Node: Install manually from source13070
Node: Install from the archives13893
Node: Install on GNU/Linux14492
Node: Debian 11 Bullseye14983
Node: GNU Guix15391
Node: Dealing with byte compilation errors15674
Node: Enable and load16832
Node: The require-theme for built-in Emacs themes20776
Node: Sample configuration with and without use-package21896
Node: Differences between loading and enabling24742
Node: Customization options26865
Node: Custom reload theme30774
Node: Disable other themes31694
Node: Bold constructs32936
Node: Italic constructs33808
Node: Option for which themes to toggle34636
Node: Option for which themes to rotate35399
Node: Mixed fonts36175
Node: Command prompts37229
Node: Completion UIs39070
Node: Org mode blocks41919
Node: Heading styles42564
Node: UI typeface46990
Node: Palette overrides47963
Node: Palette extension52349
Node: Preview theme colors54825
Node: Use colors from the Modus themes palette56377
Node: Get a single color from the palette with modus-themes-get-color-value57241
Node: Use theme colors in code with modus-themes-with-colors59602
Node: Advanced customization61856
Node: DIY Palette override presets63615
Node: DIY Add support for engrave-faces66449
Node: DIY Stylistic variants using palette overrides76432
Node: DIY Make the mode line borderless78491
Node: DIY Make the active mode line colorful79866
Node: DIY Make the tab bar more or less colorful82084
Node: DIY Make the fringe invisible or another color84021
Node: DIY Make links use subtle or no underlines85218
Node: DIY Make prompts more or less colorful86336
Node: DIY Make completion matches more or less colorful87659
Node: DIY Make comments yellow and strings green91218
Node: DIY Make code syntax use the old alt-syntax style92925
Node: DIY Make use of alternative styles for code syntax96038
Node: DIY Make matching parenthesis more or less intense99500
Node: DIY Make box buttons more or less gray100872
Node: DIY Make TODO and DONE more or less intense101885
Node: DIY Make headings more or less colorful103386
Node: DIY Make Org block colors more or less colorful105503
Node: DIY Make Org agenda more or less colorful109875
Node: DIY Make inline code in prose use alternative styles113050
Node: DIY Make mail citations and headers more or less colorful115290
Node: DIY Make the region preserve text colors plus other styles117690
Node: DIY Make mouse highlights more or less colorful119246
Node: DIY Make language underlines less colorful120259
Node: DIY Make line numbers use alternative styles121411
Node: DIY Make diffs use only a foreground123054
Node: DIY Make deuteranopia diffs red and blue instead of yellow and blue125941
Node: DIY More accurate colors in terminal emulators128413
Node: DIY Range of color with terminal emulators129721
Node: DIY Per-theme customization settings132508
Node: DIY Do not extend the region background133941
Node: DIY Add padding to the mode line134739
Node: DIY Remap face with local value137667
Node: DIY Font configurations for Org and others140206
Ref: DIY Font configurations for Org and others-Footnote-1143189
Node: DIY Configure bold and italic faces143376
Node: DIY Custom Org todo keyword and priority faces147998
Node: DIY Custom Org emphasis faces151739
Node: DIY Use colored Org source blocks per language156616
Node: DIY Measure color contrast161256
Node: DIY Load theme depending on time of day163973
Node: DIY Backdrop for pdf-tools165001
Node: DIY Toggle themes without reloading them168162
Node: DIY Use more spacious margins or padding in Emacs frames169471
Node: DIY Custom hl-todo colors173708
Node: DIY Add support for solaire-mode175525
Node: DIY Add support for meow-mode178617
Node: DIY Add support for combobulate180427
Node: DIY Use a hook at the post-load-theme phase184050
Node: DIY A theme-agnostic hook for theme loading186171
Node: Face coverage188802
Node: Supported packages189254
Node: Indirectly covered packages195120
Node: Notes on individual packages196476
Node: Note on calendarel weekday and weekend colors197576
Node: Note on git-gutter in Doom Emacs198724
Node: Note on php-mode multiline comments201224
Node: Note on underlines in compilation buffers201984
Node: Note on inline Latex in Org buffers202856
Node: Note on dimmerel203466
Node: Note on display-fill-column-indicator-mode204951
Node: Note on highlight-parenthesesel206402
Node: Note on mmm-modeel background colors212479
Node: Note for prism214831
Node: Note on company-mode overlay pop-up218043
Ref: Note on company-mode overlay pop-up-Footnote-1218771
Ref: Note on company-mode overlay pop-up-Footnote-2218838
Node: Note on ERC escaped color sequences218893
Ref: Note on ERC escaped color sequences-Footnote-1220321
Node: Note on powerline or spaceline220431
Node: Note on SHR colors220845
Node: Note on SHR fonts221265
Node: Note on Ement colors and fonts221952
Node: Note on pdf-tools link hints223456
Node: Note on the Notmuch logo225912
Node: Note on goto-address-mode faces226444
Node: Frequently Asked Questions227562
Node: Is the contrast ratio about adjacent colors?228193
Node: What does it mean to avoid exaggerations?229702
Node: Why are colors mostly variants of blue magenta cyan?231552
Node: What is the best setup for legibility?235886
Node: Are these color schemes?238528
Node: Port the Modus themes to other platforms?242182
Node: Contributing245016
Node: Sources of the themes245415
Node: Issues you can help with246311
Node: Patches require copyright assignment to the FSF247703
Node: Acknowledgements249925
Node: GNU Free Documentation License254364
Node: Indices279527
Node: Function index279706
Node: Variable index281302
Node: Concept index284802
Node: Overview8551
Node: How do the themes look like11317
Node: Learn about the latest changes11676
Node: Installation12064
Node: Install manually from source12975
Node: Install from the archives13798
Node: Install on GNU/Linux14397
Node: Debian 11 Bullseye14888
Node: GNU Guix15296
Node: Dealing with byte compilation errors15579
Node: Enable and load16737
Node: The require-theme for built-in Emacs themes20681
Node: Sample configuration with and without use-package21801
Node: Differences between loading and enabling24647
Node: Customization options26770
Node: Disable other themes30584
Node: Bold constructs31798
Node: Italic constructs32670
Node: Option for which themes to toggle33498
Node: Option for which themes to rotate34261
Node: Mixed fonts35037
Node: Command prompts36091
Node: Completion UIs37932
Node: Org mode blocks40781
Node: Heading styles41424
Node: UI typeface45850
Node: Palette overrides46823
Node: Palette extension51180
Node: Preview theme colors53656
Node: Use colors from the Modus themes palette55208
Node: Get a single color from the palette with modus-themes-get-color-value56072
Node: Use theme colors in code with modus-themes-with-colors58433
Node: Advanced customization60687
Node: DIY Palette override presets62446
Node: DIY Add support for engrave-faces65280
Node: DIY Stylistic variants using palette overrides75263
Node: DIY Make the mode line borderless77322
Node: DIY Make the active mode line colorful78697
Node: DIY Make the tab bar more or less colorful80915
Node: DIY Make the fringe invisible or another color82852
Node: DIY Make links use subtle or no underlines84049
Node: DIY Make prompts more or less colorful85167
Node: DIY Make completion matches more or less colorful86490
Node: DIY Make comments yellow and strings green90049
Node: DIY Make code syntax use the old alt-syntax style91756
Node: DIY Make use of alternative styles for code syntax94869
Node: DIY Make matching parenthesis more or less intense98331
Node: DIY Make box buttons more or less gray99703
Node: DIY Make TODO and DONE more or less intense100716
Node: DIY Make headings more or less colorful102217
Node: DIY Make Org block colors more or less colorful104334
Node: DIY Make Org agenda more or less colorful108706
Node: DIY Make inline code in prose use alternative styles111881
Node: DIY Make mail citations and headers more or less colorful114121
Node: DIY Make the region preserve text colors plus other styles116521
Node: DIY Make mouse highlights more or less colorful118077
Node: DIY Make language underlines less colorful119090
Node: DIY Make line numbers use alternative styles120242
Node: DIY Make diffs use only a foreground121885
Node: DIY Make deuteranopia diffs red and blue instead of yellow and blue124772
Node: DIY More accurate colors in terminal emulators127244
Node: DIY Range of color with terminal emulators128552
Node: DIY Per-theme customization settings131339
Node: DIY Do not extend the region background132772
Node: DIY Add padding to the mode line133570
Node: DIY Remap face with local value136498
Node: DIY Font configurations for Org and others139037
Ref: DIY Font configurations for Org and others-Footnote-1142020
Node: DIY Configure bold and italic faces142207
Node: DIY Custom Org todo keyword and priority faces146829
Node: DIY Custom Org emphasis faces150570
Node: DIY Use colored Org source blocks per language155447
Node: DIY Measure color contrast160087
Node: DIY Load theme depending on time of day162804
Node: DIY Backdrop for pdf-tools163832
Node: DIY Toggle themes without reloading them166993
Node: DIY Use more spacious margins or padding in Emacs frames168302
Node: DIY Custom hl-todo colors172539
Node: DIY Add support for solaire-mode174356
Node: DIY Add support for meow-mode177448
Node: DIY Add support for combobulate179258
Node: DIY Use a hook at the post-load-theme phase182881
Node: DIY A theme-agnostic hook for theme loading185002
Node: Face coverage187633
Node: Supported packages188085
Node: Indirectly covered packages193951
Node: Notes on individual packages195307
Node: Note on calendarel weekday and weekend colors196407
Node: Note on git-gutter in Doom Emacs197555
Node: Note on php-mode multiline comments200055
Node: Note on underlines in compilation buffers200815
Node: Note on inline Latex in Org buffers201687
Node: Note on dimmerel202297
Node: Note on display-fill-column-indicator-mode203782
Node: Note on highlight-parenthesesel205233
Node: Note on mmm-modeel background colors211310
Node: Note for prism213662
Node: Note on company-mode overlay pop-up216874
Ref: Note on company-mode overlay pop-up-Footnote-1217602
Ref: Note on company-mode overlay pop-up-Footnote-2217669
Node: Note on ERC escaped color sequences217724
Ref: Note on ERC escaped color sequences-Footnote-1219152
Node: Note on powerline or spaceline219262
Node: Note on SHR colors219676
Node: Note on SHR fonts220096
Node: Note on Ement colors and fonts220783
Node: Note on pdf-tools link hints222287
Node: Note on the Notmuch logo224743
Node: Note on goto-address-mode faces225275
Node: Frequently Asked Questions226393
Node: Is the contrast ratio about adjacent colors?227024
Node: What does it mean to avoid exaggerations?228533
Node: Why are colors mostly variants of blue magenta cyan?230383
Node: What is the best setup for legibility?234717
Node: Are these color schemes?237359
Node: Port the Modus themes to other platforms?241013
Node: Contributing243847
Node: Sources of the themes244246
Node: Issues you can help with245142
Node: Patches require copyright assignment to the FSF246534
Node: Acknowledgements248756
Node: GNU Free Documentation License253195
Node: Indices278358
Node: Function index278537
Node: Variable index280133
Node: Concept index283560

End Tag Table

View file

@ -585,34 +585,6 @@ reloaded for changes to take effect.
;; document extensively in this manual.
#+end_src
** Option for reloading the theme on custom change
:properties:
:alt_title: Custom reload theme
:description: Toggle auto-reload of the theme when setting custom variables
:custom_id: h:9001527a-4e2c-43e0-98e8-3ef72d770639
:end:
#+vindex: modus-themes-custom-auto-reload
Brief: Toggle reloading of the active theme when an option is changed
through the Custom UI.
Symbol: ~modus-themes-custom-auto-reload~ (=boolean= type)
Possible values:
1. ~nil~
2. ~t~ (default)
All theme user options take effect when a theme is loaded. Any
subsequent changes require the theme to be reloaded.
When this variable has a non-~nil~ value, any change made via the Custom
UI or related functions such as ~customize-set-variable~ and ~setopt~
(Emacs 29), will trigger a reload automatically.
With a ~nil~ value, changes to user options have no further consequences:
the user must manually reload the theme ([[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]]).
** Option for disabling other themes while loading Modus
:properties:
:alt_title: Disable other themes
@ -1195,8 +1167,8 @@ a cyan hue to keywords:
(keyword cyan-cooler)))
#+end_src
Changes take effect upon theme reload ([[#h:9001527a-4e2c-43e0-98e8-3ef72d770639][Custom reload theme]]).
Overrides are removed by setting their variable to a ~nil~ value.
Changes take effect upon theme reload. Overrides are removed by
setting their variable to a ~nil~ value.
The common accented foregrounds in each palette follow a predictable
naming scheme: =HUE{,-warmer,-cooler,-faint,-intense}=. =HUE= is one

View file

@ -227,38 +227,7 @@ text should not be underlined as well) yet still blend in."
;;;; Customization variables
(defcustom modus-themes-custom-auto-reload t
"Automatically reload theme after setting options with Customize.
All theme user options take effect when a theme is loaded. Any
subsequent changes require the theme to be reloaded.
When this variable has a non-nil value, any change made via the
Custom UI or related functions such as `customize-set-variable'
and `setopt' (Emacs 29), will trigger a reload automatically.
With a nil value, changes to user options have no further
consequences. The user must manually reload the theme."
:group 'modus-themes
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:type 'boolean
:link '(info-link "(modus-themes) Custom reload theme"))
(defun modus-themes--set-option (sym val)
"Custom setter for theme related user options.
Will set SYM to VAL, and reload the current theme, unless
`modus-themes-custom-auto-reload' is nil."
(set-default sym val)
(when (and modus-themes-custom-auto-reload
;; Check if a theme is being loaded, in which case we
;; don't want to reload a theme if the setter is
;; invoked. `custom--inhibit-theme-enable' is set to nil
;; by `enable-theme'.
(bound-and-true-p custom--inhibit-theme-enable))
(when-let* ((modus-themes-custom-auto-reload t)
(theme (modus-themes--current-theme)))
(modus-themes-load-theme theme))))
(make-obsolete 'modus-themes-custom-auto-reload nil "4.9.0")
(defcustom modus-themes-disable-other-themes t
"Disable all other themes when loading a Modus theme.
@ -349,8 +318,6 @@ This is used by the commands `modus-themes-toggle',
:package-version '(modus-themes . "1.5.0")
:version "28.1"
:type 'boolean
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Italic constructs"))
(defcustom modus-themes-bold-constructs nil
@ -359,8 +326,6 @@ This is used by the commands `modus-themes-toggle',
:package-version '(modus-themes . "1.0.0")
:version "28.1"
:type 'boolean
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Bold constructs"))
(defcustom modus-themes-variable-pitch-ui nil
@ -370,8 +335,6 @@ This includes the mode line, header line, tab bar, and tab line."
:package-version '(modus-themes . "1.1.0")
:version "28.1"
:type 'boolean
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) UI typeface"))
(defcustom modus-themes-mixed-fonts nil
@ -389,8 +352,6 @@ Protesilaos))."
:package-version '(modus-themes . "1.7.0")
:version "29.1"
:type 'boolean
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Mixed fonts"))
(defconst modus-themes--weight-widget
@ -521,8 +482,6 @@ and related user options."
'(0 1 2 3 4 5 6 7 8 t agenda-date agenda-structure))
:key-type symbol
:value-type ,modus-themes--headings-widget)
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Heading styles"))
(make-obsolete-variable 'modus-themes-org-blocks nil "4.4.0: Use palette overrides")
@ -608,8 +567,6 @@ Is the same as:
,modus-themes--weight-widget
(const :tag "Italic font (oblique or slanted forms)" italic)
(const :tag "Underline" underline))))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Completion UIs"))
(defcustom modus-themes-prompts nil
@ -644,8 +601,6 @@ In user configuration files the form may look like this:
:type `(set :tag "Properties" :greedy t
(const :tag "Italic font slant" italic)
,modus-themes--weight-widget)
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Command prompts"))
@ -658,8 +613,6 @@ used in combination with palette overrides (see
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Extend the palette for use with overrides"))
(defcustom modus-themes-common-palette-overrides nil
@ -704,8 +657,6 @@ represents."
;; ,@(mapcar (lambda (x)
;; (list 'const x))
;; (mapcar #'car (modus-themes--current-theme-palette)))))))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Palette overrides"))