{
  config,
  pkgs,
  ...
}: {
  home.file.".emacs".text = ''
    (require 'package)

    ;; optional. makes unpure packages archives unavailable
    (setq package-archives nil)

    (setq package-enable-at-startup nil)
    (package-initialize)

    (require 'xterm-color)
    (progn (add-hook 'comint-preoutput-filter-functions 'xterm-color-filter)
       (setq comint-output-filter-functions (remove 'ansi-color-process-output comint-output-filter-functions)))

    (set-terminal-parameter nil 'background-mode 'dark)
    (xterm-mouse-mode 1)
    (setq custom-tab-width 2)
    (setq indent-tabs-mode nil)

    (setq evil-want-integration t)
    (setq evil-want-keybinding nil)
    (require 'evil)
    (when (require 'evil-collection nil t)
      (evil-collection-init))
    (evil-mode 1)

    (require 'helm)
    (require 'helm-config)

    (require 'color-theme-sanityinc-solarized)
  '';
  programs.emacs = {
    enable = true;
    package = import ./emacs.nix {inherit pkgs;};
  };
}