{ pkgs, config, lib, inputs, ... }: let emacs = pkgs.emacsPgtk; crdt = (pkgs.emacsPackagesNgFor emacs).trivialBuild { pname = "crdt"; version = "0.0.0"; phases = [ "buildPhase" "installPhase" ]; buildPhase = '' cp ${inputs.crdt}/*.el . ''; }; in { # secrets-envsubst.emacs = { # owner = "balsoft:users"; # directory = "emacs"; # }; home-manager.users.balsoft = { programs.emacs = { enable = true; package = emacs; extraPackages = epkgs: with epkgs; [ use-package nix-mode haskell-mode wakib-keys exec-path-from-shell counsel projectile which-key markdown-mode frames-only-mode company rainbow-delimiters diff-hl mode-line-bell hasklig-mode flycheck flycheck-pkg-config auto-indent-mode clipmon org-gcal company-ghci company-tabnine expand-region ivy smex quickrun counsel-tramp ix magit xah-fly-keys arduino-mode elixir-mode company-box ws-butler yaml-mode gitlab-ci-mode gitlab-ci-mode-flycheck gitlab undo-tree rust-mode go-mode edit-indirect idris-mode lsp-mode org-caldav envrc lsp-haskell crdt ]; }; home.packages = [ pkgs.clang ]; services.emacs.enable = true; systemd.user.services.emacs.Service.Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/balsoft/bin"; home.file.".emacs.d/init.el".source = ./init.el; home.activation.emacs = { before = [ ]; after = [ ]; data = "$DRY_RUN_CMD mkdir -p ~/.emacs.d/autosave"; }; }; }