diff --git a/nix/modules/default.nix b/nix/modules/default.nix index 8235d63..2593099 100644 --- a/nix/modules/default.nix +++ b/nix/modules/default.nix @@ -26,6 +26,7 @@ let ./elisp ./git ./minibuffer-vertico + ./graphics ]; pkgsModule = { config, ... }: { diff --git a/nix/modules/editor/default.nix b/nix/modules/editor/default.nix index bf1c12b..326216a 100644 --- a/nix/modules/editor/default.nix +++ b/nix/modules/editor/default.nix @@ -41,15 +41,11 @@ let yasnippet yasnippet-snippets flycheck - svg-tag-mode - all-the-icons org org-super-agenda org-ql org-modern base16-theme - ] ++ lib.optionals (config.fg42.emojify) [ - emojify ] ++ lib.optionals (config.fg42.modeline == "noether") [ posframe extraPackages.noether @@ -63,19 +59,9 @@ let }; dicts = pkgs.aspellWithDicts (dicts: with dicts; [ en en-computers en-science ]); - emojifyDocString = "Whether or not to use the `emojify' package."; in { - options = (with lib; { - fg42.emojify = mkOption - { - type = types.bool; - default = false; - description = emojifyDocString; - }; - }); - config = { fg42.elispPackages = [ drv ] ++ deps; @@ -93,8 +79,5 @@ in fg42.font = lib.mkDefault '''("Fira Mono" 11)''; fg42.requires = [ drv.pname ]; - fg42.vars = [ - (lib.defVar "emojify" cfg.emojify emojifyDocString) - ]; }; } diff --git a/nix/modules/graphics/default.nix b/nix/modules/graphics/default.nix new file mode 100644 index 0000000..a9e9b81 --- /dev/null +++ b/nix/modules/graphics/default.nix @@ -0,0 +1,62 @@ +# 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, ... }: +with lib; +let + cfg = config.fg42.graphics; + + deps = + (with pkgs.emacsPackages; [ + svg-tag-mode + all-the-icons + ] ++ lib.optionals (cfg.emojify) [ + emojify + ]); + + drv = makeFG42Drv { + pname = "graphics"; + version = config.fg42.version; + buildInputs = deps; + src = ./.; + }; + emojifyDocString = "Whether or not to use the `emojify' package."; +in +{ + options = (with lib; { + fg42.graphics.enable = mkAndEnableOption "graphics"; + fg42.graphics.emojify = mkOption + { + type = types.bool; + default = false; + description = emojifyDocString; + }; + }); + + config = mkIf cfg.enable { + fg42.elispPackages = [ drv ] ++ deps; + + fg42.requires = [ drv.pname ]; + fg42.vars = [ + (lib.defVar "emojify" cfg.emojify emojifyDocString) + ]; + }; +} diff --git a/nix/modules/editor/lisp/fg42/graphics.el b/nix/modules/graphics/lisp/fg42/graphics.el similarity index 99% rename from nix/modules/editor/lisp/fg42/graphics.el rename to nix/modules/graphics/lisp/fg42/graphics.el index 94c0385..f6e2a62 100644 --- a/nix/modules/editor/lisp/fg42/graphics.el +++ b/nix/modules/graphics/lisp/fg42/graphics.el @@ -31,6 +31,7 @@ :if (display-graphic-p) :hook (emacs-startup . global-emojify-mode)) + (use! all-the-icons "A utility package to collect various Icon Fonts and propertize them within Emacs." diff --git a/nix/modules/minibuffer-vertico/lisp/fg42/minibuffer-vertico.el b/nix/modules/minibuffer-vertico/lisp/fg42/minibuffer-vertico.el index 5bc6350..bd540dd 100644 --- a/nix/modules/minibuffer-vertico/lisp/fg42/minibuffer-vertico.el +++ b/nix/modules/minibuffer-vertico/lisp/fg42/minibuffer-vertico.el @@ -38,6 +38,7 @@ (require 'vertico-indexed) (require 'vertico-quick) (require 'vertico-repeat) + (vertico-mode) (vertico-multiform-mode) ;; Configure the display per command.