boxen/home/profiles/emacs/default.nix

59 lines
1.3 KiB
Nix

{ config, pkgs, lib, ... }:
{
programs.emacs = {
enable = true;
package = pkgs.emacsGcc;
};
home.packages = with pkgs;
let py = python38Packages;
in [
editorconfig-core-c
cask
black
mypy
py.python-language-server
py.pyls-isort
py.pyls-black
py.pyls-mypy
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;
};
programs.firefox.profiles.default.settings = {
"network.protocol-handler.expose.org-protocol" = false;
};
programs.zsh.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";
};
services.gpg-agent.extraConfig = ''
allow-emacs-pinentry
'';
}