58 lines
1.4 KiB
Nix
58 lines
1.4 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
osConfig ? null,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
shellType = inputs.self.lib.hmShellType osConfig "zsh";
|
|
hm = inputs.self.lib.hmModule {
|
|
inherit
|
|
config
|
|
inputs
|
|
osConfig
|
|
;
|
|
optionPath = [ "emacs" ];
|
|
};
|
|
cfg = config.my.emacs;
|
|
emacs = import ./common.nix {
|
|
inherit lib pkgs;
|
|
stylixEnabled = if osConfig == null then false else osConfig.my.stylix.enable;
|
|
emacsExtraConfig = config.programs.emacs.extraConfig;
|
|
emacsExtraPackages = config.programs.emacs.extraPackages;
|
|
};
|
|
in
|
|
{
|
|
imports = [ inputs.doom-emacs.homeModule ];
|
|
options.my.emacs.enable = lib.mkEnableOption "Doom Emacs configuration";
|
|
config = lib.mkMerge [
|
|
{
|
|
my.emacs.enable = lib.mkDefault hm.enabledByDefault;
|
|
}
|
|
(lib.mkIf cfg.enable {
|
|
home.packages = emacs.packages;
|
|
xdg.dataFile = emacs.templateDataFiles;
|
|
services = {
|
|
lorri.enable = pkgs.stdenv.isLinux;
|
|
emacs = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
};
|
|
};
|
|
programs.${shellType}.shellAliases = inputs.self.lib.mergeAliases inputs.self.lib.commonAliases {
|
|
edit = "emacsclient -t";
|
|
e = "edit";
|
|
};
|
|
programs.doom-emacs = {
|
|
enable = true;
|
|
inherit (emacs) doomDir;
|
|
doomLocalDir = "${config.xdg.dataHome}/nix-doom";
|
|
tangleArgs = "--all config.org";
|
|
inherit (emacs) extraPackages;
|
|
};
|
|
})
|
|
];
|
|
}
|