boxen/home/profiles/emacs/default.nix

62 lines
1.4 KiB
Nix

{ config, pkgs, lib, ... }:
let
shellAliases = {
e = "emacsclient -t"; # Terminal
ew = "emacsclient -c"; # New window (and wait)
en = "emacsclient -nc"; # New window (and return immediately)
calc = "emacs -f full-calc -nw -q"; # Quick fullscreen calculator
doom = "~/.emacs.d/bin/doom";
};
in {
programs.emacs = {
enable = true;
package = pkgs.emacsPgtkGcc;
};
home.packages = with pkgs;
let py = python3Packages;
in [
editorconfig-core-c
cask
black
mypy
pyright
haskell-language-server
rust-analyzer
texlab
(pkgs.makeDesktopItem {
name = "org-protocol";
desktopName = "Emacs org-protocol handler";
exec = "emacsclient %u";
terminal = "false";
categories = "System;";
mimeType = "x-scheme-handler/org-protocol;";
})
];
home.file = {
".doom.d" = {
source = ./doom.d;
recursive = true;
};
".doom.d/snippets".source = ./snippets;
".doom.d/nix.el".text = ''
(add-to-list 'load-path "${pkgs.mu}/share/emacs/site-lisp/mu4e")
'';
};
programs.firefox.profiles.default.settings = {
"network.protocol-handler.expose.org-protocol" = false;
};
programs.zsh = { inherit shellAliases; };
programs.xonsh = { inherit shellAliases; };
services.gpg-agent.extraConfig = ''
allow-emacs-pinentry
'';
}