GNU bug report logs - #44145
27.1; [FR] Tie customize-theme to currently active theme by default

Previous Next

Package: emacs;

Reported by: Mikael Puhakka <mike <at> fwwm.us>

Date: Thu, 22 Oct 2020 16:39:02 UTC

Severity: wishlist

Found in version 27.1

To reply to this bug, email your comments to 44145 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#44145; Package emacs. (Thu, 22 Oct 2020 16:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mikael Puhakka <mike <at> fwwm.us>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 22 Oct 2020 16:39:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mikael Puhakka <mike <at> fwwm.us>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.1; [FR] Tie customize-theme to currently active theme by default
Date: Thu, 22 Oct 2020 19:27:29 +0300
Hello.

This is a feature request someone suggested me to make.

I am aware there is a good facility to interactively customize faces
(`M-x customize-face`) and on the other hand there's a lower-level
function `custom-theme-set-faces` which, I understand, can be used to
customize faces per theme.

It is very often that a custom face works for one enabled theme but if
one loads another, the style can clash.

I propose that `customize-face` would default to customizing faces that
will be tied to the currently active (or topmost on the stack) theme.

Many have light and dark themes that are often used and switched daily,
depending on ambient light conditions. Effortlessly customizing and
finetuning each theme would prove a nice way to make casual little
changes without messing other themes.

- Mikael





In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu)
 of 2020-09-08 built on localhost
System Description: Gentoo/Linux

Configured using:
 'configure --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
 --localstatedir=/var/lib --disable-silent-rules
 --docdir=/usr/share/doc/emacs-27.1-r1
 --htmldir=/usr/share/doc/emacs-27.1-r1/html --libdir=/usr/lib64
 --program-suffix=-emacs-27 --includedir=/usr/include/emacs-27
 --infodir=/usr/share/info/emacs-27 --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --without-compress-install --without-hesiod --without-pop
 --with-dumping=pdumper --with-file-notification=inotify --enable-acl
 --without-dbus --without-modules --without-gameuser --with-libgmp
 --without-gpm --without-json --without-kerberos --without-kerberos5
 --without-lcms2 --with-xml2 --without-mailutils --without-selinux
 --with-gnutls --without-libsystemd --with-threads --with-wide-int
 --with-zlib --with-sound=alsa --with-x --without-ns --without-gconf
 --without-gsettings --without-toolkit-scroll-bars --with-gif
 --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm
 --with-imagemagick --with-xft --without-cairo --without-harfbuzz
 --without-libotf --without-m17n-flt --with-x-toolkit=no
 'CFLAGS=-march=native -O2 -pipe -g -mstackrealign' CPPFLAGS=
 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GLIB NOTIFY INOTIFY ACL
GNUTLS LIBXML2 FREETYPE XFT ZLIB OLDXMENU X11 XDBE XIM THREADS PDUMPER
GMP

Important settings:
  value of $LC_COLLATE: fi_FI.utf8
  value of $LC_CTYPE: en_US.utf8
  value of $LC_MESSAGES: en_US.utf8
  value of $LC_MONETARY: fi_FI.utf8
  value of $LC_NUMERIC: fi_FI.utf8
  value of $LC_TIME: en_US.utf8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  org-indent-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-netsplit-mode: t
  erc-pcomplete-mode: t
  erc-highlight-nicknames-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-log-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  window-number-meta-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  ido-everywhere: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  save-place-mode: t
  global-auto-revert-mode: t
  winner-mode: t
  show-paren-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  unify-8859-on-encoding-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Features:
