50 lines
1.3 KiB
Nix
50 lines
1.3 KiB
Nix
{ config, lib, pkgs, ... }: {
|
|
options.my.emacs.enable = lib.mkEnableOption "enable";
|
|
config = lib.mkIf config.my.emacs.enable {
|
|
home-manager.users.jawz = {
|
|
programs.bash.shellAliases = {
|
|
edit = "emacsclient -t";
|
|
e = "edit";
|
|
};
|
|
services.lorri.enable = true;
|
|
};
|
|
users.users.jawz.packages = (with pkgs; ([
|
|
fd # modern find, faster searches
|
|
fzf # fuzzy finder! super cool and useful
|
|
ripgrep # modern grep
|
|
tree-sitter # code parsing based on symbols and shit, I do not get it
|
|
graphviz # graphs
|
|
tetex # export pdf
|
|
languagetool # proofreader for English
|
|
|
|
# doom everywhere
|
|
xorg.xwininfo
|
|
xdotool
|
|
xclip
|
|
|
|
# lsps
|
|
yaml-language-server
|
|
markdownlint-cli
|
|
])) ++ (with pkgs.nodePackages; [
|
|
vscode-json-languageserver
|
|
# linters
|
|
prettier
|
|
]);
|
|
services.emacs = {
|
|
enable = true;
|
|
package = with pkgs;
|
|
((emacsPackagesFor emacs-gtk).emacsWithPackages
|
|
(epkgs: with epkgs; ([ vterm ])));
|
|
defaultEditor = true;
|
|
};
|
|
home-manager.users.jawz.programs.bash.initExtra = ''
|
|
emacs-sqlite-fix () {
|
|
nix-shell -p cmake sqlite --command "doom sync &&
|
|
sc restart emacs &&
|
|
emacsclient -e '(org-roam-db-sync)'" &&
|
|
doom sync
|
|
}
|
|
'';
|
|
};
|
|
}
|