Git Product home page Git Product logo

Comments (3)

mrzor avatar mrzor commented on August 27, 2024

Because Emacs themes can run arbitrary code, I see no major obstacles to wrapping the existing nano theme in a file with (deftheme).

A concern would be to preserve the ability to have the theme code split between several files, as opposed to a single big one. I took a quick glance at the Custom Themes manual section, I have a feeling custom-load-path and the usual load-path have some un(?)documented intertwining.

Right now, faces are defined programmatically in nano-faces.el and derived from a set of base colors nano-base-colors.el. The
nano "faces" are then applies to a whole range of other faces, in nano-theme.el.

I proposed #18 to move the face derivation code into custom get/set functions, but I wasn't able to formulate convincing arguments to answer Nicolas' reticence. I don't think it's actually blocking the introduction of a (deftheme).

Now, if your goal is simply to change the base colors, feel free to load any theme before you load nano.el, and nano should pick them up.

from nano-emacs.

tefkah avatar tefkah commented on August 27, 2024

I solved this like this

(defvar nano-theme-light-var t)
(defun nano-change-theme-dark ()
  (interactive)
  (nano-theme-set-dark)
  (nano-faces)
  (nano-theme))

(defun nano-change-theme-light ()
  (interactive)
  (nano-theme-set-light)
  (nano-faces)
  (nano-theme))

(defun nano-change-theme ()
  (interactive)
  (if nano-theme-light-var (nano-change-theme-dark) (nano-change-theme-light))
  (setq nano-theme-light-var (not nano-theme-light-var)))

from nano-emacs.

rougier avatar rougier commented on August 27, 2024

Actually, you could even rename your nano-change-theme into nano-toggle-theme. Could you make a PR?

from nano-emacs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.