Move emacs into a module
This commit is contained in:
parent
c11c4d77f0
commit
972b469c1b
|
@ -4,6 +4,7 @@
|
|||
./programs/alacritty
|
||||
./programs/ansible
|
||||
./programs/calibre
|
||||
./programs/emacs
|
||||
./services/dunst
|
||||
./services/grobi
|
||||
];
|
||||
|
|
|
@ -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)\]'
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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 = ''
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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)\]'
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue