53 lines
1.2 KiB
Nix
53 lines
1.2 KiB
Nix
{ lib, config, pkgs, azos-utils, ... }:
|
|
let
|
|
isEnabled =
|
|
config.azos.emacs.enable && config.azos.suites.base.enable;
|
|
emacspkgs = config.azos.emacs.emacspkg.pkgs;
|
|
in
|
|
{
|
|
options.azos.emacs.enable = (azos-utils.mkFeatureEnableOption {});
|
|
|
|
options.azos.emacs.emacspkg = lib.mkOption{
|
|
type = lib.types.package;
|
|
default = pkgs.emacs;
|
|
};
|
|
|
|
options.azos.emacs.pkgs = lib.mkOption{
|
|
default = [];
|
|
description = "List of packages for emacs.";
|
|
};
|
|
|
|
config = lib.mkIf isEnabled {
|
|
azos.emacs.pkgs = [(emacspkgs.trivialBuild (azos-utils.trivialFromOrg {
|
|
pname = "azos-emacs-base";
|
|
version = "0.1.6";
|
|
src = ./el/azos-emacs-base.org;
|
|
packageRequires = with emacspkgs; [
|
|
evil
|
|
evil-collection
|
|
magit
|
|
vterm
|
|
undo-tree
|
|
ivy
|
|
ivy-hydra
|
|
ivy-avy
|
|
counsel
|
|
counsel-tramp
|
|
counsel-projectile
|
|
swiper
|
|
projectile
|
|
];
|
|
}))];
|
|
|
|
home.packages = with pkgs;
|
|
[((emacsPackagesFor config.azos.emacs.emacspkg).emacsWithPackages (
|
|
config.azos.emacs.pkgs
|
|
)) ];
|
|
|
|
home.file."/.emacs.el".text = ''(require 'azos-emacs-base)'';
|
|
};
|
|
|
|
imports = [
|
|
];
|
|
}
|