{ config, lib, pkgs, ...}:

{
  home.file.".emacs.d/early-init.el" = {
    enable = true;
    text = ''
    (setq package-enable-at-startup nil)
    (setq package-install-upgrade-built-in t)
    '';
  };
  home.file.".emacs.d/init.el" = {
    enable = true;
    text = builtins.readFile ./init.el;
  };
  home.file.".emacs.d/templates" = {
    enable = true;
    text = builtins.readFile ./templates;
  };
  home.file.".emacs.d/lib/smartparens-emacs-lisp.el" = {
    enable = true;
    text = builtins.readFile ./lib/smartparens-emacs-lisp.el;
  };
  home.file.".emacs.d/lib/smartparens-scheme.el" = {
    enable = true;
    text = builtins.readFile ./lib/smartparens-scheme.el;
  };
  home.file.".emacs.d/lib/smartparens-clojure.el" = {
    enable = true;
    text = builtins.readFile ./lib/smartparens-clojure.el;
  };
  programs.emacs = {
    enable = true;
    package = pkgs.emacs29-pgtk;
    extraConfig = builtins.readFile ./init.el;
  };
}