System/home-manager/common/programs/emacs.nix

65 lines
1.7 KiB
Nix
Raw Normal View History

2022-09-04 04:19:50 -04:00
{ config, lib, pkgs, inputs, ... }:
{
config = lib.mkMerge [
(lib.mkIf config.nathan.programs.emacs.enable (let
myAspell = pkgs.aspellWithDicts (d: [ d.en d.en-science d.en-computers ]);
in {
# Dependencies of my emacs environment
home.packages = with pkgs; [
# For markdown rendering
python39Packages.grip
# For graph generation
graphviz
sqlite
2022-10-17 16:57:10 -04:00
plantuml
# For latex editing
texlive.combined.scheme-medium
# For notifications
libnotify
# For spelling
myAspell
# For nix
rnix-lsp
manix
nix-doc
nixfmt
# For email
2022-11-04 13:52:42 -04:00
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.mu
# Desktop file for org-protocol
(makeDesktopItem {
name = "org-protocol";
exec = "emacsclient %u";
comment = "Org protocol";
desktopName = "org-protocol";
type = "Application";
mimeTypes = [ "x-scheme-handler/org-protocol" ];
})
2022-10-01 11:05:10 -04:00
];
programs.emacs = {
enable = true;
package = config.nathan.programs.emacs.package;
2022-11-04 13:52:42 -04:00
extraPackages = epkgs: [
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.mu
epkgs.vterm
2022-11-22 22:45:00 -05:00
epkgs.pdf-tools
2023-05-11 10:38:12 -04:00
epkgs.emacsql
epkgs.emacsql-sqlite
2022-11-04 13:52:42 -04:00
];
};
2023-05-06 21:00:46 -04:00
# Set emacs as the editor
home.sessionVariables = {
EDITOR = "emacsclient -c";
VISUAL = "emacsclient -c";
};
}))
(lib.mkIf (config.nathan.programs.emacs.enable && pkgs.stdenv.isLinux) {
home.packages = with pkgs;
[
# For flash cards
anki
];
})
];
2022-09-04 04:19:50 -04:00
}