2021-03-30 14:05:31 +03:00
|
|
|
{ pkgs, config, lib, inputs, ... }:
|
|
|
|
let
|
|
|
|
emacs = pkgs.emacsPgtk;
|
2021-04-22 18:12:54 +03:00
|
|
|
in {
|
2021-02-08 23:29:43 +03:00
|
|
|
# secrets-envsubst.emacs = {
|
2021-04-22 18:12:54 +03:00
|
|
|
# owner = "balsoft:users";
|
|
|
|
# directory = "emacs";
|
2021-02-08 23:29:43 +03:00
|
|
|
# };
|
2021-04-22 18:12:54 +03:00
|
|
|
|
2021-06-10 18:58:51 +03:00
|
|
|
persist.state.homeFiles =
|
|
|
|
[ ".config/emacs/custom" ".config/emacs/eshell/history" ];
|
2021-06-08 19:35:21 +03:00
|
|
|
|
2021-06-14 11:57:39 +03:00
|
|
|
defaultApplications.editor = {
|
2021-07-27 14:23:46 +03:00
|
|
|
cmd = toString (pkgs.writeShellScript "emacsclient-newwindow" ''
|
|
|
|
${config.home-manager.users.balsoft.programs.emacs.finalPackage}/bin/emacsclient -c "$@"
|
|
|
|
'');
|
2021-06-14 11:57:39 +03:00
|
|
|
desktop = "emacsclient";
|
|
|
|
};
|
|
|
|
|
2020-02-17 16:00:59 +03:00
|
|
|
home-manager.users.balsoft = {
|
|
|
|
programs.emacs = {
|
|
|
|
enable = true;
|
2021-03-30 14:05:31 +03:00
|
|
|
package = emacs;
|
2020-02-17 16:00:59 +03:00
|
|
|
extraPackages = epkgs:
|
|
|
|
with epkgs; [
|
|
|
|
use-package
|
|
|
|
nix-mode
|
|
|
|
haskell-mode
|
|
|
|
exec-path-from-shell
|
|
|
|
counsel
|
|
|
|
projectile
|
|
|
|
which-key
|
|
|
|
markdown-mode
|
|
|
|
frames-only-mode
|
|
|
|
company
|
|
|
|
rainbow-delimiters
|
|
|
|
diff-hl
|
|
|
|
mode-line-bell
|
|
|
|
flycheck
|
|
|
|
flycheck-pkg-config
|
|
|
|
auto-indent-mode
|
|
|
|
company-ghci
|
|
|
|
expand-region
|
|
|
|
ivy
|
|
|
|
smex
|
|
|
|
quickrun
|
|
|
|
counsel-tramp
|
|
|
|
ix
|
|
|
|
magit
|
|
|
|
elixir-mode
|
2020-02-27 12:45:30 +03:00
|
|
|
company-box
|
2020-03-17 21:45:17 +03:00
|
|
|
ws-butler
|
2020-04-15 15:54:26 +03:00
|
|
|
yaml-mode
|
|
|
|
gitlab-ci-mode
|
|
|
|
gitlab-ci-mode-flycheck
|
|
|
|
gitlab
|
2020-07-16 16:46:49 +03:00
|
|
|
undo-tree
|
2020-09-14 01:36:22 +03:00
|
|
|
rust-mode
|
2020-10-18 13:28:27 +03:00
|
|
|
edit-indirect
|
2020-12-25 20:13:04 +03:00
|
|
|
idris-mode
|
2020-12-04 13:20:51 +03:00
|
|
|
lsp-mode
|
2021-02-28 19:06:01 +03:00
|
|
|
envrc
|
2021-03-01 13:04:17 +03:00
|
|
|
lsp-haskell
|
2021-05-08 01:22:06 +03:00
|
|
|
treemacs
|
|
|
|
lsp-treemacs
|
|
|
|
treemacs-projectile
|
|
|
|
dap-mode
|
2021-05-18 15:50:49 +03:00
|
|
|
forge
|
2021-05-25 14:04:21 +03:00
|
|
|
crdt
|
2021-06-10 18:58:51 +03:00
|
|
|
base16-theme
|
2021-07-30 13:15:18 +03:00
|
|
|
org-caldav
|
2021-10-29 18:51:45 +03:00
|
|
|
evil
|
2021-11-28 18:07:13 +03:00
|
|
|
tuareg
|
2021-11-30 15:04:22 +03:00
|
|
|
fira-code-mode
|
2021-12-07 14:10:24 +03:00
|
|
|
terraform-mode
|
2022-02-21 23:37:26 +03:00
|
|
|
dhall-mode
|
2020-02-17 16:00:59 +03:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2021-04-22 18:12:54 +03:00
|
|
|
home.packages = [ pkgs.clang ];
|
2020-02-17 16:00:59 +03:00
|
|
|
|
|
|
|
services.emacs.enable = true;
|
|
|
|
|
2021-07-24 01:23:37 +03:00
|
|
|
systemd.user.services.emacs = {
|
|
|
|
Service = {
|
|
|
|
Environment =
|
|
|
|
"PATH=/run/current-system/sw/bin:/etc/profiles/per-user/balsoft/bin";
|
2021-09-23 20:13:38 +03:00
|
|
|
};
|
2021-10-23 19:48:36 +03:00
|
|
|
Unit.After = [ "sway-session.target" ];
|
2021-09-23 20:13:38 +03:00
|
|
|
Install = {
|
|
|
|
WantedBy = lib.mkForce [ "sway-session.target" ];
|
2021-07-24 01:23:37 +03:00
|
|
|
};
|
|
|
|
};
|
2020-02-17 16:00:59 +03:00
|
|
|
|
2021-06-10 18:58:51 +03:00
|
|
|
xdg.configFile."emacs/init.el".source = pkgs.substituteAll ({
|
|
|
|
src = ./init.el;
|
|
|
|
font = with config.themes.fonts; "${mono.family} ${toString mono.size}";
|
2021-12-23 21:23:03 +03:00
|
|
|
} // pkgs.my-lib.thmHash config.themes.colors);
|
2020-02-17 16:00:59 +03:00
|
|
|
};
|
|
|
|
}
|