diff --git a/Droidnix/README.org b/Droidnix/README.org index 423dce8a5..3810f8de4 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -1418,87 +1418,84 @@ This sets up the emacs terminal #+BEGIN_SRC nix :tangle generated/modules/apps/emacs/emacs.nix :noweb tangle :mkdirp yes :eval never-html { lib, ... }: -let - enableEmacs = true; # Toggle to enable/disable Emacs module -in { - # Top-level option to enable Emacs - options.enableEmacs = lib.mkEnableOption "Enable Emacs configuration"; + flake.nixosModules.emacs = { config, pkgs, lib, ... }: - # Module configuration wrapped safely with mkIf - config = lib.mkIf enableEmacs { - myApps = { - emacs = { - enable = true; + { + # Optie om de module aan/uit te zetten + options.mySystem.system.emacs.enable = lib.mkEnableOption "Enable Emacs config"; - # Home Manager user (top-level default can be used) - user = config.defaultUser or "henrov"; + config = lib.mkIf (config.mySystem.system.emacs.enable or false) { + # System packages (optioneel) + environment.systemPackages = with pkgs; [ + # Voeg systeem-brede packages toe als je wilt + ]; - # Emacs package specification and extra packages - package = { - name = "emacs-pgtk"; - withTreeSitter = true; + # Home Manager configuratie + home-manager.users.henrov = { + programs.emacs = { + enable = true; + package = pkgs.emacs-pgtk.override { withTreeSitter = true; }; + + extraPackages = epkgs: with epkgs; [ + # Tree-sitter and language support + manualPackages.treesit-grammars.with-all-grammars + rust-mode + rustic + nix-mode + hcl-mode + + # UI/UX and navigation + nerd-icons + doom-modeline + diminish + eldoc + eldoc-box + pulsar + which-key + avy + consult + vertico + marginalia + crux + shell-pop + + # Completion and snippets + nerd-icons-corfu + corfu + cape + orderless + yasnippet + yasnippet-snippets + + # Utilities and tools + rg + exec-path-from-shell + eat + f + gptel + nixpkgs-fmt + envrc + + # Theming + catppuccin-theme + + # Git + magit + + # Editing and workflow + expreg + vundo + puni + + # Error and side panel support + sideline + sideline-flymake + sideline-eglot + ]; }; - extraPackages = [ - # Tree-sitter and language support - "manualPackages.treesit-grammars.with-all-grammars" - "rust-mode" - "rustic" - "nix-mode" - "hcl-mode" - - # UI/UX and navigation - "nerd-icons" - "doom-modeline" - "diminish" - "eldoc" - "eldoc-box" - "pulsar" - "which-key" - "avy" - "consult" - "vertico" - "marginalia" - "crux" - "shell-pop" - - # Completion and snippets - "nerd-icons-corfu" - "corfu" - "cape" - "orderless" - "yasnippet" - "yasnippet-snippets" - - # Utilities and tools - "rg" - "exec-path-from-shell" - "eat" - "f" - "gptel" - "nixpkgs-fmt" - "envrc" - - # Theming - "catppuccin-theme" - - # Git - "magit" - - # Editing and workflow - "expreg" - "vundo" - "puni" - - # Error and side panel support - "sideline" - "sideline-flymake" - "sideline-eglot" - ]; - - # Optional environment/session variables - sessionVariables = { + home.sessionVariables = { EDITOR = "emacs"; XDG_SCREENSHOTS_DIR = "~/screenshots"; }; diff --git a/Droidnix/generated/modules/apps/emacs/emacs.nix b/Droidnix/generated/modules/apps/emacs/emacs.nix index 4529790bd..0ca795268 100644 --- a/Droidnix/generated/modules/apps/emacs/emacs.nix +++ b/Droidnix/generated/modules/apps/emacs/emacs.nix @@ -1,86 +1,83 @@ { lib, ... }: -let - enableEmacs = true; # Toggle to enable/disable Emacs module -in { - # Top-level option to enable Emacs - options.enableEmacs = lib.mkEnableOption "Enable Emacs configuration"; + flake.nixosModules.emacs = { config, pkgs, lib, ... }: - # Module configuration wrapped safely with mkIf - config = lib.mkIf enableEmacs { - myApps = { - emacs = { - enable = true; + { + # Optie om de module aan/uit te zetten + options.mySystem.system.emacs.enable = lib.mkEnableOption "Enable Emacs config"; - # Home Manager user (top-level default can be used) - user = config.defaultUser or "henrov"; + config = lib.mkIf (config.mySystem.system.emacs.enable or false) { + # System packages (optioneel) + environment.systemPackages = with pkgs; [ + # Voeg systeem-brede packages toe als je wilt + ]; - # Emacs package specification and extra packages - package = { - name = "emacs-pgtk"; - withTreeSitter = true; + # Home Manager configuratie + home-manager.users.henrov = { + programs.emacs = { + enable = true; + package = pkgs.emacs-pgtk.override { withTreeSitter = true; }; + + extraPackages = epkgs: with epkgs; [ + # Tree-sitter and language support + manualPackages.treesit-grammars.with-all-grammars + rust-mode + rustic + nix-mode + hcl-mode + + # UI/UX and navigation + nerd-icons + doom-modeline + diminish + eldoc + eldoc-box + pulsar + which-key + avy + consult + vertico + marginalia + crux + shell-pop + + # Completion and snippets + nerd-icons-corfu + corfu + cape + orderless + yasnippet + yasnippet-snippets + + # Utilities and tools + rg + exec-path-from-shell + eat + f + gptel + nixpkgs-fmt + envrc + + # Theming + catppuccin-theme + + # Git + magit + + # Editing and workflow + expreg + vundo + puni + + # Error and side panel support + sideline + sideline-flymake + sideline-eglot + ]; }; - extraPackages = [ - # Tree-sitter and language support - "manualPackages.treesit-grammars.with-all-grammars" - "rust-mode" - "rustic" - "nix-mode" - "hcl-mode" - - # UI/UX and navigation - "nerd-icons" - "doom-modeline" - "diminish" - "eldoc" - "eldoc-box" - "pulsar" - "which-key" - "avy" - "consult" - "vertico" - "marginalia" - "crux" - "shell-pop" - - # Completion and snippets - "nerd-icons-corfu" - "corfu" - "cape" - "orderless" - "yasnippet" - "yasnippet-snippets" - - # Utilities and tools - "rg" - "exec-path-from-shell" - "eat" - "f" - "gptel" - "nixpkgs-fmt" - "envrc" - - # Theming - "catppuccin-theme" - - # Git - "magit" - - # Editing and workflow - "expreg" - "vundo" - "puni" - - # Error and side panel support - "sideline" - "sideline-flymake" - "sideline-eglot" - ]; - - # Optional environment/session variables - sessionVariables = { + home.sessionVariables = { EDITOR = "emacs"; XDG_SCREENSHOTS_DIR = "~/screenshots"; };