(shadow sort mail-extr emacsbug smex cal-move calc-alg calc-ext
calc-menu calc calc-loaddefs calc-macs mhtml-mode css-mode smie eww
mm-url url-queue js sgml-mode shr-color color term/rxvt term/xterm xterm
server vc-git diff-mode org-indent ol-eww ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnir gnus-sum url url-proxy url-privacy url-expand url-methods
url-history mailcap shr url-cookie url-domsuf url-util svg xml dom
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range
gnus-win gnus nnheader ol-docview ol-bibtex bibtex ol-bbdb ol-w3m
disp-table diminish progomarks ledger ldg-schedule ldg-xact ldg-texi
ldg-test ldg-state ldg-sort ldg-report ldg-reconcile ldg-post ldg-occur
ldg-mode ldg-init ldg-fonts ldg-exec ldg-context ldg-complete
ldg-commodities esh-arg esh-util ldg-regex rx mu4e desktop frameset
mu4e-org mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-context
mu4e-draft mu4e-actions rfc2368 mu4e-mark mu4e-message flow-fill
mu4e-proc mu4e-utils doc-view jka-compr image-mode exif mu4e-lists
mule-util hl-line mu4e-vars message rmc puny dired dired-loaddefs rfc822
mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs
text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader mu4e-meta erc-services erc-list erc-menu
erc-join erc-ring erc-networks erc-track erc-match erc-netsplit
erc-pcomplete erc-highlight-nicknames erc-button erc-fill erc-stamp
erc-log erc-goodies erc erc-backend erc-compat erc-loaddefs ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table
ox-ascii ox-publish ox org-element avl-tree ob-plantuml ob-python
ob-shell ob-gnuplot ob-ditaa org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities time-date org-version ob-emacs-lisp ob-core
ob-eval org-table ol org-keys org-compat org-macs org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs org-install
mmm-auto mmm-vars mmm-compat js2-mode cc-mode cc-fonts cc-guess cc-menus
cc-styles cc-align cc-cmds cc-engine cc-vars cc-defs imenu hy-mode
slime-fancy slime-indentation slime-cl-indent cl-indent
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime
compile etags fileloop generator xref project arc-mode archive-mode pp
hyperspec tango-dark-theme smtpmail sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils yasnippet page-break-lines helm-config
helm-aliases helm window-number switch-window quail highlight-symbol
fic-mode xclip sdcv-mode noutline outline evil-matchit evil-matchit-sdk
goto-chg evil evil-keybindings evil-integration evil-maps evil-commands
reveal flyspell ispell evil-jumps evil-command-window evil-types
evil-search evil-ex shell pcomplete comint ansi-color evil-macros
evil-repeat evil-states evil-core advice evil-common windmove thingatpt
rect evil-digraphs evil-vars ido undo-tree derived easy-mmode cl-extra
help-mode edmacro kmacro diff cl saveplace autorevert filenotify winner
ring cus-edit cus-start cus-load wid-edit paren hi-lock finder-inf
site-gentoo tex-site rainbow-mode-autoloads slime-autoloads info package
easymenu browse-url url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads inotify
dynamic-setting font-render-setting x multi-tty make-network-process
emacs)

Memory information:
((conses 16 815944 58668)
 (symbols 48 55241 1)
 (strings 32 200062 7638)
 (string-bytes 1 6018370)
 (vectors 16 75463)
 (vector-slots 8 1657678 173816)
 (floats 8 501 1122)
 (intervals 56 25089 3523)
 (buffers 1000 27))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44145; Package emacs. (Tue, 07 Jun 2022 10:10:01 GMT) Full text and rfc822 format available.

Message #8 received at 44145 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Mikael Puhakka <mike <at> fwwm.us>
Cc: 44145 <at> debbugs.gnu.org
Subject: Re: bug#44145: 27.1; [FR] Tie customize-theme to currently active
 theme by default
Date: Tue, 07 Jun 2022 12:09:02 +0200
Mikael Puhakka <mike <at> fwwm.us> writes:

> I am aware there is a good facility to interactively customize faces
> (`M-x customize-face`) and on the other hand there's a lower-level
> function `custom-theme-set-faces` which, I understand, can be used to
> customize faces per theme.
>
> It is very often that a custom face works for one enabled theme but if
> one loads another, the style can clash.
>
> I propose that `customize-face` would default to customizing faces that
> will be tied to the currently active (or topmost on the stack) theme.
>
> Many have light and dark themes that are often used and switched daily,
> depending on ambient light conditions. Effortlessly customizing and
> finetuning each theme would prove a nice way to make casual little
> changes without messing other themes.

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I think that most people that customise a face want that face to be
exactly that way, and not tied to a theme, but I can see that it'd be
useful to be able to create a kind of "child theme" via Customize --
perhaps as a separate command.

I'm not sure how that would be most easily be implemented -- it'd be a
set of faces that should only be activated after a theme has been
activated, or something.  Has anybody done any work in this direction,
by any chance?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




This bug report was last modified 2 years and 203 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.