Files
dotfiles/home/natto/emacs.nix
2024-06-04 16:31:12 +05:30

48 lines
1.2 KiB
Nix

{ config, pkgs, inputs, lib, ... }:
let
emacs = pkgs.emacs-pgtk;
configFile = ./config/emacs/config.org;
enable = true;
in
{
nixpkgs.overlays = [ inputs.emacs-overlay.overlays.default ];
home = {
file = {
"init.el" = {
source = pkgs.runCommandLocal "tangle-emacs" { } ''
${pkgs.coreutils}/bin/ln -s ${configFile} ./config.org
${emacs}/bin/emacs -Q --batch ./config.org -f org-babel-tangle
cp ./config.el $out
'';
target = "${config.home.homeDirectory}/.emacs.d/init.el";
};
};
shellAliases = rec {
e = "emacs";
enw = e + " -nw";
ec = "emacsclient";
ecc = ec + " -c";
ecnw = ec + " -nw";
};
};
programs.emacs = {
inherit enable;
package = pkgs.emacsWithPackagesFromUsePackage {
config = configFile;
package = emacs;
alwaysEnsure = true;
alwaysTangle = true;
extraEmacsPackages = epkgs: with epkgs; [
use-package
(tree-sitter-langs.withPlugins (_: tree-sitter-langs.plugins))
];
};
};
services.emacs = {
inherit enable;
defaultEditor = true;
};
systemd.user.services.emacs.Service.Environment = "COLORTERM=truecolor";
}