Add emacs module (#62)

Closes #55
This commit is contained in:
Carl Richard Theodor Schneider 2023-03-16 10:21:01 +01:00 committed by GitHub
parent 679a806768
commit 9afac8a0a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

68
modules/emacs/hm.nix Normal file
View file

@ -0,0 +1,68 @@
{ pkgs, config, lib, ... }:
with config.lib.stylix.colors.withHashtag;
with config.stylix.fonts;
{
options.stylix.targets.emacs.enable =
config.lib.stylix.mkEnableTarget "Emacs" config.programs.emacs.enable;
config = lib.mkIf config.stylix.targets.emacs.enable {
programs.emacs = {
extraPackages = epkgs:
[
(epkgs.trivialBuild {
pname = "base16-stylix-theme";
src = pkgs.writeText "base16-stylix-theme.el" ''
(require 'base16-theme)
(defvar base16-stylix-theme-colors
'(:base00 "${base00}"
:base01 "${base01}"
:base02 "${base02}"
:base03 "${base03}"
:base04 "${base04}"
:base05 "${base05}"
:base06 "${base06}"
:base07 "${base07}"
:base08 "${base08}"
:base09 "${base09}"
:base0A "${base0A}"
:base0B "${base0B}"
:base0C "${base0C}"
:base0D "${base0D}"
:base0E "${base0E}"
:base0F "${base0F}")
"All colors for Base16 stylix are defined here.")
;; Define the theme
(deftheme base16-stylix)
;; Add all the faces to the theme
(base16-theme-define 'base16-stylix base16-stylix-theme-colors)
;; Mark the theme as provided
(provide-theme 'base16-stylix)
;; Add path to theme to theme-path
(add-to-list 'custom-theme-load-path
(file-name-directory
(file-truename load-file-name)))
(provide 'base16-stylix-theme)
'';
packageRequires = [ epkgs.base16-theme ];
})
];
extraConfig = ''
;; ---- Generated by stylix ----
(require 'base16-stylix-theme)
(load-theme 'base16-stylix t)
;; Set font
(set-face-attribute 'default t :font "${monospace.name}" )
;; -----------------------------
'';
};
};
}