Move emacs into a module

This commit is contained in:
Andreas Zweili 2023-06-09 22:15:58 +02:00
parent c11c4d77f0
commit 972b469c1b
56 changed files with 159 additions and 147 deletions

View File

@ -4,6 +4,7 @@
./programs/alacritty
./programs/ansible
./programs/calibre
./programs/emacs
./services/dunst
./services/grobi
];

View File

@ -0,0 +1,151 @@
{ config, lib, pkgs, ... }:
let
cfg = config.programs.az-emacs;
in
{
options = {
programs.az-emacs.enable = lib.mkEnableOption "Enable emacs.";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
fd
multimarkdown
nil # Nix language server
pandoc
python310
python310Packages.pip
python310Packages.python-lsp-server
ripgrep
silver-searcher
];
programs.emacs = {
enable = true;
extraConfig = ''
(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")
'';
extraPackages = epkgs: with pkgs;[
epkgs.ag
epkgs.amx
epkgs.annotate
epkgs.avy
epkgs.bind-key
epkgs.cfrs
epkgs.citeproc
epkgs.company
epkgs.company-restclient
epkgs.company-web
epkgs.counsel
epkgs.counsel-tramp
epkgs.dap-mode
epkgs.dired-hide-dotfiles
epkgs.direnv
epkgs.discover-my-major
epkgs.elisp-refs
epkgs.epl
epkgs.evil
epkgs.evil-collection
epkgs.evil-surround
epkgs.f
epkgs.flycheck
epkgs.format-all
epkgs.general
epkgs.helpful
epkgs.highlight-indent-guides
epkgs.ht
epkgs.htmlize
epkgs.hydra
epkgs.hyperbole
epkgs.know-your-http-well
epkgs.languagetool
epkgs.lsp-ivy
epkgs.lsp-mode
epkgs.lsp-treemacs
epkgs.lsp-ui
epkgs.lv
epkgs.magit
epkgs.makey
epkgs.markdown-mode
epkgs.move-text
epkgs.nix-mode
epkgs.olivetti
epkgs.parsebib
epkgs.pdf-tools
epkgs.perspective
epkgs.pfuture
epkgs.pkg-info
epkgs.posframe
epkgs.powershell
epkgs.projectile
epkgs.projectile-ripgrep
epkgs.python-mode
epkgs.python-pytest
epkgs.queue
epkgs.rainbow-delimiters
epkgs.restclient
epkgs.ripgrep
epkgs.smooth-scrolling
epkgs.solarized-theme
epkgs.string-inflection
epkgs.swiper
epkgs.system-packages
epkgs.treemacs
epkgs.treemacs-evil
epkgs.use-package
epkgs.use-package-ensure-system-package
epkgs.vterm
epkgs.web-completion-data
epkgs.web-mode
epkgs.wgrep
epkgs.which-key
epkgs.xclip
epkgs.yaml-mode
epkgs.yasnippet-snippets
epkgs.zetteldeft
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
];
};
home.file.".emacs.d/init.el".source = ./emacs.d/init.el;
home.file.".emacs.d/snippets".source = ./emacs.d/snippets;
services.emacs = {
enable = true;
client.enable = true;
};
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)\]'
'';
};
};
}

View File

@ -2,7 +2,6 @@
{
imports = [
"${inputs.self}/home-manager/modules"
"${inputs.self}/home-manager/software/emacs"
"${inputs.self}/home-manager/software/espanso"
"${inputs.self}/home-manager/software/evince"
"${inputs.self}/home-manager/software/fzf"
@ -47,6 +46,7 @@
programs = {
az-calibre.enable = true;
az-czkawka.enable = true;
az-emacs.enable = true;
bash = {
enable = true;
bashrcExtra = ''

View File

@ -2,7 +2,6 @@
{
imports = [
"${inputs.self}/home-manager/modules"
"${inputs.self}/home-manager/software/emacs"
"${inputs.self}/home-manager/software/fzf"
"${inputs.self}/home-manager/software/git"
"${inputs.self}/home-manager/software/ssh"
@ -21,8 +20,11 @@
programs.git.userEmail = "andreas@zweili.ch";
programs.bash = {
enable = true;
programs = {
az-emacs.enable = true;
bash = {
enable = true;
};
};
}

View File

@ -2,7 +2,6 @@
{
imports = [
"${inputs.self}/home-manager/modules"
"${inputs.self}/home-manager/software/emacs"
"${inputs.self}/home-manager/software/fzf"
"${inputs.self}/home-manager/software/git"
"${inputs.self}/home-manager/software/starship"
@ -46,6 +45,7 @@
programs = {
az-ansible.enable = true;
az-emacs.enable = true;
bash = {
enable = true;
bashrcExtra = ''

View File

@ -1,142 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
fd
multimarkdown
nil # Nix language server
pandoc
python310
python310Packages.pip
python310Packages.python-lsp-server
ripgrep
silver-searcher
];
programs.emacs = {
enable = true;
extraConfig = ''
(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")
'';
extraPackages = epkgs: with pkgs;[
epkgs.ag
epkgs.amx
epkgs.annotate
epkgs.avy
epkgs.bind-key
epkgs.cfrs
epkgs.citeproc
epkgs.company
epkgs.company-restclient
epkgs.company-web
epkgs.counsel
epkgs.counsel-tramp
epkgs.dap-mode
epkgs.dired-hide-dotfiles
epkgs.direnv
epkgs.discover-my-major
epkgs.elisp-refs
epkgs.epl
epkgs.evil
epkgs.evil-collection
epkgs.evil-surround
epkgs.f
epkgs.flycheck
epkgs.format-all
epkgs.general
epkgs.helpful
epkgs.highlight-indent-guides
epkgs.ht
epkgs.htmlize
epkgs.hydra
epkgs.hyperbole
epkgs.know-your-http-well
epkgs.languagetool
epkgs.lsp-ivy
epkgs.lsp-mode
epkgs.lsp-treemacs
epkgs.lsp-ui
epkgs.lv
epkgs.magit
epkgs.makey
epkgs.markdown-mode
epkgs.move-text
epkgs.nix-mode
epkgs.olivetti
epkgs.parsebib
epkgs.pdf-tools
epkgs.perspective
epkgs.pfuture
epkgs.pkg-info
epkgs.posframe
epkgs.powershell
epkgs.projectile
epkgs.projectile-ripgrep
epkgs.python-mode
epkgs.python-pytest
epkgs.queue
epkgs.rainbow-delimiters
epkgs.restclient
epkgs.ripgrep
epkgs.smooth-scrolling
epkgs.solarized-theme
epkgs.string-inflection
epkgs.swiper
epkgs.system-packages
epkgs.treemacs
epkgs.treemacs-evil
epkgs.use-package
epkgs.use-package-ensure-system-package
epkgs.vterm
epkgs.web-completion-data
epkgs.web-mode
epkgs.wgrep
epkgs.which-key
epkgs.xclip
epkgs.yaml-mode
epkgs.yasnippet-snippets
epkgs.zetteldeft
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
];
};
home.file.".emacs.d/init.el".source = ./emacs.d/init.el;
home.file.".emacs.d/snippets".source = ./emacs.d/snippets;
services.emacs = {
enable = true;
client.enable = true;
};
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)\]'
'';
};
}