DarkPlum is a dark purple theme, originally based on the Rebecca theme.
- Tweaked some colors to provide more consistency and better contrast
- Added support for lsp-mode colors
- Added support for line number colors
- Improved general support for colors like
warning
orsuccess
- Rainbow delimiters now have more colors
If you manage your emacs configuration through home manager then you can enable darkplum with an overlay. For example if you are using home-manager:
{pkgs, ...}:
{
programs.emacs = {
enable = true;
overrides = self: super: rec {
darkplum-theme = self.melpaBuild rec {
name = "darkplum-theme";
pname = "darkplum-theme";
version = "0.0.2";
src = pkgs.fetchFromGitHub {
owner = "rebeccaskinner";
repo = "darkplum-theme";
rev = "7a93038ede49c1c30e540d510d54ef83e00c2bce";
sha256 = "0rsfvx8nsq9sbkdzs4mjqfwsqdwg5zz9y4wyqq05pamdhchmy2al";
};
recipe = pkgs.writeText "recipe" ''
(darkplum-theme
:repo "rebeccaskinner/darkplum-theme"
:fetcher github)
'';
installPhase = ''
runHook preInstall
archive="$NIX_BUILD_TOP/source/$ename.el"
if [ ! -f "$archive" ]; then
echo "archive not found ($archive)"
archive="$NIX_BUILD_TOP/packages/$ename-$version.tar"
fi
emacs --batch -Q \
-l "$elpa2nix" \
-f elpa2nix-install-package \
"$archive" "$out/share/emacs/site-lisp/elpa"
runHook postInstall
'';
meta = {
description = "A dark purple theme for emacs";
longDescription = "A dark purple theme for emacs";
};
license = pkgs.lib.licenses.gpl3Plus.spdxId;
};
};
extraPackages = epkgs: with epkgs; [
darkplum-theme
# other packages go here
];
};
home.file.".emacs.d" = {
source = ./emacs.d;
recursive = true;
};
}
If you wish to update darkplum to the latest version, you can get the most
recent commit from github or from the repo by running git log
. Update the rev
field of the overlay to the commit you wish to use. You can calculate the
sha256
field using nix-prefetch-url
, for example:
nix-prefetch-url --unpack "https://github.com/rebeccaskinner/darkplum-theme/archive/<rev>.tar.gz"
If you aren't using nix, you can install the theme manually. Clone this repo and
copy darkplum-theme.el
to your emacs configuration directory (generally
${HOME}/.emacs.d/
).
If you are not using the emacs deamon you can enable the theme by adding the
line below to your configuration file (${HOME}/.emacs.d/init.el
):
(load-theme 'darkplum t)
Restart emacs and the theme should be loaded.
If you are using emacs clients with a single emacs deamon service, you might find that the theme does not load correctly when loaded the simple way. You can work around this by adding a frame hook to load the theme after creating a new frame attached to the deamon. Add the following to your emacs configuration file:
(defun configure-look-and-feel ()
"Run some stuff after init, like setting a theme and disabling scrollbars."
;; Setup theme
(load-theme 'darkplum t)
)
(defun deamon-look-and-feel (frame)
"Wrapper to run look-and-feel per FRAME with emacsclient."
(select-frame frame)
(configure-look-and-feel)
)
(if (daemonp)
(add-hook 'after-make-frame-functions #'deamon-look-and-feel)
(configure-look-and-feel)
)
This theme is still unfinished, and has does not yet support many editing modes. It has also not been well tested in non-graphical environments.