# 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 # A list of default FG42 modules to build FG42 with. { lib, config, pkgs, makeFG42Drv, ... }: let deps = (with pkgs.emacsPackages; [ origami which-key projectile projectile-ripgrep pkg-info expand-region helpful envrc pinentry discover exec-path-from-shell avy ace-window yasnippet yasnippet-snippets flycheck vertico orderless ctrlf marginalia magit forge diff-hl svg-tag-mode all-the-icons base16-theme ] ++ lib.optional (config.fg42.emojify) [ emojify ]); drv = makeFG42Drv { pname = "editor"; version = config.fg42.version; buildInputs = deps; src = ./.; }; dicts = pkgs.aspellWithDicts (dicts: with dicts; [ en en-computers en-science ]); in { options = (with lib; { fg42.emojify = mkOption { type = types.bool; default = true; description = "Whether or not to use the `emojify' package."; }; }); config = { fg42.elispPackages = [ drv ] ++ deps; fg42.fonts = (with pkgs;[ vazir-fonts fira-code fira-mono noto-fonts ]); fg42.paths = (with pkgs;[ ripgrep dicts ]); fg42.font = lib.mkDefault '''("Fira Mono" 11)''; fg42.theme = lib.mkDefault "base16-eighties"; fg42.theme-package-name = lib.mkDefault "base16-theme"; }; }