2022-06-23 02:57:41 -04:00
|
|
|
{ config, lib, pkgs, inputs, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
imports = [ inputs.nix-doom-emacs.hmModule ];
|
|
|
|
|
|
|
|
config = lib.mkIf config.nathan.programs.emacs.enable {
|
|
|
|
# Dependencies of my emacs environment
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
# For markdown rendering
|
|
|
|
python39Packages.grip
|
|
|
|
# For graph generation
|
|
|
|
graphviz
|
|
|
|
sqlite
|
|
|
|
# For latex editing
|
|
|
|
texlive.combined.scheme-medium
|
2022-07-05 01:07:47 -04:00
|
|
|
# For notifications
|
|
|
|
libnotify
|
|
|
|
# For flash cards
|
|
|
|
anki
|
2022-09-02 19:18:37 -04:00
|
|
|
# For spelling
|
|
|
|
aspell
|
|
|
|
aspellDicts.en
|
|
|
|
aspellDicts.en-science
|
|
|
|
aspellDicts.en-computers
|
2022-07-06 01:15:21 -04:00
|
|
|
# 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-06-23 02:57:41 -04:00
|
|
|
];
|
|
|
|
# Setup doom emacs
|
|
|
|
programs.doom-emacs = {
|
|
|
|
enable = true;
|
2022-09-04 02:54:15 -04:00
|
|
|
doomPrivateDir = ../../../doom.d;
|
2022-06-23 02:57:41 -04:00
|
|
|
emacsPackage = config.nathan.programs.emacs.package;
|
|
|
|
emacsPackagesOverlay = self: super: {
|
|
|
|
org-protocol-capture-html = self.trivialBuild {
|
|
|
|
pname = "org-protocol-capture-html";
|
|
|
|
ename = "org-protocol-capture-html";
|
|
|
|
version = "0.0.0";
|
2022-07-05 01:07:47 -04:00
|
|
|
packageRequires = [ self.s ];
|
2022-06-23 02:57:41 -04:00
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "alphapapa";
|
|
|
|
repo = "org-protocol-capture-html";
|
|
|
|
rev = "3359ce9a2f3b48df26329adaee0c4710b1024250";
|
|
|
|
hash = "sha256-ueEHJCS+aHYCnd4Lm3NKgqg+m921nl5XijE9ZnSRQXI=";
|
|
|
|
};
|
|
|
|
};
|
2022-07-05 01:07:47 -04:00
|
|
|
anki-editor = self.trivialBuild {
|
|
|
|
pname = "anki-editor";
|
|
|
|
ename = "anki-editor";
|
|
|
|
version = "0.3.1";
|
|
|
|
packageRequires = with self; [
|
|
|
|
dash
|
|
|
|
request
|
|
|
|
];
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "billop";
|
|
|
|
repo = "anki-editor";
|
|
|
|
rev = "c11187a79a980a738af608c98f8de2cdc1d988be";
|
|
|
|
hash = "sha256-3R9bEu982a9Tq+hXy+ALFF/N2NwK9MsqDELFVGHV09I=";
|
|
|
|
};
|
|
|
|
};
|
2022-06-23 02:57:41 -04:00
|
|
|
};
|
2022-07-02 22:36:59 -04:00
|
|
|
extraPackages = [ pkgs.mu ];
|
2022-06-23 02:57:41 -04:00
|
|
|
};
|
|
|
|
# Setup service
|
|
|
|
services.emacs = {
|
|
|
|
enable = config.nathan.programs.emacs.service;
|
|
|
|
client.enable = true;
|
2022-07-04 17:41:18 -04:00
|
|
|
};
|
|
|
|
# Set editor
|
|
|
|
home.sessionVariables = {
|
|
|
|
EDITOR = "emacsclient";
|
|
|
|
VISUAL = "emacsclient";
|
2022-06-23 02:57:41 -04:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|