This document tracks the most important changes of this package throughout time (in descending chronological order) and in between releases.


  • Remove unnecessary metadata from darkman-test.el file
  • Define a new function darkman-set-theme
  • Add support links to the manual
  • Specify TEXINFO_DIR_CATEGORY in the manual
  • Point links in documentation to the new domain


  • Remove default condition from darkman--lookup-theme function
  • Use consistent docstrings
  • Lay the groundwork for unit testing using the new pipeline


  • Agustín Cisneros: Keep track of the active theme as a workaround to ignoring unwanted/duplicate signals (#16)


  • Go back to using signals (#14)

    #11 introduced a change that unintentionally misused a facility from the D-Bus protocol to catch specific method calls (but is reserved for debugging D-Bus services) emitted by Darkman; this was later caught by Agustín Cisneros in #13.

  • Discard unnecessary call to remove-hook when the mode is enabled
  • Site-specific configuration files are now loaded via load-file instead of require
  • Jonas Bernoulli: Add .nosearch file in site directory to avoid MELPA from indexing the directory


The changes in this tag were made following our submission for inclusion into MELPA.

  • Chris Rayner: Do not use format when parameter is already an f-string
  • Nicolas Vollmer: Use meaningful and conventional function names and docstrings
  • Nicolas Vollmer: Avoid the fragile called-interactively-p function
  • Nicolas Vollmer: Prefer an if form in darkman-set-mode
  • Nicolas Vollmer: Combine when and let* forms into when-let* in darkman--event-handler
  • Nicolas Vollmer: Do not make hooks on behalf of the user server-after-make-frame-hook as it may be considered impolite


  • Prefer if form in darkman-get function
  • Fix assignment to free (now obsolete) variable darkman--dbus-signal


  • Protect the invocation of darkman-register-monitor
  • Address linting errors to prepare for the submission of the package to MELPA


  • Agustín Cisneros: Fix a bug that caused load-theme to be called twice when ModeChanged is signaled (#11)
  • Write a multi-format manual replacing the single-format handbook
  • Simplify the README file
  • Integrate engrave-faces in the documentation
  • Add the first unit test


  • Agustín Cisneros: Defer loading untrusted themes until the daemon is fully initialized
  • Fix opposing behavior of darkman-switch-themes-silently
  • General improvements and more helpful additions to the documentation and the website which now supports syntax highlighting


  • Refactor website structure
  • Rename darkman--get-assoc-theme function to darkman--lookup-theme
  • Add a new variable called darkman-switch-themes-silently which determines whether an entry is logged to the *Messages* buffer when the mode is toggled
  • General improvements to documentation


  • Conform to Emacs Lisp code conventions
  • Move to an ISC license
  • Aleksei Fedotov: Switch to the appropriate theme when darkman-mode is enabled (#5)
  • Aleksei Fedotov: Implement choosing the values of darkman-themes from the customize menu (#4)
  • Define a customize group
  • Aleksei Fedotov: Lazy-loaded functions (#1)
  • Avoid loading themes twice when darkman-toggle is called
  • Create a presentation website


  • Release the source code under the MIT licence