nixos/home-manager/software/emacs/default.nix

135 lines
3.4 KiB
Nix
Raw Normal View History

{ unstable }: { pkgs, ... }:
2022-03-03 19:30:18 +01:00
{
2022-04-17 14:12:38 +02:00
home.packages = with pkgs; [
2023-01-23 13:44:35 +01:00
fd
multimarkdown
2022-04-17 14:12:38 +02:00
pandoc
2023-03-21 10:12:10 +01:00
python310
2023-03-21 08:50:24 +01:00
python310Packages.pip
2022-12-09 21:32:19 +01:00
python310Packages.python-lsp-server
2022-12-30 16:00:25 +01:00
ripgrep
silver-searcher
2022-04-17 14:12:38 +02:00
];
2022-03-03 19:30:18 +01:00
programs.emacs = {
enable = true;
2022-06-07 19:53:31 +02:00
extraConfig = ''
2022-06-07 22:54:26 +02:00
(setq languagetool-java-arguments '("-Dfile.encoding=UTF-8"
"-cp" "${pkgs.languagetool}/share/")
languagetool-java-bin "${pkgs.jdk17_headless}/bin/java"
languagetool-console-command "${pkgs.languagetool}/share/languagetool-commandline.jar"
languagetool-server-command "${pkgs.languagetool}/share/languagetool-server.jar")
2022-06-07 19:53:31 +02:00
'';
2022-03-03 19:30:18 +01:00
extraPackages = epkgs: with pkgs;[
2023-01-18 17:29:27 +01:00
epkgs.ag
2022-04-17 20:45:52 +02:00
epkgs.amx
2023-01-23 16:30:02 +01:00
epkgs.annotate
2022-03-03 19:30:18 +01:00
epkgs.avy
epkgs.bind-key
epkgs.cfrs
epkgs.citeproc
epkgs.company
epkgs.company-restclient
epkgs.company-web
epkgs.counsel
2023-01-16 11:01:51 +01:00
epkgs.counsel-tramp
2022-03-03 19:30:18 +01:00
epkgs.dired-hide-dotfiles
2022-03-03 22:27:46 +01:00
epkgs.direnv
2022-03-03 19:30:18 +01:00
epkgs.discover-my-major
2022-05-26 11:07:41 +02:00
epkgs.eglot
2022-03-03 19:30:18 +01:00
epkgs.elisp-refs
epkgs.elpy
epkgs.epl
epkgs.evil
2022-08-18 20:33:04 +02:00
epkgs.evil-collection
2022-03-03 19:30:18 +01:00
epkgs.evil-surround
epkgs.f
epkgs.flycheck
2022-03-27 13:46:25 +02:00
epkgs.format-all
2022-03-03 19:30:18 +01:00
epkgs.general
epkgs.helpful
epkgs.highlight-indent-guides
epkgs.ht
epkgs.htmlize
epkgs.hydra
epkgs.know-your-http-well
2022-06-07 19:53:31 +02:00
epkgs.languagetool
2022-03-03 19:30:18 +01:00
epkgs.lv
epkgs.magit
epkgs.makey
epkgs.markdown-mode
epkgs.move-text
2022-09-03 08:47:07 +02:00
epkgs.multi-vterm
2022-03-03 19:30:18 +01:00
epkgs.nix-mode
epkgs.parsebib
epkgs.pdf-tools
2022-09-03 13:54:21 +02:00
epkgs.perspective
2022-03-03 19:30:18 +01:00
epkgs.pfuture
epkgs.pkg-info
epkgs.posframe
epkgs.powershell
epkgs.projectile
2023-01-18 17:29:27 +01:00
epkgs.projectile-ripgrep
2022-03-03 19:30:18 +01:00
epkgs.python-mode
epkgs.queue
epkgs.rainbow-delimiters
epkgs.restclient
2023-01-18 17:29:27 +01:00
epkgs.ripgrep
2022-03-03 19:30:18 +01:00
epkgs.smooth-scrolling
epkgs.solarized-theme
epkgs.string-inflection
epkgs.swiper
epkgs.system-packages
epkgs.use-package
epkgs.use-package-ensure-system-package
2022-08-31 19:07:38 +02:00
epkgs.vterm
2022-03-03 19:30:18 +01:00
epkgs.web-completion-data
epkgs.web-mode
2022-07-05 10:12:33 +02:00
epkgs.wgrep
2022-03-03 19:30:18 +01:00
epkgs.which-key
2022-12-09 17:17:07 +01:00
epkgs.xclip
2022-03-03 19:30:18 +01:00
epkgs.yaml-mode
epkgs.yasnippet-snippets
epkgs.zetteldeft
2023-01-23 13:44:35 +01:00
languagetool
mu # needed for mailing
python310Packages.autopep8
python310Packages.black
python310Packages.flake8
python310Packages.jedi
python310Packages.pip
python310Packages.yapf
rufo # formatter for Ruby
xclip # X11 clipboard from terminal
2022-03-03 19:30:18 +01:00
];
};
2022-03-03 21:35:36 +01:00
home.file.".emacs.d/init.el".source = ./emacs.d/init.el;
2022-03-03 19:30:18 +01:00
home.file.".emacs.d/snippets".source = ./emacs.d/snippets;
services.emacs = {
enable = true;
client.enable = true;
};
2022-09-02 22:53:16 +02:00
programs.bash = {
enable = true;
bashrcExtra = ''
vterm_printf(){
if [ -n "$TMUX" ] && ([ "\$\{TERM%%-*}" = "tmux" ] || [ "\$\{TERM%%-*}" = "screen" ] ); then
# Tell tmux to pass the escape sequences through
printf "\ePtmux;\e\e]%s\007\e\\" "$1"
elif [ "\$\{TERM%%-*}" = "screen" ]; then
# GNU screen (screen, screen-256color, screen-256color-bce)
printf "\eP\e]%s\007\e\\" "$1"
else
printf "\e]%s\e\\" "$1"
fi
}
vterm_prompt_end(){
vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
}
PS1=$PS1'\[$(vterm_prompt_end)\]'
'';
};
2022-03-03 19:30:18 +01:00
}