# Fg42 - Emacs Editor for advance users # # Copyright (c) 2010-2024 Sameer Rahmani # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 2. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This is the home manager module that exposes FG42. It differs # from FG42 modules that are structurally the same but used in # different context { config, lib, pkgs, ... }: with lib; let cfg = config.programs.fg42; defaultModules = pkgs.callPackage ../modules { }; in { meta.maintainers = [ (import ../maintainers.nix { }).lxsameer ]; options = { enable = mkEnableOption "FG42"; extraModules = mkOption { type = types.listOf types.submodule; default = cfg.defaultModules ++ cfg.extraModules; defaultText = literalExpression "[]"; example = literalExpression '' extraModules = [ ./any-fg42-module-youwant.nix ]; ''; }; modules = mkOption { type = types.listOf types.deferredModule; default = cfg.defaultModules ++ cfg.extraModules; defaultText = literalExpression "[]"; example = literalExpression '' modules = [ ./any-fg42-module-youwant.nix ]; ''; }; finalPackage = mkOption { type = types.package; visible = false; readOnly = true; description = '' The Emacs package including any overrides and extra packages. ''; }; config = mkIf cfg.enable { home.packages = [ cfg.finalPackage ]; programs.fg42.finalPackage = pkgs.callPackage ../fg42 { modules = cfg.modules ++ cfg.extraModules; }; }; }; }