{ 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 = [ ]; }