59 lines
1.3 KiB
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
|
|
'';
|
|
}
|