[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompat
From: |
Protesilaos Stavrou |
Subject: |
bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible) |
Date: |
Sun, 06 Dec 2020 14:23:44 +0200 |
Dear maintainers,
I have made some major changes to the Modus themes and tagged this as
the first major release. I am opening the present bug report because
this change has implications on how the themes are distributed with
Emacs.
Currently Emacs ships 'modus-operandi-theme' and 'modus-vivendi-theme'
version 0.13.0. You can find the files in ../etc/themes/.
Those contained duplicate code and their only real difference was in the
color values they used. However, they were distributed as if they were
standalone items, so all 'defcustom' declarations they had were unique
to each (duplicate code though different names).
Since version 1.0, I derive the two themes from a common source using a
macro and a shared file for data. This has two main advantages:
+ All 'defcustom' are unified and apply to both themes. Users no longer
have to implement ad hoc code to get a unified look between the two
items.
+ Everything is easier to maintain, as I no longer need to copy from one
theme to the other, rename accordingly, and check that there are no
discrepancies between them.
The problem with contributing this new code to Emacs is that it cannot
work if it is placed in ../etc/themes/. Instead, the files need to be
in a path that handles byte-compilation, like ../lisp/modus-themes/.
1. This implies that commands such as 'M-x load-theme' cannot work
without first requiring the appropriate files. Such as:
(require 'modus-themes) ;; common code
(require 'modus-operandi-theme) ;; light theme
(load-theme 'modus-operandi t)
...
(require 'modus-vivendi-theme) ;; dark theme
(load-theme 'modus-vivendi t)
2. Because we do not use ../etc/themes/, neither 'modus-operandi' nor
'modus-vivendi' are marked as safe. They are considered custom.
Hence the non-nil NO-CONFIRM argument to 'load-theme'.
3. This also means that 'M-x customize-themes' and similar will not
present the themes in their list without first requiring the
aforementioned features.
* * *
Those are the issues I could identify. As such, the attached patch
removes the old files and places the new ones in ../lisp/modus-themes/.
The themes' manual is updated to cover the new version. The NEWS entry
is edited accordingly.
I understand you may object to the course of action covered by the
patch. Please inform me of a better way to address this issue. My
intent is to contribute version 1.0 of my themes to Emacs (1.0.2 to be
precise) and am prepared to make the requisite changes based on your
feedback.
Thank you for your time!
Protesilaos
--
Protesilaos Stavrou
protesilaos.com
0001-Update-Modus-themes-1.0.2-backward-incompatible.patch
Description: Text Data
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible),
Protesilaos Stavrou <=
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Basil L. Contovounesios, 2020/12/08
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Stefan Kangas, 2020/12/09
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Protesilaos Stavrou, 2020/12/10
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Stefan Kangas, 2020/12/10
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Protesilaos Stavrou, 2020/12/10
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Juri Linkov, 2020/12/11
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Stefan Kangas, 2020/12/11
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Eli Zaretskii, 2020/12/11
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Stefan Kangas, 2020/12/11
- bug#45068: [PATCH] 28.0.50; Update Modus themes 1.0.2 (backward-incompatible), Christopher Dimech, 2020/12/11